Dagon

Прошу читателей этого блога извинить меня за редкие посты. Более полугода я не отчитывался по работе над Atrium – спешу заверить, что проект не похоронен, прогресс понемногу идет, просто чуть медленнее, чем хотелось бы. Последние несколько месяцев я был занят дипломной работой в институте, поэтому свободного времени для геймдева было крайне мало.

Те, кто следит за моей активностью на GitHub, могли заметить, что у меня появился новый репозиторий dagon – проект, который позиционируется как новая эволюционная ступень DGL. В процессе работы над Atrium я пришел к выводу, что в движке не хватает средств автоматизации некоторых рутинных задач. Например, управление памятью в типичном игровом приложении может быть почти полностью автоматизировано, поскольку выделение и высвобождение памяти происходит в специально задуманных паузах, таких как переключение между локациями (это не относится к играм с открытым миром с фоновой подгрузкой, но это уже специфический случай). Кроме того, в обсуждении на Reddit звучал вопрос, почему DGL не использует SDL2. Так родилась новая ветка движка, которую я решил сделать отдельным экспериментальным проектом.

На сегодняшний день Dagon включает следующие возможности:

  • Использование SDL2
  • Новая модель памяти на основе концепции владельца (owner), позаимствованной из Delphi
  • Модель образцов и компонентов (entity-component), позволяющая расширять функциональность объектов динамически, без наследования классов
  • Динамическая перезагрузка ресурсов при их модификации сторонним приложением без перезапуска игры
  • Поддержка форматов OBJ и IQM
  • Поддержка текстур PNG, JPG, TGA, BMP
  • Поддержка контейнера Box для ресурсов
  • Новая система материалов с разделением на фронтенд (набор параметров) и бэкенд (передатчик параметров графическому конвейеру – фиксированному или шейдерному, в зависимости от выбранной реализации бэкенда). Система позволяет использовать как стандартные материалы с известным набором параметров, так и создавать свои, специализированные
  • Некоторые компоненты, напрямую портированные из DGL – например, система событий, система освещения, рендеринг текста.
Как только будет дописана система материалов и поддержка формата DGL3, я начну портировать Atrium на новый движок.

xtreme3d.narod.ru

Вновь полноценно работает сайт http://xtreme3d.narod.ru, посвященный Xtreme3D, трехмерному движку для Game Maker. Как многим известно, я активно поддерживал этот движок в русскоязычной части Интернета с 2008 по 2011 г., создал не только сайт по нему, но и множество примеров использования Xtreme3D, работал над документацией по движку (которая так и не была закончена, но, тем не менее, является крупнейшим источником информации по нему).

Кроме того, в 2009-2011 годах силами нашего сообщества было предпринято несколько попыток переписать Xtreme3D заново, сохранив обратную совместимость. Этот проект так и не был завершен, но все исходники сохранились – любой желающий может продолжить начатое нами дело, либо использовать эту кодовую базу для создания собственного движка. 
Одно время у меня была даже идея написать свой собственный 3D-движок для Game Maker – по образцу Xtreme3D, но с более продуманной архитектурой и с учетом современных технологий. Эта инициатива также не имела успеха, но от нее тоже сохранились любопытные материалы, которые вскоре будут доступны на сайте всем желающим.

На сайте также есть подборка полезных утилит для разработчиков, многие из которых раритетны – больше вы их нигде не найдете. В ближайшее время на сайте появится новый большой раздел “Музей”, в котором я планирую разместить архив раритетного ПО, мои старые наработки в Game Maker и разного рода другую историческую информацию.