Обновление dmech

В физическом движке dmech реализована новая система кэширования контактов (persistent contact manifold), которая во многих случаях делает симуляцию более точной и правдоподобной.
Также обновлен репозиторий dmech на GitHub. Кроме свежих изменений в кодовой базе самого движка, добавлены исходники демонстрационного приложения на основе OpenGL и SDL.

Arrow

Arrow – мини-игра наподобие “Тетриса”, которую я от нечего делать написал за ту неделю, когда у меня не было доступа в Интернет. Это, фактически, клон java-игры GuruGuru, предустановленной на мой телефон (Pantech PG-1500). Она отличается от классического “Тетриса” оригинальной механикой: вместо простых блоков здесь блоки-стрелки. Вы должны выстраивать линии из стрелок, указывающих в одном направлении. Есть четыре однонаправленные стрелки (вверх, вниз, вправо, влево), две двунаправленные (горзонтальная и вертикальная) и одна четырехнаправленная. Как только выстроена линия в 3 и больше стрелок, она исчезает, а все соседние с ней стрелки поворачиваются на 90 градусов. Есть также “бетонный” блок без направления, который исчезает только вследствие исчезновения его соседа.

В игре пока нет уровней, системы подсчета очков или каких-либо иных целей – просто бесконечный игровой процесс. Если экран заполнится блоками доверху, игра заканчивается. В оригинальной GuruGuru был интересный режим “битвы” с искусственным интеллектом – побеждал тот, кто дольше продержится, не заполнив свой экран. Не исключено, что когда-нибудь нечто подобное будет реализовано и в Arrow.

Игра написана на D, с использованием моего “традиционного” инструментария: OpenGL, SDL, FreeType, Derelict, dlib.

Сборка для Windows (0,93 МБ)
Исходники доступны на GitHub: https://github.com/gecko0307/arrow

dmech

Физический движок, являющийся частью Atrium, будет разрабатываться в качестве отдельного проекта – dmech.

Исходники доступны на GitHub:
https://github.com/gecko0307/dmech

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

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

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

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

Релиз dlib 0.1

Состоялся первый нестабильный релиз коллекции библиотек dlib.

Нововведений по сравнению с последней ревизией SVN практически нет (если не считать функцию генерации тангенс-векторов для полигональных мешей) – релиз просто ознаменовал переезд проекта на GitHub (однако старый репозиторий в обозримом будущем продолжит обновляться параллельно с новым).

Одновременно с этим был зарегистрирован пакет dlib в реестре DUB: http://code.dlang.org/packages/dlib.

Страница проекта:
https://github.com/gecko0307/dlib

Скачать dlib 0.1:
https://github.com/gecko0307/dlib/releases/tag/v0.1