昨天达成了一个checkpoint,即物品系统基本操作逻辑的完成。包括物品的获取(目前是通过GM作弊命令)、销毁、分发、装备等。
其中物品装备的逻辑还是有点难度的,因为装备栏有的物品是占用两格(双手武器)或三格(时装衣服),装备物品时要判断冲突,想当然写了几遍都有逻辑漏洞,最后不得不在开发笔记上列举所有的冲突情况才总结出与原版的服务端一致的逻辑(算法)。
目前所有的代码都是重构过的了,采用的是与官方相同的编码规范(不要问我从哪儿得到的官方编码规范),即变量全部为匈牙利命名法(驼峰法,有前导数据类型字符),函数全部为首字母大写。如m_fPosX、GetPosX()、m_sObjects等(这也是Windows下做开发的微软系的惯例规范,Java系终究还是不习惯)。上个版本的编码规范是C式的写法,所有变量不带m_也不带类型字符,结果越写越混乱。
架构上基本是自己重新画的,有些东西借鉴了ArcEmu。ArcEmu是我比较喜欢的一个项目,几年前就有读过,最近重读它的代码觉得质量还是蛮不错的,尽管我从来没玩过Wow。我的项目起名叫ChdEmu也是学ArcEmu的。其他的项目像MaNGOS系也有阅览过,但觉得不合口味,比如ACE库显得有点笨。Ryzom也有读,毕竟是真正在营的游戏,但觉得太重量级,子系统划分过细,本来很简单的一个操作他能给你在10个子系统里转来转去执行了1000行代码。
我是个完美主义和精简主义的人,这两个主义结合起来难度可不小。我的目标是用最少的代码、最少的CPU和内存完成最好的工作,并且这些代码的架构还要读起来漂亮、高端大气上档次。这堪比开一场真正意义上的音乐会。
呃好像跑题了。回到项目。因为物品系统能用了,所以现在可以当个纸娃娃玩,给自己弄点好看的衣服穿。下一个checkpoint是技能系统。发布时间预计在明年1-2月份。
不过大概要等到放假再写了。这周是第八周,依据本人多年开音乐会死在台上的经验,接下来要进入学霸模式,差不多持续6周,等曲子都背出来才能稍微缓一口气。
叨叨完毕,下面上图(根据惯例传到百度相册,看大图请亲自前往)。
啥?你说下图穿的是裙子?呃被发现了,可能是状态系统一直没怎么弄完善,初始化的时候Gender随便填的,我开始也没怎么注意后来弄了个裤子结果发现是灰色的没法装备。。。
Good work, keep it up man!
直译: 好工作 ,把它举起来男人
节哀
强力支持,彩虹岛还是相当怀念的,如果能像冒险岛一样玩单机,回忆一下还是很不错的