Обновление всех проектов

На днях обновились библиотеки dlib, dmech, DGL и игра Atrium.

  • В коллекции библиотек dlib 0.6.0 значительно улучшен декодер JPEG, добавлена поддержка новых типов прореживания и APP-маркеров. Улучшено управление памятью (удалять теперь объекты можно через интерфейсы и родительские классы), добавлены независимые от сборщика мусора реализации классов изображений и файловых потоков. В пакете dlib.math появилась реализация некоторых идиом комбинаторики (dlib.math.combinatorics).
  • Физический движок dmech 0.2.0 включает необходимые изменения для поддержки dlib 0.6.x. Также к движку теперь прилагается небольшая документация в виде уроков.
  • DGL/GC-free, независимая от сборщика мусора ветка проекта, теперь тоже переведена на dlib 0.6.x.
  • Вышла первая альфа-версия Atrium (0.0.1a). Релиз, главным образом, обозначил перевод игры на последние версии вышеперечисленных библиотек. Есть готовые сборки для Windows и Linux.

Atom

Много лет под Windows пользуюсь текстовым редактором Programmer’s Notepad, решил сейчас попробовать что-то новое. Обратил внимание на фирменный редактор от GitHub — Atom.

Приятно удивила поддержка разделяемых по горизонтали и вертикали рабочих панелей а ля Emacs или Vim. Есть темная и светлая темы оформления. Редактор открывает в качестве проекта любой каталог и отображает дерево файлов — мне лично всегда не хватало такой удобной мелочи.

Но главная «киллер-фича» — поддержка дополнений. Есть встроенный каталог пакетов, через который удобно искать дополнения — всего их очень много, пакеты для Atom создают все, кому не лень. Я, например установил atom-dlang (подсветка синтаксиса для D), atom-terminal (позволяет открыть окно терминала в папке с проектом), color-picker (диалог выбора цвета), atom-html-preview (просмотр HTML-страниц внутри редактора).

Бенчмарк загрузки PNG

Не так давно один из участников сообщества D провел любопытный тест, сравнив скорости загрузки изображения в формате PNG с различными библиотеками. В сравнении участвовали D-библиотеки (dlib и imageformats), а также C#.

Использовалось RGB-изображение размером 2048х2048, компилятор DMD 2.0.67 c флагами -release -inline -O. Задачей была загрузка из PNG, отражение по горизонтали и сохранение в PNG. Результат получился следующий:

C#:
Загрузка — 90 мс
Отражение — 10 мс
Сохранение — 380 мс

D (dlib):
Загрузка — 500 мс
Отражение — 30 мс
Сохранение — 950 мс

D (imageformats):
Загрузка — 230 мс
Отражение — 30 мс
Сохранение — 1100 мс

Тред с обсуждением

На днях обязательно сделаю собственный тест — необходимо выяснить, что именно тормозит в декодере.

Cook 2.1.0

Вышла новая версия моей системы сборки Cook2. Основное нововведение релиза — поддержка response-файлов при компоновке: это файлы, через которые можно передавать параметры компилятору DMD, если не хватает максимальной длины команды в терминале (под Windows и cmd.exe это 8192 байт, что, конечно, для крупных проектов маловато). Для использования response-файла запускайте Cook с параметром —rsp.
Также в новой версии улучшена поддержка кросс-компиляции через Wine, имена файлов кэша теперь специфичны для ОС и профиля.

https://github.com/gecko0307/cook2

Растягиваемое окно

Atrium теперь поддерживает окна любого размера (развернуть окно игры на весь экран можно в режиме паузы — Esc). Также в свежей сборке исправлены различные баги физики и управления.

Сборка под Windows
Сборка под Linux

Atrium в Tumblr

У проекта Atrium появился микроблог в Tumblr — планирую регулярно выкладывать туда свежие скриншоты:

http://atrium-game.tumblr.com