Silverlight版本 暗黑破坏神开发 探索(1)

   把Diablo的资源用提取工具看了一下,游戏的人物有很多的“零件”组合而成,Figure Assembly :Head + Shoulder + Arm + Body + Leg + Shield + Weapon + Arrow

  S2: Shoulder

      S1:  Shoulder

      SH:   Shield

  TR:   Body

  RH:   Weapon

  LH:   Weapon

  LA:   Left Arm

  RA: Right Arm

  HD:  Head

  LG:  Leg

  

   这些部件需要有组合的位置,还因为遮挡的原因,还需要有组合的顺序,部件本身需要一个索引,或者说要映射到一个源,一个地址上。那么一个部件在一个时刻需要(xPos,yPos,zIndex,sourceIndex)四个数值组成的一条数据。若干个部件,或者说若干条这样的数据组成一个完整的表现元素CUIElement。我觉得在游戏开发中,“既要埋头拉车,又要抬头看路”。既要设计精巧细致的算法来解决一个个具体的问题,游戏的展现;同时又要有大局观,站在更高的高度来看待所遇到的问题,时刻清楚自己所处的层次,要适时地进行抽象化,不能陷入细节的海洋中不能自拔,但同时需要避免为了抽象化而抽象化,走向另外一个误区。

  在具体到这个问题上面来,设想,如果能够体现“数据驱动”的思想,通过封装解耦,避免互相干扰,让这个看上去很复杂,数据量很多的问题,单独浓缩到一个层次,有着良好的模块化,同时要有高效率,那将是一个良好的解决方案。

 

 Diablo II 的制作年代已经十分久远,图像的精细度不能和现在相比,面部几乎不可辨,所有这里面并没有帽子的概念。但曾拆开过DNF,里面的组合方式是有所不同的。DNF有一个做底的裸模,比较精细。从这点来讲,DNF更像是叠加,而Diablo更像是组合。

 

      虽然Diablo II 已经是上个世纪的事情了,但确实可以称作经典,就单独就人物的动作而言,就非常精细自然,操作感很好。虽然现在很多游戏的画质细腻,画面精美,但很多不自然的感觉在上手尝试下都能有明显的感觉。  :),我玩游戏是个小白,这些是策划强叔告诉我的。虽然效果很好,具体到WebGame来说,不能像客户端游戏那样,下载大量的资源文件;不能使用DX;所以要想使用Silverlight技术实现一个Diablo,想要取得同样的效果, 组合方式的数量将是巨大的,如何处理,在各个方面都取得良好的平衡,是需要不断尝试和仔细考虑的。

  人物的构成和背包系统是紧密联系的,实际上背包的划分直接驱动人物的划分。我们可以看到,它们是基本保持一致的,但还是有不同,从游戏上来说,用户对自己的装备做出改变,他们当然想感受到这种变化,但有些时候,这种变化在2D游戏中,特别是人物比较小的情况下是感受不到的,比如戒指,项链,甚至还有手套;除此之外还有其他区别,比如虽然没有单独为胳膊,肩膀设置装备,但在使用GameSprite解析资源的时候,还是看到了单独的左右肩和左右胳膊,我猜测是为了动作的流畅自然,在游戏中,还存在颜色的变化,比如镶嵌了蓝色宝石的装甲就显示出一种蓝色的光芒,整体呈现蓝色,这些对用户体验都是很好的做法。(当然,程序员也许就不那么愉快了。)

 下面这张图是使用游戏资源提取截出来的图片,或许可以给我们一些启示。我的这些思路都是根据这些蛛丝马迹猜测而来的,因为图片的提取的原理,非常陌生;游戏的开发资料也非常匮乏,很想找到一些关于游戏中人物部分的划分方面的研发资料,最终也是失望,哪位朋友如果有好的资料,非常希望能够告知一下,非常感谢。我们在这张图上,看到了索引,大小,位置,但没有看到我所猜测的ZIndex。

 

经过一番思索并结合以前的开发经验得出:

 

posted @ 2010-08-11 19:29  向恺然  阅读(774)  评论(1编辑  收藏  举报

我必须说的是:我崇尚开源,但鄙视剽窃。本博客所有引用的图片,文章,和代码,均只作为研究学习使用,不作为商业应用。如果我无意中冒犯了您,请发消息留言,我将立即删除。