LTA: Lights! Thrusters! Action! - Итоги недели и немного внутренней кухни.

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

Если не видели прошлые посты, то кратко расскажу, чем вообще занимаюсь. Я делаю рогалик про сражения в космосе и управление командой корабля. Очень сильно вдохновляюсь таким играми, как FTL, Dwarf fortress, Rimworld, Pirates! Gold. Последняя просто взрывала мне мозг в детстве, наиграл в нее на Сеге, наверно, больше часов, чем во все скайримы вместе взятые:)

На начало недели у меня в общих чертах готова боевая система в космосе и генерация команды (об этом можно в прошлых постах почитать).

Теперь командой нужно как-то управлять, отдавать приказы, назначать на посты.

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

Потом подумал, что лучше будет сделать посты в виде отдельных комнат, как в FTL.

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

LTA: Lights! Thrusters! Action! - Итоги недели и немного внутренней кухни.

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

Интерьер корабля решил собирать из тайлов - у меня же все-таки рогалик:)

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

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

LTA: Lights! Thrusters! Action! - Итоги недели и немного внутренней кухни.

После этого я сделал парсер, который открывает файл, записанный в редакторе, читает из него и распихивает данные уже в нужные для игры структуры.

Затем начал разбираться с алгоритмом поиска пути. Есть хорошая статья, которая довольно подробно рассказывает, как работают такие алгоритмы: https://habr.com/ru/articles/444828/ Я думал сначала сделать свою реализацию этого алгоритма, но друг подсказал мне найти готовое решение, и оказалось, что их полно в Asset Store. После неких манипуляций алгоритм худо-бедно заработал.

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

Не с первого раза

Но это заработало:)

После этого нарисовал уже “чистовое” убранство корабля в редакторе.

И подготовил подробнейшую документацию, как я это вижу в игре:

LTA: Lights! Thrusters! Action! - Итоги недели и немного внутренней кухни.
LTA: Lights! Thrusters! Action! - Итоги недели и немного внутренней кухни.

Еще какое-то время потратил на то, чтобы слои картинки, нарисованные в редакторе, корректно отображались в игре.

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

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

На этом у меня пока все. Спасибо за внимание :)

Если хотите следить за проектом еще и в телеге, то подписывайтесь, пожалуйста: https://t.me/CubicPieLive

1010
16 комментариев

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

2
Ответить

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

1
Ответить

Вот тут эффекты выглядят консистентно. Жаль, нельзя поиграть)

1
Ответить

надеюсь, там можно будет жечь и душить чужой экипаж, как в FTL =) (или заражать гонореей. кстати, откуда степан ее получил? он же в скафандре.)

Ответить

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

2
Ответить

Здорово! Заметен опыт геймдизайнера в подходе к разработке :). Выглядит интересно, захотелось прочитать другие посты по теме. Удачи с разработкой!

Ответить

Спасибо :) Я стараюсь регулярно писать посты и делиться прогрессом :)

Ответить