Часть 3. Так лень, что прыгну выше головы.

Это хроники разработки After Stars. Предыдущие части:

Часть 1: http://pikabu.ru/story/kak_sdelat_igru_esli_tyi_gumanitariy_...

Часть 2: http://pikabu.ru/story/igra_ot_gumanitariya_chast_2_4397337

Повествование будет неполным без рассказа о том, как вообще зародилась идея After Stars, и в чём собственно заключается эта идея.

Год назад я впервые поиграл в раннер на телефоне. Мне жанр пришёлся по душе, но чего-то не хватало. Я бы сказал проверки навыков. Все раннеры были достаточно казуальны. И тогда я начал искать в Google Play что-то проще гонок, но сложнее раннера, какой-нибудь Drag Race наподобие одноимённого режима из Need for Speed. Всё не то! Хочешь, чтоб что-то было сделано хорошо, сделай это сам.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

В концепте было задумано уровней 12-20. Я сел разрабатывать скелет игры, то есть перемещение корабля, управление, пользовательский интерфейс и т. п. Было сложно, не смотря на то, как это просто. Всё-таки первые шаги в программировании. Чуть ли ни с каждой мелочью пришлось повозиться. Я даже не знал нужно ли использовать симуляцию физики и каким из 10 способов перемещать корабль.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

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

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

Итак, по какому же принципу строится уровень?

1. Строится кривая (Spline), по которой движется корабль. Каждая точка равноудалена от предыдущей, но смещена либо случайным образом, либо специальным, чтобы создать какую-то определённую фигуру, например петлю.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

2. По Spline строится трек из Spline Mesh. Spline Mesh создаётся движком из Static Mesh путём его растяжения между двумя точками с учётом касательного вектора (Tangent). Именно от Tangent зависит как плавно Spline будет изменять траекторию.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

3. По правилам расставляются камни и другие препятствия на пути. По оси Y (в ширину) их должно быть не больше двух, по оси X (в длину) между ними должно быть определённое расстояние. И появляются они группами. Есть несколько видов групп и они различаюся по сложности. Всего их 8+3 аномалии, вот некоторые:

- Обычные камни, расстояние по X 4 м — нужно пройти на максимальной скорости (400 м/с), 2 очка повреждения.

- Крупные камни, чередуются слева-справа, занимают 2 клетки, расстояние по X 2 м — нужно пройти хотя бы на 300 м/с, 3 очка повреждения.

- Осколки, расстояние 1 м — их не пройти на скорости выше 200-250м/c, 1 очко повреждения, длина общего отрезка больше чем у других камней.

4. Далее с учётом всех препятствий считается оптимальное время прохождения трассы. Тут поподробнее.

На свою голову я задумал три несочетаемые вещи: управление скоростью, заезды на время, случайную генерацию!!! Как вообще до такого можно додуматься?!

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

«Вызов принят!» - хладнокровно сказал я себе. Просто нужно было заставить компьютер считать самому оптимальное время. Если бы я ограничился 20 дизайнерскими уровнями, я бы мог просто протестировать их и записать время прохождения. А миллиарды уровней уже, как вы понимаете, не протестировать. Бился я над этим целый месяц. В итоге я взял формулу из школьного курса физики, где через ускорение/скорость и путь можно найти время. Рассчитывая это время с учётом ускорений и замедлений для каждого участка (в моём случае 4 м), я сложением получаю оптимальное время для каждого уровня. Основная сложность была в правильной реализации этой идеи. Накрутив «проводов», я заставил всё работать как надо...с 20-ой попытки.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

В бесконечном режиме происходит почти всё то же самое, но только на протяжении всего заезда, а не при загрузке. Гиф

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

А в видео показан геймплей двух уровней. Обратите внимание на правый верхний угол — это оптимальное время прохождения. Я взял Millenium Falcon, а он быстрее других кораблей, поэтому он будет чуть быстрее оптимального времени. И к вопросу о балансе — не беспокойтесь, другие корабли вполне неплохо с ним конкурируют даже по времени.

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

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

3
Автор поста оценил этот комментарий

В принципе, отсутствие audiosurf на мобилках может дать этой игре шанс

выглядит даже несколько качественнее чем типичный школопроект

а музыка в ролике это музыка из игры или просто трэк? что там с музыкой в игре?


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

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

визуально разнообразить булыжники, часть из них заменить на каких-нибудь макаронных монстров.

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

раскрыть ветку
2
Автор поста оценил этот комментарий

Блин,круто.

Вот только динамики мало. Слишком статичен корабль. как и трасса

Автор поста оценил этот комментарий

А можно поподробнее как ты делал сплайны, и главное, как корабль по ним плавно движется? Потому что мне кроме триггеров или LookAt ничего в голову больше не приходит. Может есть какие-то видосы на эту тему?

раскрыть ветку
Автор поста оценил этот комментарий

+Отличное звуковое сопровождение.

+Известные кораблики, на которых интересно полетать

-мало динамики чувствуется

Автор поста оценил этот комментарий

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