Главная > Цiкавi дослiди > Мечты детства

Мечты детства


Если в СССР дети мечтали быть космонавтами, то с появлением компьютеров дети стали мечтать написать свою игру. Угу и чтобы в ней «можно было грабить корованы» (с). Но в детстве не хватало знаний. Да и время было такое, что порог вхождения в простое создание модов к играм был высоким. Изменилось ли что-то сейчас? Насколько сложно человеку, имеющему опыт в программировании, взять да написать какую-то несложную игру?

Пост этот я начал писать полтора года назад, полный оптимизма и уверенности, что сейчас что-то изменилось. Но как оказалось, хрен там. Дальше будет просто описан мой путь, того как я пытался вникнуть в разные движки. Т.е. можно в принципе не читать.

Да, я люблю играть в игры, играл практически во все, что к примеру в рубрике выбор читателей на ag.ru. То есть сыграл уже где-то в районе пару тысяч игр различных жанров, начав еще на ZX Spectrum. И считаю, что имею какой-никакой вкус, и понимаю как примерно устроены игры изнутри (мой привет моддерам Fallout и Fallout Tactics). Ну и заодно давно не нуб в программировании. Вот насколько реально мне сесть и написать какую-то несложную игру?

Для теста я выбрал старую игру Incubation: Time is running out. Игра довольно простая. Пошаговая стратегия. У тебя команда бойцов, которая должна пройти через карту с монстрами до точки выхода. Бойцы в зависимости от экипировки умеют стрелять/рубить штыком/лечить/прыгать на джетпаке. У монстров с этим аналогично. Монстры и бойцы имеют некоторое количество очков действия, которые можно тратить на движение/удары/использование предметов на карте(например двери открывать). На некоторых картах монстры респаунятся, а на других их конечное количество. И все это было в 3D примерно вот так:

Была там и прокачка и деньги за которые можно было покупать оружие, но это все для теста не важно. Я хотел попробовать просто создать один играбельный уровень, похожий на первый уровень игры Incubation.

От вышедших за последние годы игр у меня создалось впечатление, что есть набор игровых движков, и люди просто берут их и делают на них игры. Вот я и решил попробовать пойти таким же путем.
Очень быстро выяснилось, что игровые движки очень часто поставляются в сорцах и без редактора уровней. Поковыряться в чужом API вообще не было моей целью. Поэтому сразу же лесом пошли всякие Panda 3D, OGRE, Irrlicht и т.д.

Unity 3D
Полностью визуальная среда разработки игры. То есть вся игра у вас на ладони. Все в одном проекте, который билдится в готовый исполняемый модуль. Картинки и модели оно подхватывает автоматически, двойным щелчком открывается соответствующий редактор (например 3D Max для моделей и Photoshop для текстур), а после завершения редактирования изменения сразу видны в плеере игры. По сути уровень можно прямо в пределах редактора играть и смотреть как что вызывается. У них прикольный демонстрационный уровень — игрушка чем-то напоминающая space siege. Скрипты на javascript’e. Удобный object inspector.
И все было зашибись, пока я игрался с их демонстрационным уровнем. Как только я попытался с нуля создать свой уровень, редактор повис. И как я не пытался, что бы я не добавлял на пустую сцену — вешается оно и все. Не судьба…

Cry Engine
ВНЕЗАПНО 🙂 Ну а чем я хуже всех? Щас крузис запилю!
SDK весит чуть больше гига. Распаковал и можно работать. Начал смотреть видео-туториалы записанные гнусавыми школьниками. Почему-то гугл выкидывает ссылки только на такие видео. И тут выяснилось, что у меня глючит отрисовка карты при изменении ландшафта уровня. Изображение просто не перерисовывается пока не сделаешь maximize — restore окну Sandbox’a. Бороться с чужими багами мне было лень, поэтому Cry Engine я тоже забросил.

Unreal engine
Здесь UDK весит уже почти 2 гига. А проинсталенный все 3.5 Гб.
С ним дела пошли получше. UDK Editor работал как часы. Видео и текстовых туториалов в инете много, много всяких док и how-to. Проблема для начинающего только одна: искать примеры надо конкретно для своей версии UDK. Иначе фиг найдешь, куда дели это меню/кнопку в редакторе уровней или в kismet’e этой конкретной версии UDK.
Туториалы по созданию уровня, ссылка на которые предлагается в самом UDK, очень толковые. По ним я смог сделать свой уровень буквально за два дня. Получилось вот так:
ut_level
Я особо не парился с тем, чтобы наводить красоту через сложные BSP и красивые static mesh’ы. Я просто старался получить уровень, в который можно поиграть и побыстрее.
После того как я создал уровень, его нужно было сделать играбельным. Наиболее близкий тип игры к тому, что было в Incubation, в терминах UDK — это Team Deathmatch. Помучавшись с Kismet, я смог сделать spawn ботов двух команд, в тех местах, где в Incubation были монстры и десантники.
Получилось вот так:

Играбельно, но это не incubation. Там ведь был пошаговый режим, а не мочилово «11 ботов vs 4 игрока». Ну и монстры на первой карте еще стрелять не могли, только в рукопашную шли.
Если решить проблему отсутствия melee оружия в UDK можно через скрипты не особо напрягаясь, то проблема пошаговости решается очень нетривиально, потому что движок заточен на real-time. Чтобы воссоздать пошаговый режим придется нехило напрячься. Например вот шахматы на Unreal Engine, почти 200 кб сорцов на скриптах. Еще я пообщался с ребятами, которые пытаются возродить UFO: Enemy Unknown, тот самый, досовый. На тот момент XCOM: Enemy Unknown еще не вышел. Посмотрел с какими проблемами приходится сталкиваться чтобы реализовать поиск путей для AI, пошаговый режим с турнами, да и просто чтобы можно было курсором выделить юнит, и все желание, ковыряться в скриптах дальше, пропало. Становиться специалистом по скриптам ради того, чтобы вернуть пошаговость — это было бы как в одной из цитат с bash’a

Вообще впечатление по движкам такое: вы ожидаете там найти конструктор из которого соберете игру. А вам дают набор технологий из которых вам придется изобретать элементы игры, которые уже казалось бы стандартные.

Дальше я решил уже не изучать вглубь оставшиеся FPS движки(Source, Quake), а попробовать найти какой-то движок, который изначально ориентирован на пошаговую игру. Потому что как показывает опыт всех ремейков, графика — это не то что делает игру «той самой», все дело в движке. Если движок не повторяет игровую механику, люди сразу чувствуют это. Black Mesa подтвердила это: Half life на Source 2 портит все впечатление тем как реализовано оружие. Мелочь, а игра уже не та…

Silent storm
Была такая игра в 2003-м, на ее движке выпустили «Hammer & sicle» и два «Дозора». К ней был редактор, по идее то что доктор прописал. Но как оказалось редактор работает только на XP. Из-за использования какой-то древней версии mssql, которую нельзя поставить на семерку. Тратить время на мертворожденное не захотелось.

Legend of Grimrock
Чудесная игра Old School Style. Имеет редактор уровней с LUA скриптами. Но к сожалению карты одноуровневые, а для Incubation требуется хотя бы 2-3 уровня по вертикали, чтобы полноценно повторить. Еще одна проблема — вся party ходит кучкой, расставления юнитов нет. Ну и главное — здесь «пошаговый real time»: 1 секунда на ход, а дальше монстры не ждут, движутся. Побегать — оно конечно весело. Но опять не то…
LoG

XCOM: enemy unknown
Последняя из современных пошаговых игр. Была надежда на то, что для нее выпустят редактор. Она бы идеально подошла для создания Incubation. Но за год редактор уровней так и не появился. И на этом я уже просто забил на идею что-то делать.

Итого:
В итоге знания UDK мне пригодились, когда я делал ремонт квартиры. Я с точностью до милиметра смоделировал квартиру с источниками освещения. А знания по созданию текстур пригодились, когда я брал реальные фотографии обоев с сайтов производителей обоев и превращал их в текстуры, чтобы максимально реально представить, как будет выглядеть та или иная комната.

Рубрики:Цiкавi дослiди Метки: , ,
  1. Комментариев нет.
  1. No trackbacks yet.

Оставьте комментарий