Офтоп Роман Тян
1 143

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

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

В закладки

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

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

Новый лого)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Написать
{ "author_name": "Роман Тян", "author_type": "self", "tags": [], "comments": 23, "likes": 16, "favorites": 0, "is_advertisement": false, "subsite_label": "flood", "id": 12874, "is_wide": false, "is_ugc": true, "date": "Mon, 27 Nov 2017 00:02:47 +0300" }
{ "id": 12874, "author_id": 30574, "diff_limit": 1000, "urls": {"diff":"\/comments\/12874\/get","add":"\/comments\/12874\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/12874"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64955, "possessions": [] }

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

Популярные

По порядку

Написать комментарий...
5

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

Ответить
1

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

Ответить
1

Это случайность)) в игре пропадания и выстрелы не согласованы

Ответить
0

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

Ответить
0

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

Ответить
0

Маскировка визуально мигает со случайной частотой. Это просто эффект. В механике игры она просто даёт бонус к уклонению

Ответить
0

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

Ответить
0

Стреляют чем? Энерголучами или твёрдыми снарядами?

Ответить
0

Кинетика - снарядами. Энергия как лучами так и кусками лучей как в ЗВ.

Ответить
1

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

Ответить
0

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

Ответить
1

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

Ответить
0

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

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

Ответить
0

Пока не придумали что добавить вместо описания. Как только появится необходимость в дополнительных контролах именно здесь - описание пойдёт под нож только в путь.

Ответить
0

В целом хочу сказать, что дизайн, хотя и далёк от идеала, всё же неплох, особенно по сравнению с другими мобильными инди-играми. И принцип easy-to-learn-hard-to-master - это классно. Похоже, дело у вас продвигается нормально. Желаю удачи!

Ответить
0

Спасибо!

Ответить
0

А зачем для 2Д игры моделить корабли в 3Д?

Ответить
0

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

Ответить
0

По лору игры мимики (Это не "Грань будущего", нет!)

(Prey?)

Ответить
0

Блин, просто мимики от слова мимики)))

Ответить
0

От слова мимикрия

Ответить
0

Мой коммент намекал, что на данный момент "мимики" были в ближайшем Prey, а не далёкой "Грани". Наверно, пропустили эту игру.

Ответить
0

Ы. Не играл...

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Пять простых способов разогнать свой ПК
с помощью соли и чайной ложки
Подписаться на push-уведомления