Разработка продолжается! Новая раса, интерфейсные проблемы и генерация имен

Всем привет! В продолжение предыдущего поста наконец-то дошли руки до следующего.

Предупреждаю, здесь будет много картинок)))

Прежде всего, нужно сказать, что мы нашли все-таки 2д дизайнера (Игорь, привет! :) ). Соответственно у нас изменился подход к дизайну человеческих кораблей, а также замоделена новая раса «Мимиков». И появилась первая публичная версия логотипа!))

Новый лого)
Новый лого)

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

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

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

Маскировочное поле
Вот так выглядит их крейсер – основная ударная сила любых флотилий
Вот так выглядит их крейсер – основная ударная сила любых флотилий
Вид сверху
Вид сверху

Также были перемоделены корабли человеческой расы.

Для примера новый человеческий крейсер
Для примера новый человеческий крейсер
Утилитарный вид))
Утилитарный вид))
Истребитель - не смотри что маленький, вспомни пизантов в HOMM)
Истребитель - не смотри что маленький, вспомни пизантов в HOMM)
Но у нас истребители далеко не пизанты. Большой корабль с мощными неповоротливыми пушками - легкая добыча для этих вертких, злых и кусачих машин
Но у нас истребители далеко не пизанты. Большой корабль с мощными неповоротливыми пушками - легкая добыча для этих вертких, злых и кусачих машин

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

Щит - незаменимая вещь!

Добавлена так называемая «сила» кораблей, рассчитываемая из качества корпуса корабля (количества и размера мест для орудий, основных и вспомогательных систем, хитпоинтов), установленных орудий и систем. Формулу скорее всего придется корректировать, но пока так.

Флотилии сгенерены автоматически. Целевое значение силы флота для алгоритма -12000.
Флотилии сгенерены автоматически. Целевое значение силы флота для алгоритма -12000.

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

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

Было пересмотрено множество вариантов:

Вариант 1
Вариант 1
вариант2
вариант2
После чего было решено остановиться на этом
После чего было решено остановиться на этом

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

Крейсер не очень. Всего 2 большие турели из 4х возможных.
Крейсер не очень. Всего 2 большие турели из 4х возможных.

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

Боевая часть игры спроектирована (по идее) по принципу easy-to-learn-hard-to-master. Каждое оружие имеет несколько характеристик зависящих от дистанции, размера цели и калибра орудия. Соответственно, для корабля приводится общая интегральная характеристика огневой мощи с учетом всех установленных орудий - «Атака = 152». По идее этого должно хватить вначале - чем больше атака, тем лучше. При желании, для того чтобы более углубленно понять механику игры и специфику корабля, кликом по надписи «Атака» можно вывести общую матрицу повреждений:

Ужасный, ужасный матан. Атака 152 - ч
Ужасный, ужасный матан. Атака 152 - ч

Матрица показывает, какие повреждения будет наносить корабль на трех разных дистанциях (90, 50 и 20км) по различным целям. Это даст возможность игроку более детально настроить билд.

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

  • Пришлось обеспечить механизм полной сериализации как самих кораблей, так и всего что может на них устанавливаться. В результате я пришел к полноценной реализации патерна MVVM на unity(что не может не радовать).
  • Реализовать алгоритмы генерации различных сущностей с учетом заданной «силы». Например, требуется генерить корпуса кораблей с характеристиками, отличающимися от максимальных в нечисловом выражении. То есть крейсер, в который возможно установить не четыре орудия, а три. Или, к примеру, крейсер в который нельзя поставить щит (плохо восстановленный с необратимым повреждением конструкции). Долго пришлось бороться с «голубями мира» – могли получаться корабли с мощными пушками, но очень слабыми реакторами, которые вообще не могли стрелять или стреляли ровно 1 раз.
  • Придумать систему генерации имен сущностей, походящую к локализации на разные языки. Взять, к примеру, корпус крейсера «Эклипс». Если у него получится повышенное количество ХП, то он получит характеристику «тяжелый», если пониженное то «легкий» . Количество турелей описывает еще одна характеристика-код: 3 тяжелые турели – 3L (3 large turrets) или 2M1L (2 средние турели и 1 большая). Если по каким-то причинам в него нельзя ставить щит или броню, то он получит характеристику «восстановленный». Если в корабль допускается установка повышенного количества внутренних подсистем, то он получает характеристику «модернизированный», если пониженную, то «устаревший». Таким образом, мы легко получаем «легкий устаревший 4L крейсер Эклипс» или «тяжелый восстановленный 1S2M1L крейсер Эклипс». Количество билдов (особенно с учетом установленного оборудования), как вы понимаете практически бесконечно.

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

Я думаю, что на один пост достаточно - длинопост получился ну прям совсем длинным))).

Наша группа в ВК.

Спасибо за внимание! Критика и советы приветствуются)

1010
23 комментария

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

5

(отмечу, что кораблик становится прозрачным, когда снаряд в него уже летит)

1

Согласен насчёт названия.
Маск поле работает так, что системам наведения сложно сопровождать цель, соответственно некоторые выстрелы идут мимо.

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

1

Да, надо заменить цвет.

Дизайнер изначально в 3д моделит. Чтобы всегда были готовы любые ракурсы

1

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

Я понимаю, что вам хочется рассказать ЛОР игроку, но поверьте, если надо, то сам найдет, а если не надо, то лишь разозлит.