Starships and Dragons, прототип

Собрал мини-прототип по концепту микса Heroes и Disciples в космосе на базе одного из прошлых проектов.

Starships and Dragons, прототип
космос и радиусы<br />
космос и радиусы

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

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

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

Поклацать вёб-версию можно здесь:

игровой процесс в альфе

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

Кстати, если взглянуть на самих Heroes, то там тоже можно было бы предусмотреть возможность обхода непреодолимых препятствий через какие-то способы, тратящие ресурс/боле времени и так далее. Например, заклинание полёта или хождения по горам, позволяющее очень медленно, но преодолевать преграду до первого касания земли. Или вовсе возможность рыть проходы-туннели, которые останутся на карте. То же может касаться и воды - засыпать её. Вобщем, некий более значимый терраформинг, чем перекраска из Disciples. Да, тут понадобится другой подход к картам, но из него же могут появиться новые возможности и варианты развития геройского геймплея куда-то ещё - например, и сами замки начать двигать, на манер фреймов из Периметра. Всякое может быть.

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

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

псевдо-комбат в прототипе<br />
псевдо-комбат в прототипе

Ещё в процессе появились очертания первой фракции - технологическая планета Нелуна, с расой нелюдей (различные гуманоидные существа в скафандрах) и звездолётом "Тринити" в качестве средства передвижения. Собственно, что касается юнитов разных фракций, по идее все они должны представлять собой различных, так или иначе, летающих/левитирующих существ или дронов/девасов. Потому как по сути вылетают из корабля в космос для сражения. Естественно, с поправкой на природу родной планеты - у магических и божественных планет с этим проще, а вот технологическим логичнее одевать скафандры, использовать роботов/киборгов или плотные голограммы. У эволюционного корабля юниты вобще могут быть его отдельными органами, и можно на поле боя рисовать его под ними, как платформу.

нелюди Нелуны - условные "космонавт" и "космоведьма"<br />
нелюди Нелуны - условные "космонавт" и "космоведьма"

Как более универсальный вариант - можно сделать дополнительную дальнюю линию клеток, где юниты стоят на корабле, а не находятся в космосе. И в зависимости от фрации задействовать разные наборы по 8 клеток из всех возможных 12. Таким образом у эволюционной планеты может быть вся дальняя линия доступна и занята "органами", а также доступны по 2 центральные клетки прочих двух линий, чтобы поставить туда до 2-х крупных "летунов" или забить мелочью - до 4-х юнитов. У технологической планеты тогда могут быть доступны пара клеток задней линии, для каких-нибудь турелей корабля, а остальные клетки останутся как обычно, за вычетом пары по краям. Ну а у какого-нибудь божественного или магического корабля - две обычные линии, именно для "летающих" юнитов. Естественно, это всё куда сложнее в разработке/балансировке ("задача со звёздочкой" и вряд ли стоит так усложнять), чем пара стандартных линий у любой фракции, но может добавить интересности и разнообразия разным сторонам.

Вариант с третьей линией, в которой юниты стоят на корабле. У нас отряд эволюционной планеты и в этой линии расположаены 4 "органа" корабля. Также остались 4 "воздушные" клетки, где размещён один большой юнит. У врага просто две "воздушные" линии.<br />
Вариант с третьей линией, в которой юниты стоят на корабле. У нас отряд эволюционной планеты и в этой линии расположаены 4 "органа" корабля. Также остались 4 "воздушные" клетки, где размещён один большой юнит. У врага просто две "воздушные" линии.
Другой вариант. Наша планета технологическая и в третьей линии стоят две турели звездолёта. А воставшемся "воздушном" пространстве сейчас пусто. У врага обе линии "воздушные" - стандартный вариант.<br />
Другой вариант. Наша планета технологическая и в третьей линии стоят две турели звездолёта. А воставшемся "воздушном" пространстве сейчас пусто. У врага обе линии "воздушные" - стандартный вариант.

Многие вещи изначально следует закладывать правильно, чтобы не переписывать с нуля всю архитектуру. Например, учитывая то, что в подобной игре должны быть сохранения - нужно создавать врагов определённым образом. Хорошее решение в данном случае - расставлять уже пронумерованные (от 0 до N) пустышки врагов/мест, которые при старте уровня подтянут сохранённые значения (жив/убит, посещён/не посещён) по своим ID из базы. Таким образом на разных картах может быть разное количество объектов, но сама база универсальная и содержит информацию о максимальном возможном количестве объектов. Плюс базе данных не нужно получать ссылки на каждый объект, они сами забирают оттуда свой статус или заносят его.

Непросто определиться ещё и с тем, откуда что брать, а что не брать. Например, в Heroes 2 всё что лежит в инвентаре - уже работает. А в Heroes 3 - чтобы работало нужно экипировать. Оба подхода имеют свои плюсы минусы, и требуют разного подхода к балансу, нельзя сказать, что вариант А во всём лучше варианта Б - они разные.

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

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

Кстати, что касается использования магии на поле - интересным направлением было бы скомбинировать это с выделеним маны юнитами и одновремнно убрать у юнитов очерёдность хода предоставив игроку самому выбирать каким юнитом походить сначала, а какими потом в течение всего общего хода. Походив юнитом получаем 1 определённую ману (как в MTG), на которую и можем творить заклинания в течение хода (разные заклинания требуют разных комбинаций). В конце общего хода, когда игрок ударил каждым своим юнитом (а враг отвечал своими, которые ещё не ходили), мана сбросится и начнётся следующий. А если юнит использует способность (не атаку), то не добавляет ману, например. Тогда магия для поля боя представляла бы собой мини-колоду, куда игрок выбирает заклинания. Но колоду открытую, где все карты "на руке" и многоразовые. Разве что можно было бы органичивать количество применений заклинания за бой количеством найденных его карточек-копий, а особо мощные заклинания давать на определённом общем ходу - на втором, на третьем. Что-то в таком роде.

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

Статья с изначальным концептом:

88
6 комментариев

За неделю сделал прототип? Вызывает уважение
Или ты просто публикуешь старые материалы?

1

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

1

Прототип обновился до второй версии - теперь работают простенькие сражения: https://dtf.ru/gamedev/3164653-starships-and-dragons-alfa-02