
О разработке на этой неделе

На этой неделе мы мало времени уделяли боевой системе. Большая часть усилий была сосредоточена на менюшках (куда же в играх без них) и упрощениях правил.
Если вам лень читать длиннопост, то переходите сразу к видео, в нем весь показан весь основной прогресс разработки.
Экипировка
Изменение претерпела система экипировки и некоторые базовые правила. Изначально мы предполагали, что кумулятивная броня персонажа состоит из трех компонентов - грудь, ноги, голова. После ряда плейтестов и комбинаций решили расширить список, попутно объединив два слота (кисти и наручи) в один. Таким образом за увеличение параметра брони отвечают теперь 6 типов предметов:
- Нагрудник
- Шлем
- Штаны
- Ботинки
- Наплечники
- Перчатки
Это же dev-blog, верно? Давайте немного расскажу, как у нас все устроено.
Наш персонаж в игре "распилен" на части и физически не существует в проекте целиком. Есть один основной префаб, который хранит в себе часть логических компонентов и скелет.

За описание сборки персонажа отвечает компонент - кастомизация (напомню что мы используем ECS). В описанных данных этого компонента существуют меши, разделенные на отдельные префабы по признакам частей тела:
- Ладони
- Предплечья
- Плечи
- Корпус
- Ноги (Hips)
- Ботинки (включат икры и ступню)
- Голова
- Волосы
- Борода
- Брови
При запуске игры система читает описанные в заданном формате данные кастомизации и собирает игрового персонажа по кусочкам.

Когда мы говорим о предмете "перчатка" в изначальном исполнении, то это компонент экипировки, который надевается в определенный слот и меняет параметры компонента "кастомизация" на персонаже: скрывает дефолтный меш ладони, и включает тот, который выглядит как перчатки.
{ "ComponentType": "DressComponent", "Properties": { "hide_parts": [ "HandRight", "HandLeft" ], "slot": "Hands", "female_resource_ids": [ "Chr_HandLeft_Female_13", "Chr_HandRight_Female_13" ], "male_resource_ids": [ "Chr_HandLeft_Male_13", "Chr_HandRight_Male_13" ] } }
Однако набор наших мешей для ладоней визуально друг от друга мало чем отличается (порядка 2-3 разновидностей). Для улучшения эффекта мы стали менять сразу и предплечья, и ладони. Такой выбор, как нам показалось, увеличит вариативность за счет комбинаций и даст более ощутимый эффект надетого предмета.
Переписывать код для этого не пришлось. Мы просто изменили описание объекта в компоненте сущности:
{ "ComponentType": "DressComponent", "Properties": { "hide_parts": [ "ArmLowerRight", "ArmLowerLeft", "HandRight", "HandLeft" ], "slot": "Hands", "female_resource_ids": [ "Chr_ArmLowerLeft_Female_06", "Chr_HandLeft_Female_13", "Chr_ArmLowerRight_Female_06", "Chr_HandRight_Female_13" ], "male_resource_ids": [ "Chr_ArmLowerLeft_Male_06", "Chr_HandLeft_Male_13", "Chr_ArmLowerRight_Male_06", "Chr_HandRight_Male_13" ] } }
Интерфейсы
Пусть для вас не будет удивлением, что большая часть разработки мобильной игры это работа над интерактивными интерфейсами (особенно, если игра не кликер). Поэтому мы кропотливо писали логику взаимодействия с уже давно хранимыми в проекте данными - переключателями причесок, цветов кожи, волос, полов, и боевых раскрасов.
В среднем окно настройки выглядит так:

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

Соответственно посчитать броню для всех остальных в таблице не составило сложности - ведь у нас есть параметр iLevel, все остальное за нас сделает формула! :)

А чтобы все это заработало в проекте достаточно было просто добавить в существующие сущности перчаток, наплечников и ботинок компонент, отвечающий за хранение данных брони и ссылки на сами цифры. Минут 10 копипасты и победа - 3 новых типа экипировки для прокачки игрокам готовы.
Видео
Мы записали набросок того, как представляем первую сессию игрока. Потыркали по менюшкам, настроили персонажа, выбрали экипировку (из кучи белых прямоугольников) и пошли набивать морды.
Запись игрового процесса
на записи есть Настройка внешности, Экипировка и, собственно, сама боевкаКстати список мест, где мы выкладываем наши материалы:
- Родной Vk
- А также в мой личный Reddit
C вами был Jusper, до новых этих самых.
Смотрите также:
Комментарии
А можно где то почитать как именно вы сделали кастомизацию? Интересует не программная часть, а именно процесс разделки модели и как она потом получается бесшовной в игре если по сути вы собираете ее по кускам? Всегда была интересна эта механика с точки зрения реализации, но сам так и не дошел как именно делят модель чтобы получалось без швов.
win20082007, но в целом основной вопрос стоит в сжатии текстуры (не меньше 16 бит) и так называемых "допусках" в мешах, чтобы не было Z-Fight-ов.
Да было бы интересно почитать более развернуто, хотя бы основные этапы подготовки меша к тому чтобы стать модульным и не было неприятных артефактов. Я в своей игре хочу использовать подобную систему для создания модульных боссов (ну типо откусывания им конечностей), но пока не до конца понимаю как это делается в графическом плане.
Почему действие после всех условий выполняется?
[step another object]