xtreme3d.narod.ru

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

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

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

Поддержка IQM в DGL

Графический движок DGL обзавелся поддержкой Inter-Quake Model (IQM) – свободного формата для хранения 3D-моделей со скелетной анимацией.

IQM спроектирован в качестве замены MD5 известным разработчиком Ли Сальцманом, лидером проектов Sauerbraten, Tesseract и ENet. В настоящее время формат используется многими свободными играми и движками, в том числе Sauerbraten, DarkPlaces, Alien Arena, Xonotic и Warsow.

Формат бинарный, не привязан к какому-либо движку или графической технологии, легко читается и записывается. Существует полнофункциональный экспортер в IQM для Blender, что делает этот формат идеальным выбором для открытых игровых проектов.

Кинематика персонажа

Доступна новая демонстрация работы dmech – на этот раз, на примере игровой кинематики (Character Controller) для игры от третьего лица. Персонаж умеет двигаться и прыгать, взаимодействуя со всеми физическими объектами и тримешем уровня.

Управление:
Стрелки – поворот вправо-влево и движение вперед-назад;
Пробел – прыжок.

Скачать для Windows

Исходники вскоре будут доступны в рамках проекта Atrium.

Raycast

В физическом движке dmech реализована поддержка пересечения тел с лучом (raycast). В качестве алгоритма для этого используется разновидность GJK. На данный момент есть возможность “стрелять” лучом в статические и динамические выпуклые тела, в ближайшем будущем появится также поддержка полигональных мешей.

Все изменения доступны в репозитории dmech на GitHub.

Угловое ограничение в dmech

В физическом движке dmech существенно улучшена реализация ограничений для тел (constraints):

  • Добавлено угловое ограничение (AngleConstraint), которое заставляет два тела принимать один и тот же поворот относительно друг друга;
  • Улучшено ограничение расстояния (DistanceConstraint), которое удерживает тела на определенном расстоянии друг от друга. Теперь можно ограничивать минимальное или максимальное расстояние между телами. Также этот вид ограничения может работать в качестве пружины с задаваемой жесткостью.
  • Комбинация углового и скользящего (Slider) соединений дает призматическое, которое позволяет двум телам скользить вдоль оси между ними, но не позволяет им вращаться относительно этой оси. Также возможны другие комбинации – в будущем в движке планируется реализовать класс составных ограничений.

Все изменения доступны в репозитории dmech на GitHub.