1. Overload 是什么
1.1. 描述
Overload 是一个受行业标准启发的替代游戏引擎,由 Benjamin VIRANIN、Max BRUN 和 Adrien GIVRY 发起。Overload 现在是一个社区项目,欢迎任何贡献。
Overload 的支柱是:
- 简单性
- 文档
- 高质量的现代 C++ 代码
1.2. 模块
Overload 分为 12 个模块(10 个 DLL 和 2 个可执行文件):
1.2.1. Overload SDK
Overload SDK 是引擎的核心。它是一组库,我们的应用程序(OvGame
和 OvEditor
)正在使用这些库。
我们在设计这些库时考虑了可重用性。它们非常模块化,易于从游戏引擎上下文中提取。
OvAnalytics
:代码和硬件性能分析OvDebug
:日志记录、断言OvTools
:序列化、ini 文件、事件、时间OvMaths
:向量、矩阵、四元数、变换OvAudio
:封装 irrKlangOvPhysics
:封装 Bullet3OvRendering
:使用 OpenGL 的渲染引擎OvWindowing
:GLFW + Windows API 封装OvUI
:Dear imGui 封装成基于事件和组件的 UI 系统OvCore
:中介、资源管理、脚本、基于组件的场景系统
1.2.2. Overload 应用程序
OvGame
:使用 OvCore,依赖资源,用于任何使用 Overload 构建的游戏的通用可执行文件OvEditor
:使用 OvCore,向最终用户展示游戏开发(从创建到构建)
2. Overload 的历史
2.1. 背景
最初,Overload 是一个毕业项目。我们三人(Benjamin VIRANIN、Max BRUN 和 Adrien GIVRY)花了 5 个月时间开发它。我们必须从头开始创建一个游戏引擎,尽可能少地使用库。
2.2. 目标
我们对这个项目的目标是:
- 理解如何构建游戏引擎架构
- 考虑最终用户设计应用程序
- 尽可能简化游戏引擎
- 生产高质量的现代代码
- 用我们的引擎创建游戏
- 处理长期项目
- 为开发人员和最终用户开发文档
2.3. 前期制作
我们花了大约一个月的时间设计初始架构。我们尝试使用 UML 图、流程图、包图和用例图提供技术解决方案。这是一项漫长而乏味的工作,但它确实帮助我们以清晰的引擎愿景开始生产。我们定义了一些编码约定,以确保我们所有的工作在生产过程中保持同质。定义这些规则对于在整个项目中保持可维护的代码至关重要。
2.4. 制作
制作过程让我们意识到我们对游戏引擎的看法过于天真。在这个阶段,我们的架构发生了变化。我们发现我们的初始架构有时过于复杂,不够优化。在项目过程中,我们多次回到架构设计。
3. 功能
3.1. 已实现
以下是 Overload 主要功能的非详尽列表:
- 游戏编辑器
- Lua 脚本
- 基于物理的渲染(PBR)
- 自定义着色器支持
- Windows 游戏构建
- 性能分析工具(编辑器和构建)
- 材质编辑器
- 3D 音响系统
- 刚体物理
3.2. 待实现
同样,这是 Overload 即将推出功能的非详尽列表:
- 阴影映射
- 自定义后处理
- 渲染硬件接口(多种图形后端支持)
- 更多输入设备支持(游戏手柄)
- 预制体系统
- 骨骼动画
- 用户脚本性能分析
4. 详细信息
4.1. 软件
- Visual Studio 2022(应该也支持以前的版本)
4.2. 依赖项
- OpenGL 和 GLEW(图形 API)
- GLFW(窗口和输入)
- Assimp(3D 模型加载器)
- Bullet3(物理引擎)
- irrKlang(音频)
- Tinyxml2(XML 序列化器)
- SOL2(Lua 绑定器)
- imGui(图形用户界面)
4.3. 系统要求
Overload 需要:
- 内存:100MB
- 操作系统:Windows 7
- 显卡:支持 OpenGL 4.3 的显卡
- CPU:x64 架构
4.4. 编译源代码
Overload 使用 Premake5 生成项目文件。要生成这些项目文件,请执行位于仓库根目录的 GenerateProjects.bat
。默认情况下,GenerateProjects.bat
将生成 Visual Studio 2022 的项目文件。如果你想使用其他版本的 Visual Studio(如 vs2019、vs2017 等)或其他 IDE(参见 https://github.com/premake/premake-core/),你可以在命令行中带参数执行 GenerateProjects.bat
。(例如:.\GeneratedProjects.bat vs2019
)
Overload 仅针对 Windows x64 平台。
4.5. 许可证
Overload 采用 MIT 许可证。
4.6. 更多信息
如果你对 Overload 感兴趣,可以在我们的网站上下载引擎和我们用它制作的演示游戏: http://overloadengine.org
访问我们的维基了解 Overload(教程和脚本 API): https://github.com/adriengivry/Overload/wiki
你还可以在 YouTube 上观看我们的功能展示视频(Overload v1.0.0): https://www.youtube.com/watch?v=ARXSJh-ZMHM
加入我们的 Discord 服务器: https://discord.gg/wqe775s
5. 入门
访问我们的维基,了解如何使用 Overload 创建你自己的游戏。
6. 贡献
Overload 欢迎任何形式的贡献。请随时提出问题(功能或错误)或创建拉取请求。
如果你想帮助我们,请查看我们的 CONTRIBUTING.md 贡献指南文档。
7. 截图