introduction (简介)
等等!在你开始撰写代码前你必须先构思一下如何去架构你的引擎.多数来讲,你一定是迫切地渴望去制作一个游戏,但如果你立即投入便开始为你的引擎撰写代码后,你一定会觉得非常难受,开发后期你可能会为置入新的特效与控制而不得不多次重写大量的局部代码,甚至以失败而放弃告终.花一点时间好好地为你引擎深谋远虑一番,这将会为你节省大量时间,也少一点头痛.你一定不会急切地去架构一个巨型的工程;或许你也会在引擎未完成时而干脆放弃它,然后去干的别的什么事儿.好了,当你掌握学习你所需知识的方式之前,也许你还不能完成那些事儿.将设计真正地完成确实是件美事,为之你会感觉更好,你将为之而耀眼! 【程序编程相关:遊戲開發心得(2)】
让咱们谈谈你如何撰写一份提供优雅性能的3d引擎.你的引擎需要提供的包括:曲面(curved surfaces).动态光线(dynamic lighting).体雾(volumetric fog).镜面(mirrors).入口(portals).天空体(skyboxes).节点阴影(vertex shaders).粒子系统(particle systems).静态网格模型(static mesh models).网格模型动画(animated mesh models).假如你已经知道如何以上所述的所有功能顺利工作,你也许便能将那些东东一起置入到一个引擎当中. 【推荐阅读:遊戲開發心得(1)】
【扩展信息:J2MEGame开发笔记-尝试IO优化】
让我们分析一下具备完整功能的3d游戏引擎的需要哪些基本部件.首先,这为具有相应3d经验但且还需一些指引的开发者提供了一些信息.这是一些并不难且能快速掌握但是你必须应用的内容条目.为将你的工作更好地进行下去,这里将对关于“把多大的工作量”与“多少部分”置入一个游戏引擎给出一个总概.我把这些成分称为 系统(system).控制台(console).支持(support),渲染/引擎 内核(renderer/engine core).游戏介质层(game interface).以及工具/数据(tools/data).
tools/data (工具/数据)
在开发过程中,你总是需要一些数据,但不幸的是这并不象写文本文件或是定义一个立方体那么简单.至少,你得需要3d模型编辑器,关卡编辑器,以及图形程序.你可以通过购买,也可以在网上找一些免费的程序满足你的开发要求.不幸的是你可能还需要一些更多的工具可你却根本无法获得(还不存在呢),这时你只得自己动手去写.最终你很可能要自行设计编写一个关卡编辑器,因为你更本不可能获得你所需.你可能也会编写一些代码来为大量的文件打个包,整天面对应付成百上千个文件倒是非常痛苦的.你还必须写一些转换器或是插件将3d模型编辑器的模型格式转换成你自己的格式.你也需要一些加工游戏数据的工具,譬如可见度估算或是光线贴图.
一个基本的准则是,你可能要为设计工具而置入比游戏本身等量甚至更多的代码.开始你总能找到现成的格式与工具,但是经过一段时间以后你就能认识到你需要你的引擎有很大的特性,然后你就会放弃以前的撰写方式.
... 下一页