对于古剑思考的点滴

[说明]:该文章为本人从前发表在CSDN中的文章,因为网络不稳定等原因,计划将那边的文章全部导到这边来保存。如果看到雷同文字,请勿做抄袭处理,文章全部导过来之后,我会将从前CSDN那边的文章全部删除。

      1. 游戏中,主角的某些状态参数是要存两份的,不管是存在一个什么表里也好是用静态也好,但这些状态必须存两份,不然很容易出问题。举个很简单的例子,我在战斗中对某角色使用了增加速的技能或者物品,等游戏结束后,如果该角色没有升级,那么他的速应该恢复到他战斗前的水平。同理攻防武运等这些状态都应该是这样的,还有异常状态,中毒等,当然那些只有两种状态,可以直接通过置参数的方法解决问题,但是攻防武运速等状态就不行,必须得有两份参数才可以。

      2. 游戏过程中要维护一个物品列表,为了节省内存,这个物品列表可以非常简单,就只包括当前拥有的物品,物品的数量,物品的所属的种类信息。只要有这些就够了。另外在外部提供一张全物品表,当要查看这个物品的具体信息时再从那张表里读这个物品的具体信息。当使用物品时才会new这个物品的对象出来,当然一个物品的使用肯定要关联一些策略,比如能不能使用,使用效果如何等,不过这个物品对象的生存时间也仅限于使用它的那个瞬间,用完了就赶紧回收释放这个玩意占用的内存空间。

      3.当进入一个场景后,没必要把所有的npc都实例化了,可以考虑组合模式只生成一两个npc对象,其他的npc只有当他出现在屏幕上或者与其对话或者碰撞的时候再实例化,不然那么多npc得多么耗内存啊。那些可怜的内存和cpu时间都要尽量节省出来留给3D图形的各种渲染、光照、粒子、阴影。总之这个npc就是可以组合模式加原型模式的浅拷贝来解决,能少实例化对象就少实例化。

      4.不考虑各种图像渲染等图形学的问题的话,游戏中会用到那些策略?

          1) 烹饪系统中生成的食品及其数量,这八成是一个范围的随机数跟概率的某种组合。

          2) 家园农田和鱼塘生成的物品及数量,这个问题起码要用到外观模式还有随机数加概率。外观模式的用法在于虽然各种种子最终种出来的东西不一样,但是其实总共算起来就那么些,只不过不同的种子的产品是不同的那么几个产品的组合而已。

          3) 迷宫中,当主角和怪的距离在一定范围内,怪就会追着主角跑。这是典型的碰撞检测和人工智能啊。

          4) 迷宫中跟怪物撞上之后进入战斗,此时敌人的种类和数目都是不固定的,这也是典型的随机数和概率的组合。

          5) 战斗中敌方用的招式,这肯定也是有随机数、概率和一些预定义的算法在内的。尤其是当怪的血低到一定程度的时候会补血。

          6) 战斗中使用物品、招式、或者武器附加属性对对方形成的异常状态,这也是一个概率问题,而且是跟对方的某些属性还有是否是boss有很大的关系。

          7) 五行相生相克必然也是一种算法,但是这算法是用判断呢?还是用参数计算?还是用策略模式分开?这得去问开发者了。另外,我们其实并不知道我们的主角到底是什么属性的,我们只知道各个属性的值,那么主角的属性看起来也不是预定义的,而是根据参数计算的,这也必然是一个算法。

          8) 游戏中攻击顺序的列表也是要计算的,尤其是我们在游戏中对各个角色施加加速减速的操作或者异常状态都会导致顺序改变。

          9) 战斗中我方一旦狂了之后不分青红皂白的进行攻击,那么其攻击对象是要用随机数计算的。

          10) 战斗中的攻击效果必须有算法,要根据各个参数计算砍一下能砍多少血,我觉得这个参数还真不少呢,回头好好想想。

posted @ 2011-08-14 22:52  冷夜焰凝  阅读(182)  评论(0编辑  收藏  举报