Godot - Tiles editor progress #3

Godot Engine — открытый кроссплатформенный 2D и 3D игровой движок под лицензией MIT.

Задача Godot — быть максимально интегрированной и самодостаточной средой для разработки игр. Среда позволяет разработчикам создавать игры с нуля, не пользуясь более никакими инструментами, за исключением тех, которые необходимы для создания игрового контента (элементы графики, музыкальные треки и т. д.). Процесс программирования также не требует внешних инструментов (хотя при необходимости использовать внешний редактор это можно сделать относительно легко). 

Значительная часть работы за последние два месяца была в основном связана с переработкой большинства уже существующих функций TileSet, привнося в нее больше гибкости. Большинство систем TileSet (рендеринг, коллизии, физика, навигация, ...) в настоящее время используют концепцию "layers" (ее можно переименовать). Это позволяет настраивать свойства, которые выставляют сами tiles. В качестве примера, теперь можно определить несколько PhysicsBodies на плитку с различными слоями/масками столкновений. Раньше это было невозможно. Сейчас нет возможности эффективно редактировать свойства плиток. Пока они редактируются только с помощью специального инспектора, но планируется реализовать способ рисования значений по плиткам в редакторе TileSet. Однако большинство свойств теперь можно визуализировать в атласе плиток.

Физика TileSet была воссоздана с нуля. Новая реализация позволяет определить несколько слоев физики. Каждый физический слой TileSet имеет свойство слоя столкновения, свойство маски столкновения и физический материал. Затем каждая плитка может определить одну или несколько фигур для каждого физического слоя TileSet. Изменения в NavigationServer. В 4.0 разработчики решили избавиться от узлов Navigation2D и Navigation3D. Для их замены теперь можно назначать слои навигации. Затем, при использовании NavigationServer2D.map_get_path(...), можно предоставить маску, позволяющую выбрать, какие слои включить/исключить из запроса пути. Следовательно, изменения позволяют узлам TileMap быть независимыми от любых родительских узлов Navigation2D. Подобно физическим слоям TileSet, слои навигации TileSet могут позволять устанавливать различные слои навигации.

Теперь TileMap может отображать навигационные регионы в качестве отладочной информации. Обратите внимание, что навигация в TileMap все еще немного недоработана. Алгоритм поиска путей плохо работает с большим количеством областей, которые TileMap будет генерировать. Для более удобного использования этого алгоритма потребуются дальнейшие улучшения. Поскольку это была довольно запрашиваемая функция у пользователей, TileSet теперь поддерживает пользовательские слои данных. Каждому пользовательскому слою данных можно присвоить тип и имя. После этого в каждой плитке TileSet можно назначить значение для каждого пользовательского уровня данных. Сейчас инспектор плиток отображает индекс, вместо пользовательского имени данных, но в будущем это может измениться.

Полная версия статьи.


Игра создаётся с использованием собственного высокоуровневого динамически типизированного скриптового языка программирования под названием GDScript.