谈谈Flash MMORPG的地图技术
在开发基于网页的Flash MMORPG游戏时,地图技术往往是最先被提及的。玩家的大部分游戏时间都是在地图上度过的,如何实现美观高效的地图效果,是每个技术人员都头疼过的。对于现在的2D游戏来说,如今的CPU/显卡和内存已经足够强劲了,因此很少需要考虑这些,但是对于Flash来说,尤其是基于网页的Flash,CPU/显卡的快慢,内存占用的大小,网络带宽的大小,都是在设计地图技术时要考虑的。
这里比较分析一下《天书奇谈》,《昆仑》,《乐土》,《魔力学堂》的地图技术的优劣。
《天书》的地图加载是一种采用了实时流化技术的加载方式。《天书》中的地图可以分为小地图,实际地图,路点。启动的时候,优先加载小地图;运行中,随着角色的行走,先使用小地图挥着马赛克效果,再实时加载实际的地图块。这种做法的优点:地图美观,因为地图是完全手绘的,接近于主流2D游戏的效果,比如雄伟的高山,壮丽的宫殿,各种起伏的路径;切换地图迅速,因为切换时不需要加载地图;内存占用比较少,因为地图只有一层;CPU占用也比较少,因为地图只有一层,不需要考虑人和背景之间的遮挡关系,重绘总面积少。缺点就是网络占用带宽可能稍大,因为不同场景间没有可复用的地图资源;在带宽不好的情况下会出现严重的马赛克现象,用户感受较差。采用这种技术,如果遇上网络带宽不好的情况下,就只能依靠纯客户端来弥补了。
《昆仑》的地图加载是采用了传统的,古老的DOS游戏的加载方式。地图中的地层,物件都是基础素材,启动的时候一次把所有素材加载进来(这也是昆仑第一次进入慢的原因,基本是全部客户端都加载了),然后资源部分就完全是客户端游戏的做法了,其实昆仑最开始的时候就是一个纯客户端网游,游戏过程中没有资源的实时加载,这也是为啥昆仑的画面看上去很跟不上潮流的原因。这种完全用素材拼整个地图的做法优点:切换地图迅速,因为切换时不需要再次加载地图,但是切换时需要根据新的地图数据文件重绘新的地图;网络带宽占用小,这里的小指的是总量小,因为他把所有加载放在初始化了,一但加载成功,用户就不需要再担心资源问题了。缺点:CPU占用高,因为需要处理物件和人物的遮挡关系,这也是为什么《昆仑》一开始人小,人少,地图小,但是走起来比《天书》卡很多的主要原因,后来《昆仑》采用了类似《天书》的遮挡处理方式,地图绘制效率提高很多;内存占用高,因为需要保存绘制的结果(为了效率),还要保存所有的素材(为了处理遮挡),因此内存占用比单一的地图层要高。(((这里说点题外话,Flash MMORPG运行速度慢,出各种错误,往往都是因为内存占用高导致,IE对内存管理比较严格,会导致Flash MMORPG占用大量磁盘虚存,一但程序在使用虚存,会导致慢的要死,硬盘还子嘎子噶直响,大内存的应用程序,往往是内存杀手,比如曾经的BT下载,PPLIVE)))。地图表现力差,由于地图拼接的工作模式,导致这种地图不可能出现大号的建筑和复杂的路面,因此地图只能用有限的素材来反复拼接,显示很华丽,其实是很纷乱,而且不管房子还是树木,都跟玩家尺寸差不离,感觉是来到了小人国。
《乐土》的地图是类似昆仑的,但是他们采用了大地图的方案,《昆仑》的地图有效面积只有2屏左右,很小。《乐土》的地图面积则有几百屏,很是壮观,这也是这种方式的优点。《昆》和《乐》的地图拼接方式基本一样,为啥效果相差这么悬殊呢?主要在于素材。《昆》的单个素材尺寸很小《乐》的单个素材尺寸则比较大,素材大了,可以稍稍弥补《昆》没有雄伟宫殿的不足,但是还是不能构建复杂的地形。《乐土》的素材加载方式与《昆仑》有些不同,每次切换的时候加才加载下一张地图的所有素材。《乐土》的优点:地图大,就像魔兽一样,一张地图可以跑半天;带宽占用比较小,这是拼接地图的公共优势,因为这种方式,下载量只与素材数量有关,跟地图面积无关。缺点:地图比较干净,因为不能大量使用素材,因此地上要么不放东西,要么放一排一样的才能省流量;CPU和内存占用高,这是拼接地图的公共毛病,除非《乐土》也改进遮挡的关系,另外《乐土》的地图面积太大,也是效率低的主要原因,这样会把大量玩家拒之门外的。
《魔力》低地图应该是今天主流2D MMORPG的方式,地图由一整张底图和若干物件组成,地图上的路可以走,一些建筑都是不能走的,因为他要处理遮挡关系。只有额外的部件是可以处理遮挡关系的。《魔力》最大的特色在于地图上有动态的部件,跟《梦想世界》很像。地面上的部件不多,可以认为地图的方式与《天书》很像,长时间运行后,内存占用大概是天书的2倍以上,这应该就是《魔力》玩家卡的原因。《魔力》的加载方式是切换地图时,一次加载下一个场景的整张地图,这与现在的很多Flash社区的处理方式是一样的。魔力的优点:地图细致漂亮,毕竟手绘地图+部件。缺点:就是现在优化做的还不够,效率是个大问题。
作为网页Flash MMORPG的地图,要综合考虑网页(流量)/Flash(性能)/MMORPG(游戏的代入感),根据游戏的需要,折中不同的因素来设计满足需要的技术。
还有几款Flash MMORPG,加载方式也都大差不差,具体采用哪种技术,不能一味只考虑画面效果,成功的服务商业模式是CSP(Come, Stay, Pay),画面可以让用户come,但是不好的性能用户不会stay的,也就没有pay了,网易的大话/梦幻,还有魔兽,就是充分考虑了低端的机器,吸引了大量玩不了别的游戏的玩家。