这个项目能做什么
Irreden Engine 是一个等轴测的“可像素化”体素内容和游戏引擎,用于创建具有独特视觉风格的游戏。该引擎使用 C++23 构建,并支持多种后端:默认情况下在 Windows 上使用 OpenGL,在 macOS 上使用 Metal。它采用模块化架构,其中组件被编译为静态库,允许灵活的集成和开发。
主要模块包括:
- **IRRender**:通过计算着色器处理无网格体素渲染,将 3D 体素转换为 2D 等轴测画布。它具有用于平滑相机移动的插值像素滚动,并支持多个体素画布。
- **IRECS**:一个缓存高效、基于原型的实体-组件-系统(ECS)框架,允许使用 lambda 定义系统,并批量创建实体。
- **IRAudio**:支持探测和连接音频设备、用于控制器的 MIDI 输入,以及实时音频流(正在开发中)。
- **IRInput**:通过 GLFW 管理窗口创建,并处理与游戏循环同步的键盘、鼠标和手柄输入。
- **IRScript**:提供 Lua C API 包装器,用于运行时配置,并可能在未来实现完整的 Lua 基础。
- **IRVideo**:使用 FFmpeg 启用 MP4/H264 帧缓冲区捕获,并具有运行时录制切换功能。
- **IRMath**:包括等轴测计算、GLM 包装器,以及用于动画的缓动函数。
- **IRTime**:提供固定 FPS 事件,用于一致的更新,以及无上限 FPS 事件,用于渲染。
该引擎支持通过 `creations/game/` 目录结构集成私有游戏项目,该结构会自动发现 CMake 目标。依赖项包括 RtAudio、RtMidi、GLFW、GLM、EasyProfiler、SpdLogger、Fmt、Glad、StbImage、MeshOptimizer、Assimp、enkiTS、Lua 和 FFmpeg。开发工具包括用于配置、构建、测试、格式化和 linting 的 CMake 预设。该项目鼓励对引擎设计进行反馈,并通过问题、预制件修改或发布开源项目来贡献。
评论
0 评分人数达到10人后显示
登录后参与讨论。