Итоги года

Вот и пролетел еще один год – самое время подводить итоги по проделанной работе!

  • Вышли подряд нескольно новых версий dlib (0.3 и 0.4). Появилась поддержка абстрактных потоков ввода/вывода, а также платформонезависимый интерфейс файловой системы и его реализации для Windows и POSIX. Пакет обработки изображений теперь поддерживает JPEG, TGA и BMP, распараллеливание, HDRI. В пакете линейной алгебры состоялся серьезный рефакторинг матриц, появилась поддержка инверсии через LU-разложение.
  • Было выпущено 6 номеров электронно-познавательного журнала “FPS” (№№ 28, 29, 30, 31, 32, 33). Появился новый сайт проекта (http://fps-magazine.cf). Также “FPS” теперь доступен в качестве мобильного приложения для Android и iOS. Кстати, в феврале 2015 года журналу исполняется уже 7 лет!
  • Вышла игра 2048х2 – клон 2048 для двух игроков.
  • Улучшен физический движок dmech: реализован новый кэш контактов, добавлена поддержка составных тел, улучшена поддержка ограничений, добавлены статические тримеши, поддержка raycast и игровой кинематики.
  • Графический движок Atrium теперь развивается как самостоятельный проект – DGL. Это объектно-ориентированная надстройка над OpenGL, SDL и Freetype с собственной системой событий, виртуальной файловой системой с поддержкой ZIP-архивов, своим форматом хранения сцен, поддержкой шейдеров, мультитекстурирования, скелетной анимации, выводом текста в UTF-8, а также встроенными средствами интернационализации.
  • Разработан скриптовый язык GScript – минималистичный императивный язык с динамической типизацией, идейно близкий к D, JavaScript и Python. GScript можно будет использовать в качестве скриптовой системы в игровых движках.
  • Вышла новая версия системы сборки проектов Cook 2.0.1 – с новой системой аргументов командной строки, обновленным парсером импортов, поддержкой внешних зависимостей (в том числе из Git-репозиториев), улучшенной системой конфигурации.
  • Обновилась страница проекта Atrium.

Новый сайт Atrium

Обновились дизайн и содержание веб-страницы проекта Atrium:

http://gecko0307.github.io/atrium

Итоги 2013 года

Завершился 2013 год, в течение которого я всеми силами старался выкроить свободное время для работы над Atrium и сопутствующими инструментами. Подведу итоги: что было сделано, какие в прошедшем году произошли важные релизы и достижения.

  • Сециально для Atrium был разработан игровой физический движок dmech с поддержкой нескольких видов геометрических тел и сочленений. Он еще далек от совершенства, но уже пригоден для использования в простых задачах игровой динамики;
  • Было выпущено 6 номеров электронно-познавательного журнала “FPS” (№№ 22, 23, 24, 25, 26, 27). Кстати, в феврале 2014 года журналу исполняется 6 лет!
  • Состоялось серьезное обновление dlib: в частности, пакетов dlib.math и dlib.image. Библиотека обогатилась новой функциональностью, переехала на GitHub и обзавелась поддержкой DUB;
  • Вышла Cook2, экспериментальная ветка программы сборки проектов Cook со значительными изменениями и улучшениями;
  • Вышла альфа-версия Arrow – тетрисоподобной игры-головоломки с оригинальной механикой.

Огромное спасибо всем, кто так или иначе помогал мне в течение года:

  • Андрею Пенечко (MrSmith33) – за багрепорты и багфиксы в dlib;
  • Наталии Чумаковой (d_o_r_i_a_n_a) – за помощь по матчасти и тестирование всех программ на Windows 7, а также за сотрудничество по журналу;
  • Александру Санникову (Suslik) – за советы и помощь по физике.

    Редактор уровней для Atrium

    После долгого перерыва я вновь возвращаюсь к работе над Atrium. Будущей игре нужны инструменты для подготовки контента, и я решил начать с редактора уровней. Конечно, в качестве редактора уровней можно было использовать один из существующих 3D-пакетов – например, Blender – но я отказался от этой идеи по следующим соображениям:

    • Blender “заточен” под моделирование, а не сборку сцен из готовых моделей. Нет встроенной системы ассетов, библиотеки материалов и т.д.;
    • В существующих программах нет возможности создавать новые классы объектов с нестандартными свойствами и функциональностью, специализированные для конкретного игрового движка;
    • Нет полноценного WYSIWYG, в то время как в собственном редакторе уровней используется графический движок от своей же игры, и картинка в редакторе совпадает с картинкой в игре;
    • Собственный редактор можно распространять параллельно с игрой, на тех же лицензионных условиях, а сторонний инструмент – не всегда.

    Для разработки редактора я, как обычно, использую D и OpenGL, а в качестве тулкита – GTK+ (через биндинг GtkD). Планируется выпустить версии для Linux и Windows.

    Поддержка сочленений в физическом движке

    Физический движок Atrium обзавелся базовой поддержкой сочленений (или ограничений – Constraints) между телами. В данный момент реализован один тип сочленений – шарнир (BallConstraint), который удерживает два тела на определенном расстоянии друг от друга, позволяя им вращаться вокруг заданной точки.

    Изменения доступны в репозитории Atrium на GitHub.
    Сборка для Windows (2,63 МБ)

    Кроме того, вслед за dlib, система сборки проектов Cook также переехала на GitHub. Репозиторий проекта доступен по адресу: http://github.com/gecko0307/cook.