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