Mojoc 是一个开源(MIT License),跨平台,使用C语言编写的游戏引擎。基于OpenGLES3的渲染和C99的语法写成。目前,可以跨平台工作在Android和IOS上,也很容易扩展到其它平台。

核心理念
保持简单,追求简单,简单充满了力量。而简单的背后,是更多的思考,实践与重构。
主要特性
所有的代码实现,只是用了C语言和C99的语法特性。
在平*独台**立的代码中,只使用了C语言的标准库,其它的功能手动实现。
使用了具有独特风格的C语言代码书写格式,Code Style。
使用了非常简单,轻量级的,OOC面向对象抽象模型,OOC Model。
基于一种组件,状态机,消息驱动,三合一的游戏逻辑架构,Component Architecture。
更多的代码特性可以参看这里,Code Details。
后续的文章里,会介绍代码风格,编程模型的细节。包括设计的考虑和演变过程,以及使用时候的感受。

架构概况

为什么使用C语言而不是C++ ?
-
已经有大量的C++游戏引擎,已经是重复造轮子了,不如选有点不同的方式。如果是要用C++写游戏引擎,编写动力可能就没有那么大了。就是觉得C写游戏引擎有意思。
-
游戏引擎是个复杂的东西,如何做到简单与简洁 ?C语言就是一个古老而简洁的语言,本身复杂不起来,所有的复杂是来自于人脑。所以使用C言语,仅仅需要面对的就是降低人脑的复杂,这是有趣的部分和过程。
-
曾经,我对C语言编写复杂的项目,积累了一些特别的想法和感觉。很想找个机会验证这些想法。
-
受到 “Doom启示录” 的影响,卡马克最开始的引擎全是C语言写的。想体验一下,在湖边的小木屋,外面电闪雷鸣,风雨交加,湖水上涨,而我在黑屋子里,用C语言疯狂编译迭代的感觉。

Mojoc名字的由来 ?
Mojoc = Mojo + C (C语言)
Mojoc的Logo和意义 ?
M : 耳朵 OO: 眼睛 J : 身体 C : 尾巴

Mojoc能开发什么样的游戏 ?
事实上,这只是手游引擎。有很多很多需要改进和增加的功能。目前,勉强可以做一些的2D小游戏,能跨IOS和Android两个平台,编辑器使用了一些第三方现成的,比如spine骨骼动画(我用引擎自己实现了它的运行时)。