Парень разрабатывает игру с 1997 года и регулярно отчитывается о прогрессе

Проект длиною в жизнь


c5edd46e531a4ac7bbfec844b93f5ff5.jpg

Как показал недавний пример Voxel Quest, создание некоторых компьютерных игр может затянуться надолго. Какой ни установить дедлайн — он обязательно будет просрочен. Особенно если проектом занимается единственный разработчик, очень увлечённый своим делом. Фанатичный автор хочет довести игру до идеала, уделяет внимание каждой мелочи. Такие игры или становятся шедеврами, или не выходят никогда. Обычно второе.

Австралийский разработчик по имени Фил уже 18 с лишним лет тратит свободное время на любимое хобби: создание Самой Лучшей Игры всех времён и народов под названием Pegwars (Political Economic and Galactic Warfare) — политический, экономический и галактический боевой симулятор.

Игроки со стажем должны помнить космический симулятор с элементами космической стратегии под названием Elite. Та игра вышла в 1984 году и стала родоначальником нового игрового жанра, где космические битвы сочетаются с торговыми отношениями.
Маленький Фил впервые увидел Elite, когда ему было 11 лет, и сразу «подсел».

Восемь целых галактик, множество инопланетных рас, миссий, бои в реальном 3D. Настоящая фантастика для компьютеров ZX Spectrum с 48 КБ памяти. Другие игры рядом не стояли рядом с этим шедевром (пока не появился Star Control, конечно, но там уже был немного другой жанр и боевой режим 2D).

Игра навсегда запала в душу парня, и как только он научился программировать по окончании университета, то сразу засел за создание Pegwars. Это было примерно в октябре 1997 года. С годами он всё больше погружался в аспекты гейм-разработки, освоил дизайн, художественное искусство, музыку, научился более профессионально программировать. Спустя много лет недоделанная демка Pegwars помогла ему даже устроиться на работу в компанию, которая занимается разработкой компьютерных игр. Фил говорит, что даже новое увлечение сочинением электронной музыки появилось во время разработки игрового сопровождения для Pegwars.

Разработка несколько затянулась, мягко говоря. Последние шесть лет Фил ведёт блог, рассказывает о прогрессе и новых фичах, которые внедрил за последние несколько месяцев или год. Новая версия Pegwars раньше выходила примерно раз в два года. Игру постоянно приходится дорабатывать, потому что технологии не стоят на месте, а автор ещё не реализовал все свои задумки.

Например, вот так выглядела первая версия PEGWARS, ещё в режиме 2D, написанная на DirectDraw 2.

96e1adea3f2e4f80882a476745c16fd1.jpg
Pegwars 1.0

Уже в первой версии Фил реализовал примитивный ИИ в боевом режиме, который обучался с использованием генетического алгоритма. У каждого корабля противника был коротенький «фрагмент ДНК», который реагировал на покадровый ввод и выдавал команду для действий корабля. После работы с генетическими алгоритмами Фил вынес урок, что тестирование эволюционирующих генетических алгоритмов следует проводить в модели игры, а не в полной версии, потому что тесты 100 поколений для 100 пилотов занимают слишком много времени.

В версии Pegwars 2.0 автор впервые реализовал трёхмерное игровое пространство в боевом режиме.

4c13cc51dcb44627a2a67e8950653b16.jpg
Pegwars 2.0

В новой версии автор прикрутил слой 3D поверх старого движка 2D и сделал модульные корабли с drug-n-drop редактором, в котором можно было перетаскивать и заменять основной двигатель, подруливающие двигатели, импульсные лазеры и другое оснащение кораблей перед битвой. Если вы забыли добавить двигатели к кораблю, то он вообще никуда не полетит. Со второй версии Фил сконцентрировался на создании полностью модульных кораблей с настраиваемой конфигурацией.

Pegwars 3.0 стала первой версией с 3D-ускорением, сначала с GLIDE, а потом DirectX. Здесь разбитые корабли сразу разлетались на осколки, вплоть до исходных полигонов.

89cbf31c88ce47249303bbc063ad12d3.jpg
Pegwars 3.0

Именно эта версия легла в основу демки, которую Фил показал рекрутерам из компании BigWorld Technology — и они пригласили его на работу. Так мечта парня о работе в индустрии игровой разработки воплотилась в жизнь.

Фил продолжал совершенствовать модульный реактор кораблей, а в четвёртой версии реализовал многое из того, чему научился у коллег в BigWorld Technology, в том числе движок гравитации и более реалистичную космическую графику.

82dbab5583be4c0bbad5c07aab7d8fdf.jpg
Pegwars 4.0

Фил говорил, что на этом этапе у него появилось ощущение, что проект может оказаться слишком сложным для одного человека… Но останавливаться было уже поздно.

В пятой версии Pegwars впервые стало возможным спуститься и приземлиться на поверхность любой планеты в галактике, пересесть на какой-нибудь мотоцикл или автомобиль — и покататься по окрестностям! Реализована высадка на космических станциях, сражения внутри них и повышение собственного уровня в случае побед.

bccf3326660b4b7ea9c5475e41a7b3d9.jpg
Pegwars 5.0

Ещё одна интересная фича — реализация восхода и заката солнца на любой планете. Если вы летите в атмосфере планеты против её вращения, то вскоре увидите восход солнца, при этом воздух проясняется, а небо расцвечивается в цвета восхода. При продолжении движения в том же направлении солнце поднимается дальше вверх, а затем опускается позади корабля.

Создание пятой версии заняло несколько лет. Фил продолжал кодировать на C++. Он говорит, что из-за этого разработка продвигалась более медленно, чем могла бы при использовании сценарных языков. С каждым новым модулем игра разрасталась и её становилось всё труднее поддерживать.

Фил понял, что движок надо переписывать с нуля — и в 2010 году приступил к созданию принципиально новой версии Pegwars.

Новая версия


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

Движок доработан, так что путешествия между планетами и между галактиками теперь происходят плавно, абсолютно без рывков — от момента выхода из варп-скачка на сверхсветовой скорости до приземления на планету и путешествия по её поверхности.

Например, так выглядит одна из планет с пустынным ландшафтом, похожим на Австралию.

7f3ab24fecb645b19622632184e9485a.jpg

А вот результат работы прототипа движка по рендерингу облаков.

d80506474ef6470f8a9f7678abf58243.jpg

Облака раньше отображались по картинкам, но автор хочет использовать систему рендеринга частиц или клеточный автомат на GPU для генерации реальных процедурных облаков на каждой планете, в соответствии с физическими условиями этого мира. Облака встроены в шейдер рассеивания атмосферы, так что они тоже подсвечиваются при закатах и рассветах и отбрасывают тени. Такой подход выгоден тем, что можно внедрять туда произвольные объекты и пролетать сквозь облака.

cc1d842e61334f62b64e5a3b43336ad1.jpg

dac23e76b27749ab875430a8f3d32b83.jpg
Корабль пролетел над планетой и где-то разбился

Атмосферный шейдер теперь красиво обрабатывает солнце на восходе, подсвечивая атмосферу.

4f810b9f53874862a57c5f3daf3c2e64.jpg

f66e0136f7d44f1c8096c4d4230d1559.jpg

414a4343e44944edb58ebd4cc74300ae.jpg

8f7b7a19875f43718af4e9c64cf09173.jpg

Процедурная генерация относится не только к планетам, но и к спутникам.

f884719f73bc4367ad7624cea513722d.jpg

Полёт ранним утром:

282de7cfb5dc4f22b5cb5161a40c2b0d.jpg

Вот ещё несколько скриншотов из последней версии игры.

Планета с тёмным солнцем
626b68b223f84fa2b005b1be8a6281db.jpg

Вид на солнце из кратера на луне
1bc66bdc9fd14591a7344e43ebc73f32.jpg

Взлёт с поверхности планеты с какими-то розовыми кристаллами
6cd4c0c6cda84f239e50311f23adade8.jpg

Вид на планету с гигантским кратером
ed4a4f627e4e45f199e3e0a47942db88.jpg

Лесная долина на планете с розовыми кристаллами
7cb6adcaec3d4a318c3cf44f34bac7de.jpg

Изучение поверхности нескольких случайных планет
57e2a45e4254479593ae0479c884de24.jpg

f94796f9290d4926b58a43e57ceb5386.jpg

Фил рассказывает, что когда реализовал нормальный ИИ для кораблей и полноценный боевой режим, Pegwars стала действительно похожа на настоящую компьютерную игру, а не космическую песочницу.

4d037d706e4a4d77a7d3f15bfaf5a8e1.jpg

С каждым годом у автора появляется всё больше идей, как улучшить игру. Например, с выходом первых прототипов Oculus Rift пару лет назад Фил задумался о реализации режима виртуальной реальности с поддержкой шлемов VR.

f6110f12d1b841689c8d831a02c9ff27.jpg

Получилось вполне неплохо.

3fb0e910c3e54459b14450a13866c3d0.jpg

ae280c9e36424a01a163376c0dce4133.jpg

Будем надеяться, что проект всё-таки когда-нибудь дойдёт до логического завершения — и каждый из нас сможет насладиться геймплеем так, как сейчас им наслаждается Фил.

Некоторые другие длительные проекты героев-одиночек


  • Компьютерную игру Infinity с 2004 года разрабатывает пользователь Флавьен Бребион (Flavien Brebion) под ником Ysaneya, регулярно рассказывая о процессе разработки на игровом портале GameDev.net.
  • Испанец Хусто Гальего Мартинес с 1961 года в одиночку строит свой собственный собор в городке Мехорада-дель-Кампо, в 20 км от Мадрида.

© Geektimes