做一个游戏引擎,稍微想想就觉得挺复杂了,先罗列出几个必须要做的模块:资源和文件管理系统,游戏主循环,输入系统,渲染引擎,动画系统,碰撞系统,游戏性系统,若是想的再复杂一点,还得加入游戏相关的调试工具和性能剖析工具。

这样一来,就很容易陷入过度设计的泥沼,在大三上学期时,我们做的XiHad项目(NextRPG/Xihad·GitHub)就遇到了这样的问题,引擎的过度设计导致后续的开发时间被无限缩短,最终却发现引擎中很多的功能实际上游戏中却用不到,真是令人哭笑不得。
由于题目中说的是实现一个简单的游戏引擎,我给出的建议是:先用OpenGL或者DirectX制作一个简单的游戏,再把游戏中可复用的部分剥离出来,这就成了一个简单的游戏引擎。
游戏史上几个最著名的游戏引擎都是这样做出来的,比如:Quake游戏引擎是制作雷神之锤的副产品,虚幻是制作战争机器的副产品,所以,我相信这种将游戏引擎作为游戏的副产品的经验同样适用于大型游戏引擎的开发。
你可以先去【绘学霸】网站找“游戏特效/unity3D”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表:;tagid=305,306zdhhr-11y17r-2143149005857108708
想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。
自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】:
在“游戏特效/unity3D”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。
大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载:
首先建议读一下MiloYip大神翻译的《游戏引擎架构》这本书。
游戏开发本身就隶属于IT行业,在这样的日新月异的一个行业中,如果只是在井中望月的话,那么即使你狠精通一门游戏引擎,那么第二门呢?只有在你自己理解了游戏引擎的一个设计架构,设计原理,你才能在后续开发引擎中立于不败之地。
这是一个循序渐进的过程,如果只是对游戏引擎钟意,那么充其量你仍然只是某个游戏引擎的使用高手,在后续的发展中,你将会被淘汰,大家很多人在做塞班时代的时候,谁会想到安卓时代的到来呢?只有不断的提高。
才能将自己得到升华。游戏开发就是一生的学问,无论从策划还是程序出发,被局限住了你就需要比别人落后更多,又需要花更多的时间来去学习。倒不如打好基础,再面对各种的引擎都可以游刃自如,而且你还可以针对各种引擎做优化。
Games支持先学习游戏编程,学习游戏编程是基础。游戏引擎说白了就是对特定功能的封装,固然游戏引擎让一些常用的功能实现更加简便快捷,但要想理解其实现的机理和在,还需要游戏编程的基础。
举个例子:cocos2d-x引擎是使用c语言封装的。如果从游戏引擎开始学,很快可以学会精灵移动和各种动画,但设计到高级编程如内存优化等游戏开发深层次的东西,是只学习引擎不能够掌握的。
只有了解深层c实现机理才行。如果从c开始学,虽然学习c的过程是漫长的,但从c转为cocos2d-x游戏引擎的时间确实非常快的,也能够明白其底层实现,对这个引擎的了解掌握程度也更好。
首先要了解游戏引擎是什么东西?
Architecture(中文《游戏引擎架构》由游戏引擎工程师Milo翻译),这本书帮你从各个角度理解游戏引擎的组织,模块相互之间的关系,和业界常用的优化方法。另外,你需要找到一个切入点,选择一个引擎子系统的方向学习它的知识和编程技巧(一般是从图形引擎出发,学习图形API如OpenGL或中间件如OGRE)。