第一篇优快云博客,想介绍下我在今年工作之余开发的一个简单的游戏引擎和编辑器。由于我从事游戏引擎开发工作,平时总是需要研究一些新的东西,比如尝试一些新的特效,研究其他游戏的思路等等,这就需要一个自己的引擎。同时在开发引擎的过程中,结合游戏的需要,自然想到了同时开发一个灵活的编辑器,编辑器不受引擎功能的限制,不受界面开发复杂度的限制等等。在半年多的时间里,完成了一个简单引擎和编辑器。
开发所用工具为VS2010,引擎设计为支持多渲染系统,目前实现的是dx9,不依赖dx9小版本,编辑器部分使用WPF,也就是.net framework 4.0。
游戏引擎
定位为3D,尽量灵活易改动,架构清晰,效率高,目前实现了D3D9的固定管线和硬件蒙皮Shader,支持wow的模型格式(当然是参考wowmodelviewer)。包括:
(1) 基础库: vector, matrix, line, quaternion, plane, box, 定长string等基础类
(2) IO: 文件读写, 资源管理,资源缓存,基于引用计数资源,资源池
(3) 场景: 场景管理器,场景结点,场景渲染
(4) video: 渲染层抽象, 图像,字体,材质,mesh,纹理等等与渲染直接相关的部分
此外包括引擎初始化,分配器,wow的格式解析等等。引擎依赖freetype库(字体),libmpq(解析mpq文件).
引擎的设计来源于我理解的一个抽象:引擎可以理解为 io处理