Mojoc v0.7.1
Mojoc 是一个开源、跨平台的纯 C 游戏引擎。它基于 OpenGLES3 开发,使用 C99 编写。目前支持 iOS 和 Android 平台,但可以轻松扩展到其他平台,未来还将支持更多平台。
架构
许可证
Mojoc 采用 MIT 许可证。
核心理念
少即是多,简单更好,简化复杂想法。
特点
- 唯一需要的编程技能是 C99 语言。
- 在平台独立的代码中,Mojoc 仅使用标准 C 库,不依赖第三方库。
- Mojoc 有其独特的编码风格。
- Mojoc 使用极其轻量级的 OOC(面向对象的 C)编程模型。
- Mojoc 应用架构基于组件、状态机和消息驱动。
- 更多特性详情。
已发布游戏
Mojoc 已用于开发一款跨平台的 Android 和 iOS 游戏。
示例
这些示例将展示 Mojoc 的所有特性。每个平台都会提供原生构建项目,以便在原生平台编辑器中使用。例如:Android 提供 AndroidStudio 项目,iOS 提供 XCode 项目。
目前只有一个示例,它是已发布游戏 SuperLittleRed 的简化版本。请查看快速入门指南,了解如何快速运行此示例。
这里是已编译好的可玩 apk:
- SuperLittleRed-2.2.0.apk 是一款弓箭射击游戏,对您的操作技能很有挑战性。
常见问题
为什么不用 C++?
- 有很多 C++ 游戏引擎,但纯 C 游戏引擎相对较少。我不想重复造轮子,我希望与众不同。
- 我想要创建的游戏引擎的核心理念是更小更简单,这与 C 语言一致。
- 一开始,我有一个想法,就是如何用纯 C 语言构建复杂项目。我想测试这个想法的可行性,这就是 Mojoc。
- C 语言简单但强大,它可以做很多有趣的事情。为什么不用 C 呢?
Mojoc 这个名字是什么意思?
Mojoc = Mojo + c
c 代表 C 语言。
谁设计了标志,它有什么含义?
是我设计的。标志是由 "Mojoc"
字母组成的未知生物。
M : 耳朵
OO: 眼睛
J : 身体
C : 尾巴
Mojoc 是如何诞生的?
Mojoc 始于 2012 年,最初是一个业余项目。起初,Mojoc 使用 Eclipse + CDT + ADT + NDK 进行开发,主要针对 Android 平台。
在开发过程中,我经历了大量的重复和思考。很长一段时间里,我对如何用 C 语言模拟 OOP 并保持简单统一不是很确定和清晰。所以我尝试了很多想法,重复了这个过程:写代码、修改、重构、改变想法、删除代码、重写等等。
但最终,我开发出了一套独特的规则集,Mojoc 代码风格和Mojoc OOC 模型,感觉正确且不错,然后我遵循这些规则开发了 Mojoc。
Mojoc 可以制作什么样的游戏?
目前,不建议使用 Mojoc 制作游戏。老实说,Mojoc 还不够完善。还有许多需要改进和完善的地方,我正在努力。但 Mojoc 的代码架构和编程模型已经确立。
因此,Mojoc 非常适合学习和理解如何使用 C 语言构建游戏引擎。
路线图
路线图展示了 Mojoc 的开发方向。
图形模块
- 创建兼容 Vulkan、Metal 和 D3D 的图形层。
- 创建控制着色器的材质系统。
- 支持图元重启和实例绘制。
- 支持采样器对象和不可变纹理。
- 支持动态多纹理单元渲染。
扩展模块
- 支持位图字体。
- 支持 Mojoc 功能的简单单元测试。
物理模块
- 支持刚体碰撞后的运动模拟。
- 支持刚体之间的相互约束和联动。
- 支持更多物理运动模拟。
工具包模块
- 通用迭代接口,这是一种可以由协程驱动的逐步计算。
- 多对一的内存管理策略。
- 插件功能扩展。
- 更多算法实现。
其他模块
- 创建 UI 模块。
- 创建网络模块。
其他
- 用 Mojoc 自身实现游戏编辑器。
- 游戏脚本语言
"MojoScript"
,用 C 语言和工具包模块实现。
支持
- 玩 Mojoc 已发布游戏。
- 在 GitHub 上 Star、Issue 和 Fork,或向他人分享 Mojoc 项目。
- 如果源代码对您有用或有帮助,也许可以通过赞助按钮给我买杯咖啡。
:loop: