разработка игр, программирование, сценарии, графика и музыка

English По-русски

Улучшение движка: Векторная графика, меню, горячая загрузка текста

Я пока ещё не решил, какую игру буду делать дальше, поэтому несколько дней просто улучшал свой движок.

Добавлена возможность генерировать некоторые векторные фигуры, которые можно использовать в создании гибких элементов интерфейса. Раньше такие картинки нужно было создавать в графическом редакторе.

Теперь движок умеет рисовать круги, треугольники и прямоугольники со скруглёнными углами, которые сохраняются в текстурный кэш и используются повторно при необходимости. Прямоугольники со скруглёнными углами используют nine-slice scaling, так что одна и та же текстура может быть использована для создания прямоугольников разных размеров без искажения углов.

Одна текстура может быть использована для создания прямоугольников разных размеров.
Одна текстура может быть использована для создания прямоугольников разных размеров.

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

Я переделал все элементы меню, используя эти векторные фигуры, поменял раскладки страниц в меню и добавил полосу прокрутки (раньше были кнопки для пролистывания страниц). Все меню поддерживают управление мышью, клавиатурой и игровыми устройствами.

Меню настроек, элементы которого используют новые векторные фигуры.
Меню настроек, элементы которого используют новые векторные фигуры.

Я также заменил старый счётчик кадров в секунду на более подробный инструмент, который показывает больше информации и рисует графики.

Показ частоты кадров в секунду, использования памяти и частоты логических циклов.
Показ частоты кадров в секунду, использования памяти и частоты логических циклов.

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

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

Подписаться

Получайте уведомления о новых статьях, чтобы:

Следить за процессом разработки моей следующей игры.

Читать статьи об искусстве и технологиях создания игр и движков.

Получать новости об изменениях в моих играх.

Подписка бесплатная, просто нажмите на кнопку!