Каталог статей

Главная » Статьи » Создание игр

Обзор технологий, используемых в играх. vol2
Физика

Частицы

Определяется источник частиц, диапазон начальной скорости, сектор, определяющий начальное направление полета, количество и время жизни. Частицы могут коллизировать с окружением (обломки, снаряды, мусор, брызги крови), а могут и не коллизировать (искры, огненные языки, пузырьки воздуха, текущая вода, пар). При столкновении могут оставлять декалы (обычно, только немногочисленные частицы).
 
Снаряды

Обычно, используется лучевая коллизия. При столкновении с объектом, могут оставлять декалы: для стен - пробоины (различаются от типа снарядов), для живых существ - раны; создавать частицы: обломки, брызги крови, замечательно смотрится сыплющаяся штукатурка в Max Payne. Для продвинутых физических движков - придавать ускорение объектам (хотя, для людей, обычно, используют разные фазы анимации, исключение - рагдоллы).
 
Двери

Что меня постоянно раздражает - двери практически всегда имеют свойство закрываться сами собой (понимаю, шлюзы в футуристических комплексах, но деревянные двери в сараях?). Не знаю, что послужило причиной повального распространения этого IMO маразма. Однако, если неправильно это сделать, то дверь может "прищемить" (игрок застрянет, выйдет за пределы уровня или погибнет, как в Blood) - двери могут быть очень опасны. Иногда двери служат переходом между "игровыми мирами" (имеются в виду не находящиеся в одном пространстве) - вспомните Silent Hill.
 
Транспорт

Использование транспортных средств добавляет играбельности. Физика зависит от типа ТС и уровня приближения к реальной. Например, автомобили/танки могут быть совершенно лишены инерции и не отрываться от плоскости (Shadow Warrior) или реагировать на весь спектр взаимодействий - коллизия колесами и корпусом, акселерация в зависимости от наклона и касания ведущих колес с землей, реакция на столкновения с мобильными и неподвижными объектами, вращение и покачивание, пружинистая подвеска. Управление самолетом в авиаимитаторах бывает очень сложным - воздействуют воздушные потоки, самолет клонит в штопор, нужно убирать шасси, управлять закрылками. Космичесие корабли, обычно имеют поворотные двигатели, чтобы установить нос корабля в нужном направлении, и двигатели ускорения / торможения. Соответственно, инерция при повороте, воздействие гравитации в гравитационном поле планеты. Посадка или стыковка - тоже целая процедура. Катерам и моторным лодкам на поверхности воды инерция мешает в гораздо большей степени, к тому же лодка покачивается на волнах, что тоже усложняет управление.
 
Рагдоллы

Этим термином обозначают тела (необязательно человеческие), которые представляют собой костную структуру (где каждая кость может поворачиваться относительно связанной с ней в определенных пределах) с натянутой на нее оболочкой. Используется, в основном, для тел нейтрализованных врагов (эффект реалистичного падения с вышки, разные позы трупов). В играх это выглядит так: когда у врага здоровье падает до нуля, он "расслабляется", ему придается ускорение от последнего снаряда / взрыва и он летит, свободно размахивая руками и ногами или реалистично валясь на пол. Математическая модель рагдолла довольно сложна.
 
Деформация объектов

Старый как мир способ - либо сменить модель / спрайт объекта, либо удалить объект, разбросав обломки (которые могут исчезнуть или стать самостоятельными объектами). В Drakkan, например, это сделано очень интересным образом - скажем, от трупа можно отрубать куски, их разрубать на более мелкие куски и т. д. Обычно, враги деформируются только когда погибают (Blade of Darkness), хотя в том же Drakkan можно отрубить врагу конечность (или рыло) и тот еще будет бугать и пытаться Вас убить. Следующим шагом, думаю, будет создание объектов, которые будут произвольно деформироваться, в зависимости от воздействия - сминающиеся контейнеры, решетки.
 
Игровой мир

Фиксированный

Ну это стандарт - всегда все одно и то же. Очевидные недостатки - проходить игру еще раз неинтересно (исключение - фанаты игры), предсказуемость (исследовав уровень и начав по каким-то причинам снова, уже знаешь, где будут враги и полезные предметы), ограниченность (при всем желании, не удастся сделать мир по настоящему огромным, таким, где можно затеряться, да и то придется потратить массу человеко-часов). Зато достоинством такого подхода является то, что в процессе прохождения игры, можно открывать новые возможности, сценарий может иметь неожиданный поворот и уровень, в каком-то роде будет произведением искусства.
 
Случайно сгенерированный

Мир при таком подходе может быть сколь угодно большим, однако надоедает его однообразие. Зато, в игру можно играть бесконечно, выполнять неисчислимые миссии (естественно, количество их видов ограничено). Самый удачный вариант - смешение генерированного мира с фиксированным - наличие искусственно созданных областей для сюжета, уникальных персонажей и предметов. Пример - игры серии The Elder Scrolls: Arena, Daggerfall, Morrowind.
 
Генерирующийся по ходу игры

За этой технологией - будущее. Ведь, события, которые происходят где-то в отдалении от игрока, можно сильно огрубить, а мелкие, не имеющие к нему отношение - и вовсе опустить. Детализация игрового мира концентрируется вокруг игрока. Так, например, в GTA генерируются машины, пешеходы, но это лишь небольшая примесь данного метода. Идеально - когда генерируется абсолютно все (естественно, с привязкой к координатам, т. е. если игрок входит в квартиру номер N дома M и видит там шкаф с книгой, а потом отправляется в путешествие, то по его возвращению через продолжительное время в эту же квартиру, шкаф и книга должны быть там), включая здания, мебель (именно внешний вид), текстуры, ландшафт, структуру городов. А изменения, совершенные игроком, записываются (если он взял ту книгу, то после возвращении ее там не будет). Сложнее с событиями, которые происходят "на фоне" и в какой-то мере касаются игрока, но для этого можно использовать, например, такие характеристики, как отношения определенных социальных групп и достижения игрока.
 
Сюжет

Часто, в погоне за реалистичной графикой, забывают про сюжетную модель. Нет, конечно, сюжету уделяют большое внимание - детально прорабатывается весь путь главного героя, второстепенные персонажи, изобретаются неожиданные повороты сюжета, действие происходит в различных местах и условиях. Но, в большинстве случаев, к сожалению, сюжет строго прямолинеен. То есть, конечно, по пути Вы можете заходить в закутки за полезными предметами, взрывать, портить, двигать предметы, возможно, решите массу оригинальных головоломок, но за шаг влево / вправо от сюжета - растрел. И это не может не сказаться на ощущении свободы выбора (которое начисто пропадает и игровое времяпрепровождение начинает мало чем отличаться от просмотра кинофильма). Поэтому, часто сюжет делают разветвленным, что ОЧЕНЬ способствует популярности игры у искушенных игроманов. В принципе, игра может иметь одно завершение (а может и несколько, в зависимости от Вашего поведения (выбор - к кому примкнуть, обычно), банальная смерть не в счет), но иметь небольшие ответвления в виде т. н. квестов - небольших миссий, которые Вы можете выполнять, а можете и пропустить. В зависимости от совершенных игроком дейсвий в течение игры может по разному освещены последующие события после прохождиения (Fallout). Еще одна вещь (на которой, кстати, сыграли (можно сказать, спекулировали) разработчики серии Silent Hill) - после прохождения игры игрок получает дополнительные возможности, если захочет пройти ее еще раз (в зависимости от концовки).
 
Ограничение игрового пространства

В аркадах играющий ограничен простой прямоугольной стенкой - непроходимыми границами поля (иногда невидимыми). В очень редких случаях, поле закольцовано по принципу тора (выйдя за пределы поля с одной стороны, игрок появлялся с другой). Далее, в трехмерных боевиках игрока, обычно, ограничивает пространство уровня, который может быть какой угодно конфигурации (правда, при определенных обстоятельствах, можно было "вылететь" за пределы поля и "выпасть в космос"). Ограничить уровень могут "завалы", через которые нормальный человек легко перемахнет, а игрок - не в состоянии, "скользкие поверхности", на которые нельзя взобраться - соскальзываешь. В FarCry просто банально убивают, если "посмеешь". Вот еще один метод ограничения - бесконечное пространство, в котором есть некоторый объект (объекты) и можно сколько угодно удалиться от них, но далее будет всего лишь безбрежная пустота (морская гладь или еще что-нибудь однообразное). Метод применен в игре "Elite" и многих космических / авиаимитаторах. В качестве снисхождения к игроку, иногда его "притягивает" "осознанная область" (создается иллюзия движения, хотя перемещения не происходит), чтобы ему не нужно было долго бежать обратно.
 
Искусственный интеллект

Активация (3D-боевики)

Так как в игре на одном уровне могут одновременно находиться сотни и тысячи врагов, при даже самом простом алгоритме их поведения существенно бы тратились ресурсы (по крайней мере на уровне 94 года). С другой стороны, игрока мало интересует, чем занимаются враги, которые находятся в противоположном конце уровня, ведь до него еще идти и идти. Да и вообще - чем заниматься врагам, когда рядом нет игрока (как-то действуя, могут случайно перебить друг друга, забрести куда-нибудь не туда или подохнуть)? Поэтому был найден простой способ - пока враг не увидит игрока (или игрок врага), либо пока игрок не приблизится на достаточное расстояние, враг стоит столбом и ничего не делает. Посмотрите на камеры в Duke Nukem или на радар Zero Tolerance, использовав биосканер (хотя в DN враги "топчутся на месте", но это то же, что стоять). Как только враг "проснулся", он тут же идет искать игрока. С другой стороны, когда ресурсов достаточно, можно позволить врагам "скриптово пожить": патрулировать, болтать, танцевать, и т. д. В случае, когда враг достаточно большое время не видит игрока, он может "деактивироваться".
 
Нахождение пути

Алгоритм нахождения пути был рассмотрен в прошлом выпуске, хотя для врагов в большинстве трехмерных игр он прост - тупо переть на игрока и / или стрелять. И это дает неплохие результаты: когда монстр идет на играющего, "чувствуется ослепляющая ярость", если играющий убежал, а монстр топчется позади (потому что не может найти путь) - "стало наплевать, занялся своими делами". Еще враги могут бегать по невидимым дорожкам, проторенным создателями уровней, чтобы добраться до игрока, могут додуматься обойти препятствие.
 
Стрельба

В подавляющем большинстве случаев, враги стреляют в то место, где в данный момент находится противник. Для пуль, это, в общем-то, не принципиально, а вот всякие ракеты-фаерболы летят мимо, если просто бегать вокруг врага (или толпы врагов). Пока, насколько я знаю, на опережение стреляют только боты. Но, даже глупый враг способен быстро убить игрока, абсолютно точно стреляя из "мгновенного" оружия, поэтому разработчики либо намеренно ухудшают точность его стрельбы, либо делают такую стрельбу "суперприемом", к которому враг "готовится", чтобы дать возможность играющему уйти в укрытие (Shambler из Quake, некоторые "боссы"). Играющему тоже могут ослабить прицельность огня (и корректировать ее в зависимости от того, бежит / стоит / сидит / лежит ли он).
 
Зрение (3D-боевики)

Первоначально, зрение компьютерных оппонентов было абсолютным. То есть, враги точно знали координаты игрока, спрятаться от них было невозможно (разве что, запереться где-нибудь или убежать от них так, чтобы они не смогли найти дороги). Так как это было, в общем-то, жульничество, то позже предпринимались попытки ограничить абсолютное зрение компьютерных соперников. Активацию тоже можно в какой-то степени считать такой попыткой (можно подобраться к врагу сзади и если не убить, то серьезно поранить). Но, если вместе с имплементацией зрения серьезно не поработать с интеллектом врагов, может получиться стадо баранов, идущих на убой (что, кстати, часто и случается). Например, в FarCry я перестреливался с солдатом через окно. После одного-двух попаданий, он решил присесть и тут же закричал "Куда он делся?!!!" - я оказался за пределами его видимости (так маленькие дети закрывают глаза ладонями и, испугавшись, кричат: "Куда все пропало?"). Однако, даже такой вариант расширяет арсенал тактических приемов (в игре Commandos зрение врагов - один из краеугольных камней в игровой концепции).
 
Отступление

В очень немногих играх, враг после того как его здоровье окажется ниже определенного порога, панически убегает от игрока. Фактически, это игроку только на руку - враг перестает стрелять, а попав в тупик будет просто стоять, "ожидая расстрела". Это паника, а вот отступление было бы гораздо интереснее - противник начинает уклоняться от выстрелов, укрываться за объектами, отстреливаться и его не так-то просто поймать. Я не видел реализации такого метода, за исключением скриптовой (ситуация, когда оппонент бежит через все поле, которое хорошо простреливается, чтобы укрыться за обломками взорванного автомобиля и там присесть, чтобы его преспокойно пристрелили - не в счет).
 
Использование объектов

В ролевых играх NPC часто используют лечение, когда здоровье приближается к 0, магию. Иногда враги настолько умны, что идут и подбирают нужные предметы (хотя, не всегда оптимальный вариант бежать к предмету вместо того чтобы стрелять / драться).
 
Наивыгоднейшая позиция (походовые стратегии)

Это еще из шахмат - анализируются все возможные ходы, для каждой полученной позиции вычисляются очки (в шахматах - очки дает съеденная фигура, "простреливаемое" поле, шах, угроза фигуре противника, продвинутая пешка, защита своей фигуры, отбирает - угроза своей фигуре и т. д.), затем делается ход, набравший наибольшее количество очков. Довольно примитивно, но позволяет добиться средних результатов и конкурентоспособности при умелом использовании. Плюсы - можно относительно легко "объяснить" компьютеру, чего он должен избегать и к чему стремиться, создать и сбалансировать "систему ценностей". Минусы - может потребоваться много времени на проработку ходов компьютером, а также игрок может найти способы заставить компьютер сделать глупый ход.
 
Развитие (стратегии)

Когда нужно создать в стратегиях более-менее достойного противника, нужно проработать систему развития (хотя, в Dune 2, например, противник просто отстраивал разрушенные здания). Для этого необходимо создать иерархию приоритетов (что строить / улучшать / изучать в первую очередь). Самые изощренные компьютерные противники распределяют приоритеты в зависимости от ситуации. Хотя, часто недостаток умения развиваться компьютеру компенсирует возможность жульничать. К тому же, он заведомо обладает преимуществами перед человеком - способностью производить несколько операций одновременно и точностью.
 
Атака (стратегии)

Самый простой способ - набрать отряд и напасть на игрока. Отразить такую атаку довольно просто, к тому же такие действия легко предсказуемы, что дает возможность хорошо подготовиться к встрече. Другое дело, когда компьютер атакует, выбирая малозащищенное место, нападает толпой, не растягивая отряд в цепочку, избегает боя с численно превосходящим отрядом игрока, отступает при неблагоприятных обстоятельствах. Такое поведение более характерно для походовых стратегий, отчасти потому что у игрока есть время подумать и произвести все необходимые действия.
 
Категория: Создание игр | Добавил: blitz3d (29.11.2007) | Автор: Матвей Меркулов W
Просмотров: 3044 | Комментарии: 1 | Рейтинг: 5.0/2
Всего комментариев: 1
1 Kisksnanyww  
0
http://STROYMAGNIT.ru/ - http://STROYMAGNIT.ru
http://basetea.ru/ - http://basetea.ru
http://LEGKO-STROI.RU/ - http://LEGKO-STROI.RU
http://TOBACCO24.RU/ - http://TOBACCO24.RU
http://BL-STROITEL.RU/ - http://BL-STROITEL.RU

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Создание игр [8]
Работа с Сетью [1]
Работа с Сетью в Blitz3D Протоколы TCP, FTP, интернет-сёрфинг и пр.
Физические движки [3]
работа с физикой в Blitz3d
Форма входа

Наш опрос
Сколько проектов Вы начинали (в скольких участвовали)?
Всего ответов: 144
Поиск
Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Друзья сайта
  • Все об умных часах и фитнес-браслетах
  • Все о поездах и железных дорогах!
  • Aндроид-клуб
  • Автоистория СССР
  • Блог о wordpress
  • Ноты для фортепиано

  • WIFI DIRECT

    все для wordpress



    умные часы Swatch
    умные очки Sony
    умные часы Fitbit Surge