Хабрахабр

Невангеры

Всем привет. В этот раз мне хотелось бы затронуть тему разработки компьютерных игр, показать некоторые идеи и прототипы. Конкретно в этой статье речь пойдёт о проектах и набросках, вдохновлённых игрой Вангеры, она же Vangers: One For The Road. Пристёгивайтесь поудобнее, трюм полон интересностей, спираль заряжена, поехали.


Тогда ещё дома водился Спектрум и восьмибитки, а в школе только начали подпускать к мрачному досу и 95-м окошкам, а также Диабле, Дюку, сетевому Варкрафту. С оригинальной игрой я познакомился 20 лет назад, прочитав ту бесподобную статью в пятом номере Game.exe за 98-й год, и купив диск с Вангерами ещё до покупки своего первого компьютера. Потому что QBasic был интереснее. Правда приходилось иногда всем этим осознанно жертвовать.

Игра есть, а играть особо негде. Но вернёмся к Вангерам. Вот и ездили по клеточкам машинки, перевозя грузы между тремя городами — по изогнутым дорогам спокойнее и быстрее, а если срезать, то передвигаться труднее, зато на тайники можно наткнуться. Не беда — соорудил настолку «по мотивам». Бонусом было то, что его можно было проигрывать в купленной уже немного позже PlayStation One, как диск музыкальный. Сам же PC-диск лежал на полочке, как своего рода талисман и заочно любимая игра.

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

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

Например, вот с этим. Чтобы получить более полное представление можно познакомиться с видеообзорами. Или почитать в текстовом виде.

А у сообщества есть отдельный телеграм-канал. Не так давно оригинал переиздали в Стиме.

И, можно сказать, получил его в виде чумового первого «Периметра» (который геймплейно слегка напоминает мне другую забытую жемчужину — Netstorm), но каких-то экшен-проектов так и не воспоследовало. Переиздание переизданием, но, конечно, я ждал продолжения.

Тем не менее, подобные эксперименты тоже полезны — улучшают понимание того что с чем стоит смешивать, а что нет. «Мехосома» превратилась в «Самогонки», игрушку приятную внешне и концептуально, но какую-то слишком зубодробительную внутри и от того достаточно проходную.

Blender и Unity

В процессе жизни разработчики мигрируют между различными средами разработки. Вот и я понемногу доплыл от спектрумовского Basic, Qbasic и Delphi, до связки Unity c Blender, пройдя Flash, а также Blitz3d в упряжке с 3ds Max.

Правда он требовал к нему привыкнуть, но это того стоило. Blender впечатлял и раньше — полноценный мощный 3d-пакет, который весил какие-то жалкие десятки мегабайт. Глубоко в его возможности я поначалу не залезал, в основном мне тогда нравилась возможность красить вертексы, а так я привык пользоваться максом.

С тех пор тот успел обзавестись «честным» рейтрейсинг рендером Cycles, 3d карандашом, скульптом и прочими полезностями. Прошли годы, я снова вернулся к 3d от настольно-ролевых разработок, и уже не рассматривал макс совершенно, нацелившись на Blender. Тем временем версия 2. На этот раз интерфейс не показался мне чем-то космическим — может быть пригодился тот первый опыт, может быть действительно среда стала более интуитивной. В принципе это уже всё есть, но пока в нестабильных сборках — допустим, у меня в 2. 8 обещает быть ещё интереснее — не только шустрый «игровой» рендер Eevee, но и изменённый интерфейс, буст анимационных возможностей. Вобщем, Blender — это очень правильный опенсурс. 8 немного глючит сцена и в редакторе нодов связи совершенно прозрачные (а вот на Linux эта версия работает более стабильно).

Тоже отличный инструмент. Unity. Таким образом в Unity я нашёл всё что нужно, чтобы делать 3d-графику работающую на скриптах. Для понимания того как всё устроено мне пригодился опыт использования Blitz3d и Flash, на последнем я как раз собирал законченные игры, а не только прототипы. Сейчас скорее проблема в оптимизации, потому что среды разработки стали более дружелюбны к пользователям и велик соблазн забить всё доступное пространство сверх-тяжёлыми супер-детализированными объектами, а код писать так, как будто моделируешь реальную ситуацию, в лоб. Хотя сейчас в принципе движков появилось много — не проблема делать на чём угодно. Что давало хорошую оптимизацию при скромных мощностях. При том, что классический подход состоял в тотальном использовании таблиц, массивов, матриц, многообразия операций с ними, и формирования у пользователя всевозможных иллюзий — иллюзия объема, иллюзия перемещения, иллюзии эффектов и так далее.

Невангеры

И вот сижу я как-то, моделирую всякие лоуполи элементы в Блендере, да и вспомнились вангеровские машинки-мехосы. Набросал одну такую, ну а раз Unity тоже под руками, то почему бы не поездить. Далее случайно обнаружился ассет с физикой колёс, и мелькнула мысль «а не собрать ли маленький кусочек локации из Вангеров на Unity». Кстати, когда-то давно, на Flash собирал игрушку, где надо было взрывать грибы и давить бегающих жучков — тоже некая отсылка к моментам из Вангеров.

Unity-ассет, кстати, назывался MS Vehicle System (free version), если кому интересно.
Так и появился первый прототип, по которому записал небольшое видео:

Куда это развивать дальше было не понятно и я занялся другой игрой, про другую идею и с управлением на более стандартных механизмах, не через специальные ассеты.

Во время опытов с очередным способом создания моделей в голове что-то щелкнуло и захотелось сделать такую как-бы «органическую» машинку. Параллельно я плотнее распробовал Блендер, особенно скульпт, и погрузился в эксперименты с рендером всяких концептов, персонажей, архитектуры. Тут-то всё и завертелось.

Тантрамантра, или Вангеры 2

Действительно, что если представить себе некое продолжение оригинальной игры. С новыми мехосами, новой проблематикой, новым движком.


Органический еретик


Матрона

Вроде бы вырисовывается нечто в духе оригинала. Как бы мог выглядеть сюжет подобного продолжения? Я вижу это примерно так:

Во время катаклизма привычные связи между мирами разрушились, а из новых порталов туда стали активно проникать иные формы жизни. Продолжение истории освещает события произошедшие с Цепью миров после Бури Врат, во время которой новые Коридоры хаотически появлялись и закрывались в самых разных местах. В погоне за новыми вооружениями и артефактами четырёхколёсные герои устремились в новые Коридоры, чтобы изучать другие миры.


Кукловод

Буря поутихла, но случайные Коридоры всё ещё возникают, а существующие не всегда стабильны. Шло время. Там их корпуса очень быстро разлагались, но некоторым удалось уцелеть в чужеродной среде, слиться с ней и переродится в нечто иное. Обозначились и новые проблемы — пока мехосы колесили по переходам, восстанавливая связи со старыми измерениями, некоторых занесло в очень опасные отдалённые миры. Они несут с собой странные новые способности и порядки, а также большая часть привычного оружения оказалась неэффективной против этих необычных новичков. Со временем эти чужаки стали выходить за пределы измерения, всё чаще выходя на дороги Цепи и сталкиваясь с прочими её обитателями. А ещё, помимо расплодившейся фауны и флоры, героям угрожает таинственная Рой-Технология — скопища мелких искусственных созданий с единым разумом.


Порочная сестра

Еретики ведут себя понятнее всех остальных, издали сойдут за привычный мехос, берутся за привычную торговлю, да и советники их привечают. Ходят слухи, что Сёстры утаскивают части павших куда-то далеко, для своих тайных экспериментов. Кукловоды со своими охранными дронами обычно заняты какими-то своими исследованиями, а вот Матроны ведут себя достаточно агрессивно.


Глубокозависимый

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


Дочь спирали

Мехосов придумалось много, ниже можно взглянуть на оставшихся: Примерно такая вырисовывается история.

Концепты мехосов

Помимо самих рендеров для каждой машинки записал демонстрационный мини-ролик, где они вращаются вокруг своей оси. Рендерил в Blender 2.79. Дело это, конечно, не быстрое, но решил писать в 640 на 480 — вроде хватает. Пару первых анимаций делал на 60 кадров, затем удваивая каждый в видеоредакторе. А дальше стал делать более плавные, уже в 120 кадров.

Остальные мехосы вращаются тут:

Анимация мехосов

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

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

Так сказать, «растёт ли оружие на грядке?». В чате телеграм-канала был задан вопрос на тему того, что если у мехосов растительно-биологическая природа, то что насчёт их пушек. Так придумалась дополнительная концепция: И тут я подумал, а почему бы оружию не иметь лапки, и вобще быть частью эволюционной цепочки мехоса.

Оружие — это симбионт, который крепится к машинкам и позволяет им стрелять. Итак, в начале у нас имеется зародыш, который развивается в летающее «насекомое», потом превращается в оружие на ножках. Затем куколка развивается и в конце из неё появляется машинка. Через некоторое время или после определённого количества владельцев, набухает и окукливается.

Основной текущий Unity-проект для этого не подходил. Параллельно с придумыванием концептов я закидывал модельки в Unity, чтобы прокатиться. Вот что в итоге получилось: И тут опять пригодился тот невангеровский прототип, в котором уже подразумевается колёсная техника.

Кнопка С переключает камеры (следующая после основной, свободная — можно приближать и отдалять колёсиком), кнопка R перезапускает локацию (пригодится, так как машинки легко могут застрять, а прыгать пока не умеют), стрелки вверху экрана переключают между доступными мехосами (с интерактивными объектами полноценно взаимодействует только основной). Сам Unity-прототип можно скачать здесь.

Весит демка 65,9 Мб, под 64-битную ОС.

Проект XPL

Теперь что касается другого прототипа. Он тоже в некотором роде вдохновлён Вангерами. Хотелось чего-то странного, с похожей стержневой идеей, но не копию. то есть хотелось делать именно что «не вангеров», а нечто своё. Со странными мирами, таинственными местами, поиском необычных штуковин, открытиями и вобще какой-то геймплей, не завязанный на текст. Мне обычно нравятся всевозможные представители «гоночного» жанра, если процесс не перегружен лишними деталями и реалистичным окружением. То есть привлекают аркады, а не симуляторы. В то же время, наматывать ровно нарезанные круги — занятие не самое приятное. Хочется всё-таки открыто исследовать некий мир. От этого и решил отталкиваться.

Герой этот принадлежит расе болидов, обладающих квантовым разумом, которые должны выглядеть примерно как футуристические байки с одним колесом.
Внутри болида находится полу-антиграв, который позволяет байку быть невесомым, при условии, что его колесо соприкасается с телом огромной массы (земная поверхность). Так нарисовалась некая история о кибернетическом герое, бороздящем разные миры в поисках смысла существования.

Начал с кубиков:


Не совсем кубики, но вы поняли

Моделька усложнилась, появились какие-то наброски локации: После первых покатушек пришло некое понимание куда это всё можно развивать.

0
Болид 2.


Стартовая локация

Хотя я не назвал бы это ни гонками, ни головоломкой, но направления близкие. На тот момент в качестве геймплея предполагалось скоростное исследование просторов покинутого мира и решение каких-то его загадок. Не то, что это плохо, и может быть стрельба добавится в дальнейшем, но хотелось сперва посмотреть, что придумается при отсутствии боёвки. Возможность «пострелушек» я намеренно исключил — это самое простое, что первым делом тащат в любые игры и потом всё вырождается в пушки-выстрелы-патроны-боёвка. Мне нравится идея некоей доставки грузов между разными точками, но не хотелось бы вводить это в виде торговли предметами. Касаемо какого-то текстового сюжета, некого инвентаря и каких-то прочих действующих лиц — это всё под вопросом.

Тем временем, первая итерация идеи выглядела как-то так:

Просто модельку для рендера, чтобы было: Чуть позже, продолжая постигать Блендер, я добрался до хайполи моделирования и решил сделать более технологичную модель байка для XPL.

Проблема только в слишком большом количестве полигонов, хотя современным движкам можно скармливать и не такое. Но вы же понимаете, что модель хочется сразу добавить в движок, чтобы даже хотя бы банально увидеть её в движении, так как рендерить простую анимацию в Cycles — это уже довольно долго. Благо моделька была не скульптом, к тому же моделилась через симметрию, поэтому полноценной ретопологии не потребовалось и оптимизация сетки прошла быстро: Однако, хочется чтобы аккуратно, красиво и производительно, что называется «по классике».

Так появилась отдельная сцена с видом сверху. Кроме новой модели я задумался над тем, что некоторые уровни могли бы иметь камеру закреплённую над героем. Ну что же, это было сигналом к тому, что управление нужно менять, хотя бы в рамках новой сцены. Правда управление в ней уже не работало так как нужно, потому что в оригинале повороты контролировались отклонием мышки от центра и в другой перспективе полноценной езды не получалось. Попутно поменялись составные элементы персонажа, благодаря чему он стал лучше кататься и самое главное — получил способность «залипать» на поверхности, не соскальзывая. В итоге я переписал модель управления и теперь болид поворачивает в стороны на боковые стрелки, а по вверх/вниз едет вперёд либо назад. Да, он теперь стал настоящим скалолазом. Я как раз хотел добиться этого эффекта, потому что он лучше подходит для отражения того, как должен вести себя задуманный полуантиграфитационный транспорт.

Поэтому в сцене с камерой позади болида я тоже заменил управление. Новая форма управления мне понравилась больше чем старая, не смотря на то, что у элемента character controller свои нюансы и он не участвует в физике полноценно, как предыдущий вариант с rigidbody. После чего собрал следующий прототип, демонстрирующий новые элементы:

Немного скриншотов

В принципе, встроенная в Unity система шейдеров позволяет настроить материалы довольно гибко, однако мне не хватало каких-то более красочных бликующих эффектов и я поискал различные способы того, как их проще сделать. Решением оказалась концепция маткапов (matcap) — в том же Blender есть наборы этих простых текстур, хранящих световую карту окружения, которые подменяют собой материалы всей сцены, хорошо выглядят и на лету отрисовываются в реальном времени. С ними удалось добиться ещё более сочного вида модельки.

Попутно я занялся локацией для вида сверху, переделывая её с нуля, рисуя дорожки, горы и расставляя там разные новые элементы:

Но этот элемент в Unity добавляется относительно легко — буквально в несколько кликов. Так как сверху сложновато ориентироваться по окружающему ландшафту, то сама собой попросилась мини-карта. Я имею в виду автоматический зум, который отдаляет основную камеру, когда болид разгоняется — как в первых GTA. А вот другая вещь, которая пришла мне в голову, потребовала куда больше времени на реализацию, хотя тут тоже в итоге кода получилось не много. Видеонарезка: И вот, когда уже всё это заработало, то последовала очередная, пока последняя сборка, содержащая все эти новые изменения.

Прыжок на пробел. Прототип выложен тут.

Весит около 45 Мб, версия для 64-битной ОС.

Итог

Ну что же, на этом у меня пока всё. Надеюсь поездка была приятной и не утомительной.

Удачи вам в разработке ваших проектов!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть