Hints Library

Tulenber 6 March, 2020 ⸱ Intermediate ⸱ 3 min ⸱

- Бег, это как ходьба. Только быстрее! Far Cry 3: Blood Dragon

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

Far Cry 3: Blood Dragon

Чтобы закрыть тему с примерами симпатичная The Legend of Zelda Breath of the Wild:

The Legend of Zelda Breath of the Wild

В очень большом количестве игр это буквально первая механика, которая встречает игрока уже на экране загрузки игры. В дальнейшем подсказки встраивают на экране загрузки уровня, дабы игрок не заскучал, хотя предпочтительнее использовать что-то более интерактивное, как, например, практика комбо ударов в Bayonetta. И даже если новое поколение консолей обещает нам моментальную загрузку уровней, то от загрузки ресурсов по сети мы в любом случае не избавимся в ближайшее время, так что нам ещё придётся полюбоваться подсказками и там. Очевидно, что эта очень маленькая, но чрезвычайно полезная и информативная чать игры, которая помогает влиться в игровой процесс, создать нужное настроение, а порой и запомниться на долгие годы, как в Far Cry 3: Blood Dragon, подсказки из которой использованы для начала этого поста.

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

Требования

Гейм дизайн:

  • Составления нескольких списков с подсказками для разных экранов
  • Два способа получения подсказки
    • Последовательный, с сохранением позиции при следующем возвращении к экрану
    • Случайный
  • Динамическая смена подсказки при длительном отображении
  • Обновление поведения подсказок без пересборки проекта

Программирование:

  • Лёгкое встраивание
  • Лёгкое обновление
  • Лёгкое расширение
  • Отсутствие внешних зависимостей

KhtHints

Реализацию, а также настройку и полноценное описание, можно найти по адресу tulenber/KhtHints

Лёгкое встраивание и обновление обеспечивается за счёт включения её в качестве git подмодуля(Глава официальной книги про работу с подмодулями), но никто не запрещает просто скопировать папку в проект.

Конфигурирование происходит посредством json-файла в виде TextAsset и с использованием функции Resources.Load(), соответственно файл должен располагается в папке Resources, в данном случае локальной.

Так как хотелось достичь отсутствия внешних зависимостей, то для реализации Manager класса использовался отдельный Singleton, созданный по схеме из поста Unity и Singleton.

Заключение

Текущая реализация не покрывает все возможные идеи со стороны геймдизайна. Например, подсказки из The Legend of Zelda Breath of the Wild, приведённые в начале статьи, включают в себя не только текст, но и заголовок. Однако, библиотека вполне подходит как набор базового функционала, который легко встроить и расширить, что и ставилось изначальной задачей. Осталось несколько вопросов к текущей реализации, которые необходимо проверить и поправить, а также хотелось бы перевести её на схему работы с Asset Bundles, но эта тема для отдельной статьи. Пока! =)



Privacy policyCookie policyTerms of service
Tulenber 2020