开源游戏引擎库 (最新开源游戏引擎)

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

开源游戏引擎phase,网易开源游戏引擎

核心理念

保持简单,追求简单,简单充满了力量。而简单的背后,是更多的思考,实践与重构。

主要特性

所有的代码实现,只是用了C语言和C99的语法特性。

在平*独台**立的代码中,只使用了C语言的标准库,其它的功能手动实现。

使用了具有独特风格的C语言代码书写格式,Code Style。

使用了非常简单,轻量级的,OOC面向对象抽象模型,OOC Model。

基于一种组件,状态机,消息驱动,三合一的游戏逻辑架构,Component Architecture。

更多的代码特性可以参看这里,Code Details。

后续的文章里,会介绍代码风格,编程模型的细节。包括设计的考虑和演变过程,以及使用时候的感受。

开源游戏引擎phase,网易开源游戏引擎

架构概况

开源游戏引擎phase,网易开源游戏引擎

为什么使用C语言而不是C++ ?

  • 已经有大量的C++游戏引擎,已经是重复造轮子了,不如选有点不同的方式。如果是要用C++写游戏引擎,编写动力可能就没有那么大了。就是觉得C写游戏引擎有意思。

  • 游戏引擎是个复杂的东西,如何做到简单与简洁 ?C语言就是一个古老而简洁的语言,本身复杂不起来,所有的复杂是来自于人脑。所以使用C言语,仅仅需要面对的就是降低人脑的复杂,这是有趣的部分和过程。

  • 曾经,我对C语言编写复杂的项目,积累了一些特别的想法和感觉。很想找个机会验证这些想法。

  • 受到 “Doom启示录” 的影响,卡马克最开始的引擎全是C语言写的。想体验一下,在湖边的小木屋,外面电闪雷鸣,风雨交加,湖水上涨,而我在黑屋子里,用C语言疯狂编译迭代的感觉。

开源游戏引擎phase,网易开源游戏引擎

Mojoc名字的由来 ?

Mojoc = Mojo + C (C语言)

Mojoc的Logo和意义 ?

M : 耳朵 
OO: 眼睛 
J : 身体 
C : 尾巴

开源游戏引擎phase,网易开源游戏引擎

Mojoc能开发什么样的游戏 ?

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