Magic, Wоrd & Swоrd#22 Технические обновления проекта. Редактирование карт и локализация
Что это за пост?
Недавно закончился онлайн фестиваль "keep calm, do games" в рамках которого вели дневник разработки нашего игрового проекта. Как видите это уже 22 пост и если вам интересно, что мы делаем, то милости прошу в мой блог, там есть что почитать :).
Если коротко, то мы разрабатываем пошаговую стратегию с карточным боем и возможностью игрока влиять на глобальную карту боя. Это напоминает гибрид Hereos of Might and Magic, Hearthstone, Civilization и Populous. Не могу сказать, что конечный проект будет точной копией приведённых в пример. Однако, много идей было подчерпано оттуда.
Мы создаем посты, как только в проекте наметилось хоть какое-либо продвижение. Приятного чтения.
Реализована локализация
Теперь проект поддерживает переключение в локализации для текста. Реализовано всё простым образом. Написан скрипт, который отвечает за мгновенное изменения текста на всех текстовых объектах в игре.
В связке с этим скриптом в проекте присутствует "словарик", отвечающий за всё текстовое наполнение в игре.
У каждого текстового поля в игре, есть "текст по умолчанию". Когда мы запускаем игровой проект и в нём создаются текстовые поля, то скрипт выполняет запрос о том, какой язык сейчас стоит. Если "Русский", то ок - язык остаётся по умолчанию. Ежели английский, то в "словарике" выполняется поиск строки, где русскоязычный текст полностью совпадает с текущим текстом в игре. Далее выбирается значение из разделителя относящегося к текущей локализации, которые разделены между собой знаком ";". В нашем случае английский язык идёт после второго знака. И значения заменяются на нужное.
Очень надеюсь, что верно понял Алексея, когда он объяснял мне принцип работы данной штуки :)
В дальнейшем планируем сделать, чтобы актуальная локализация подгружалась с гугл диска, чтобы при изменении текста они мгновенно отображались во всех клиентах игр игроков.
Реализован конструктор игральных карт
Очень интересных механизм, на мой взгляд. Ранее когда играл в харстоун, думал, что все карты там зашиты. Наш разработчик сделал конструктор для геймдизайнера, где буквально по состояниям можно создать какой-либо эффект, а затем присобачить его к нужной карте.
Работает он так:
Функционал вынесен в контекстное меню движка по правому клику мыши. Создаём там Spell. И у нас появляется объект, с такими вот штуками:
Здесь мы можем ситуацию и "состояние", которое будет происходить при разыгрывании карты. Сейчас видно:
- Что происходит при разыгрывании карты (боевой клич)
- Цель на которую будет разыгрывание
- Что будет происходить (например накладывается божественный щит)
- Условие, когда данный спелл заканчивается (например когда бафф действие до конца хода)
Состояния также создаются у нас отдельно через контекстное меню
Здесь мы можем задать условия событий: в начале хода, при определённых условиях, в конце хода и т.д. А далее выбрать что происходит: наносится урон, восстанавливается здоровье, увеличивается какой-либо из показателей и так далее :)
В общем прикольная штука. Если вам интересно о том как будет происходить бой в игре, можно посмотреть эти статьи:
Ссылки на нас
Компания заявила, что инвестирует в игру «больше, а не меньше».
Компания уже ведёт переговоры с партнёрами и разработчиками игр.
Локализация в собственном формате Настройки игровых данных в ассетах 2020 год
https://assetstore.unity.com/packages/tools/visual-scripting/game-data-editor-charon-95117
либо
https://habr.com/ru/post/262901/
Мы инди) собственно одна из причин ведения дневника - это возможность получить опыт откуда либо ещё. Спасибо за ссылки
А чем примеры, приведённые по ссылкам, лучше игровых данных в ассетах (с текстовым файлом то понятно)? Как я в гугл-таблице сделаю ссылку на префаб? В конце концов, если есть своё автоматизированное решение на SO-ассетах, то по-моему это как раз наилучший способ хранения на текущий момент. Буду рад услышать альтернативное мнение)
Я вас понял, обязательно почитаю. Общий игровой концепт, который вы описали мне очень близок как игроку. Буду следить за проектом. Единственный совет: не хочу обидеть, но подобные статьи, где вроде и про техническую сторону, но на самом деле нет, лучше доверьте программисту писать или не пишите вообще. Просто это воспринимается странно, абсолютно примитивные базовые возможности юнити вы подаете, как какую-то особую техническую разработку(Wat!). Причем без технических подробностей собственно=) Короче читается странно, не понятно о чем пост=)
Спасибо за рекомендацию) век живи век учись :)
ты так вовремя влез между инфой по ue5 )
Случайно) хотя кстати анонсу UE5 очень рад