Об этом проекте

Brileta — это собственный игровой движок и песочница, предназначенные для экспериментов с игровой механикой, графикой и процедурной генерацией. Разработанный с использованием Python и C с применением WGPU для доступа к GPU, он избегает внешних фреймворков, реализуя собственные системы рендеринга, ввода, аудио, освещения и ИИ. Ключевые технические особенности включают: - Освещение на базе шейдеров: использует фрагментные шейдеры WGPU для освещения каждой плитки, поддерживая несколько точечных источников света с динамическим мерцанием, тени рельефа с использованием ray-marching для направленного солнца и смешивание краев для органичных границ ландшафта. - Компонуемая генерация мира: использует конвейер слоев генерации с применением полей шума для создания естественных ландшафтов и инфраструктуры поселений, причем всё является детерминированным на основе одного seed. - Процедурные спрайты: генерирует уникальные попиксельные спрайты для акторов и объектов (таких как деревья и валуны) на основе детерминированных seed, интегрированных через динамический атлас спрайтов с использованием skyline bin-packing. - Utility AI: реализует систему оценки на основе целей для поведения NPC, где действия и многоходовые цели конкурируют в зависимости от контекста и бонусов за настойчивость. - Декларативная система действий: использует единый конвейер для действий игрока и NPC, включающий декларативные последовательности и иерархический поиск пути между регионами. - Оптимизация производительности: использует расширения на C для вычислительно затратных задач, включая поиск пути A*, расчет поля зрения (FOV) методом symmetric shadowcasting, растеризацию спрайтов и генерацию шума. - Эффекты представления: включает систему частиц на уровне под-плиток, декали пола для брызг крови и позиционный звук с затуханием в зависимости от расстояния.