[转] KM3D引擎功能描述
引言
KM3D引擎是合适制作类似《魔兽争霸3》视角的全3D游戏引擎。
客户端部分:引擎亮点(模型、界面、场景)
渲染引擎:游戏采用D3D/OpenGL技术实现3D渲染部分,可供用户根据自己的显卡自己选择合适的渲染管道。引擎用的是DX7.0和少部分DX8.0的技术。OpenGL部分也只用到了OGL1.3版本规范,向下兼容。目前能够支持的显卡大约市值大约150元左右。
地图场景
每张场景最大256*256个网格,每个网格分为4段做步长。也就是横竖可以放置1024个角色单位。中上复杂度场景(指很多场景装饰物件)P4-2.4CPU可以做到无消耗切换,P3-500机器需要5秒钟。[注:《魔兽争霸3》游戏中提供的官方场景,复杂度都没有超过中上复杂,如果运用在网游中,场景复杂度要要简单很多。可以编辑出可进入式的房间供场景编辑器:可以编辑类似《魔兽争霸3》地形地貌的编辑器,该编辑器可以读取并编辑《魔兽争霸3-冰峰王座》编辑器生成的地图,也可以编辑的《魔兽争霸2》地图编辑器生成的地图。
游戏界面
采用类似《魔兽世界》的界面方式,采用XML+LUA脚本的实现方法。界面编辑非常灵活简单,而且界面也可以做到非常花哨。目前除《魔兽世界》树型下拉列表外的其他所有界面都可以实现。
3D模型:使用3DMax模型编辑。
模型制作是这个游戏引擎的重点,引擎中的绝大部分都是模型操作,包括天空盒、烟火爆炸效果,甚至是雨雪的天气变化均有粒子模型产生。这样做的目的是这些效果有美术效果好看,程序控制简单。
特色一:角色模型制作采用和《魔兽世界》等同的方法。制作者无需要考虑换装时候有关连接可能会破损的因素。每个角色不包括换装,只是个性化特色,就有1300万种之多。此类模型体统LOD3级细节,就是模型制作时候按照三角面分为3层近多远少的原则制作,也可以根据同屏幕中角色的多少进行调节。
特色二:模型中的骨骼蒙皮和顶点蒙皮相互混合的方式制作,目前该技术只有《魔兽世界》在运用。该技术对3D美术制作水平要求低,完全不需要懂什么是骨骼动画。甚至连3Dmax中的character studio的插件都无需安装。但是却能够做到一些意想不到的效果,例如角色呼吸时候,胸部的起伏。角色眼睛眨动,嘴巴说话等。正是由于实现了该技术,无需显卡支持VS/PS技术,也能够在低档显卡上做到流畅效果。
特色三:在动画制作中可以根据某个特殊需要,直接插入音效播放。例如模型在受到攻击时候需要发出什么样的声音,小鸟在天空飞翔时候,叽叽喳喳的声音,都是放在模型中处理的。
特色四:模型中的粒子也全部在3DMax中实现。制作简单,美术编辑程序播放,效果更好。
特色五:模型中的带子效果,指具有带状的魔法特效也全部在3DMax中制作。例如,一个角色在拿着武器攻击时候,武器运动的虚光等。也直接在3DMax中,附属于武器时候直接编辑就可以了。
特色六:角色模型在游戏中,头部可以根据需要智能转向。例如个头高大的角色和个头低矮的角色在说话或对战时,个高的会低头,个矮的会抬头。这些细节只需在制作模型时候指定参数,无需调整动画。
渲染效率:
同屏场景中可以容纳在30个动画角色左右,每个角色1500个三角面,在PIII500,G-Force2 MMX440显示卡的机器,可以做到每秒播放30帧流畅渲染。该种视角主角人物一般800个三角面足以表现细致。可参加提供的模型范例。[注意:引擎场景不合适第一人称视角的游戏,如果一定要采用第一人称视角,需要酌情考虑利用引擎的其他部分,重新写过该引擎提供场景部分]
服务器部分:
采用ACE+BOOST+LUA构成,跨平台。
建议使用Linux2.6系统平台,采用了E-Poll技术,从而解决了网络游戏最大的瓶颈-即IO效率,理论上可以同时允许1024*128的连接。
高性能的负载均衡采用mosix或者openmosix方案,可以大大降低服务器运营成本。
[参见http://www.mosix.org或者http://openmosix.sourceforge.net]
网络通讯部分代码,采用ACE技术,这是免费开源的一整套网络解决方案,2004年被称之为“无需继续开发轮子”网络方案,意思就是目前没有更好的网络解决方案了。虽然目前网络游戏应用还是很少见,大部分都还是制作公司自己实现的。但是该解决方案在其他大型企业网络产品领域已经开始被推崇并使用。使用ACE的好处是:增强可移植、更好的软件质量、更高的效率和可预测性、更容易转换到标准的高级中间件。
[参见http://www.cs.wustl.edu/~schmidt/ACE.html]
游戏服务器的逻辑运算均有LUA脚本实现,LUA是免费开源的脚本语言,目前已经是5.4版本了。台湾游戏制作公司的一些单机版本游戏中已经使用。最新暴雪公司推出的《魔兽世界》也采用了该脚本语言,一下子成为游戏届的领头脚本语言。该脚本语言短小精悍,效率很高。一般非程序人员大约1周时间可以基本掌握使用。[参见http://www.lua.org]这样做的目的是为了更加灵活的对服务器的游戏中逻辑运算进行方便的调节,甚至是不需要重新启动服务器程序,达到在运行中修改的目的。
为了更好地描述KM3D游戏引擎,可参照制作一个类似《暗黑2》+《魔兽世界》的网络游戏演示程序。该演示只在更加直观的说明游戏引擎所达到的一些效果。
道具:
全套模拟《暗黑2》的道具机制,包括名称、属性以及掉落算法等。该部分有脚本生成,策划可以自由修改,哪怕是写错了,也不会造成服务停止。
基本道具书写参见Item.xls文件
魔法技能参见spell.xls文件
魔法属性和故事情节:
游戏服务器框架结构完全模仿《魔兽世界》,甚至是角色属性,法术技能也全部模拟。
故事情节构成也是由LUA脚本+经过处理后的Excel文档构成,目前网络上流行的故事情节都能够做到。故事情节也可在线及时修改和添加,无需要重新启动服务程序。
数据库:
后台数据库采用免费开源的轻量级数据库-MYSQL。并且依照MYSQL特性做了合适的设计,相信速度效率足以应付10亿条信息。程序可以兼容使用Oracle和MSSQL数据库。
整体服务器构建方案:
最少4台服务器配置为1组服务器,服务器结构采用Realmlist Server,Login Server,Game Center Server以及SQL Server构成。能够很好的解决网络带宽压力以及分布程序计算压力。详细参见服务器构建方案(该解决方案如有购买意向时提供)。该组服务器可以同时提供2048个服务,每添加一台Realmlist服务器,可增加2048个连接,等等。当然提供更加多服务连接时候,需要相应的配置Game Center Server的数量以及解决方案。
以上各服务器最低配置为P4