Физика автомобиля

Демка с физикой автомобиля, которую я разработал в начале этого года для Patreon Sponsor Folder, теперь доступна на GitHub в репозитории https://github.com/gecko0307/vehicle-demo – с многочисленными улучшениями, которые я сделал за последние месяцы (в частности, появилась поддержка модели трения колес Pacejka Magic Formula). Пруф того, что на основе связки Dagon + Newton вполне можно написать гоночную игру. Как-нибудь, возможно, напишу подробную статью на эту тему.

О звуковых движках

Что происходит со свободными звуковыми движками? Возвращаюсь к этой теме раз в несколько лет, и каждый раз ситуация все печальнее. Использовал когда-то Squall в эпоху Game Maker, он оказался заброшен с 2009 года. Потом долгое время сидел на OpenAL-soft, но у него тоже много лет не было обновлений (хотя в последние годы какое-то шевеление вроде началось). Ушел я с него по той причине, что захотелось движок с блэкджеком и шлюхами – то есть, со встроенной поддержкой всех аудиоформатов. Уже работая над Dagon, выбрал SoLoud, который активно разрабатывался до 2020 года, и с тех пор ни одного релиза.

Есть, конечно, движки для C++, в том числе довольно крутые – но, ребят, неужели делать API для C вышло из моды? В мое время это само собой разумелось. Не знаю теперь, что делать – не на закрытый FMOD же переходить. Возможно, форкну SoLoud, если так и не найду ему замены.

PBR-текстуры при помощи нейросети

Обнаружил интересную ESRGAN-модель Material Map Generator, которая генерирует карты нормалей и шероховатости из фототекстур. Работает довольно быстро и показывает весьма качественные результаты – у меня, например, из картинки с ракушками получилось вот такое:

Канал G пришлось инвертировать для совместимости с Blender, а диффузную текстуру я сделал с помощью утилиты Agisoft De-Lighter – тоже, кстати, очень полезный инструмент.

Для запуска нужен Python с установленными numpy, opencv-python и torch.

Пример ImGui в Dagon

В Dagon 0.14 появилось расширение для работы с популярным UI-тулкитом ImGui – dagon:imgui. Это у меня уже второй инструмент для создания пользовательских интерфейсов после Nuklear, и во многом ImGui оказался проще и удобнее – хотя, конечно, оба тулкита имеют свои особенности, и нельзя сказать, что один однозначно лучше другого. Но ImGui на сегодняшний день является де-факто стандартом, поэтому его поддержка стала довольно важной вехой в развитии движка. Расширение основано на биндинге BindBC ImGui, модуль bindbc.imgui.ogl (ImGuiOpenGLBackend) оказался полностью совместим с Dagon.

(далее…)

Dagon 0.14.0

Выпустил новую версию движка. Основное нововведение – рефакторинг системы текстур: в частности, текстуры теперь могут быть загружены напрямую, без необходимости создавать объект SuperImage, что позволяет создавать текстуры любого формата, поддерживаемого OpenGL – таким образом, достигается лучшая совместимость с DDS. 2D-текстуры и кубические карты объединены в один класс Texture, и работать с ними стало проще. Появилась поддержка формата сжатия ASTC.

(далее…)