交易行
功能说明
常说人类文明的开始源自于交换行为的出现,有很多人聚集的地方,就不可避免地有交易的需求。可以说交易系统设计的是否良好,是MMO游戏世界能否建立健康、可持续发展的社区环境的重要基础之一。
因为大部分的交易系统,其实现的原理其实都是将物品从玩家A那里扣除,放在服务器里寄存,然后又玩家B从系统购买物品后,系统将从玩家B那里扣除的金钱再转发给玩家A。所以,我们常看到的交易系统“寄售”和“购买”是两个完全独立的流程,界面设计上基本上也大不相同。需要注意的是“购买”时有可能有多个玩家同时购买同一个物品,如果处理不当可能会导致刷物品,或者钱扣了没有获得物品。
但凡涉及到交易行为的,都一定要做好详细的流水记录,什么物品,何时何地从何人那里用多少钱卖出,在何时何地被何人用多少钱买入。哪怕在这个过程中,物品下架了,购买失败了都要详细记录。因为整个交易环节都很容易出现有争议的问题,例如刷钱刷物品这类最严重;其次就是购买失败,钱扣了没获得物品;还有就是玩家会遭遇欺诈或买错了,希望能够退货或者要找客服进行申诉。只要有准确详细的交易记录,对处理这些问题都有极大的帮助。
交易行除了普通的买卖交易方式外,还可以设计竞价拍卖的方式,原理和流程与一般的交易也都是差不多的,唯一的区别就是多了一个延时处理,也就是说需要记录不同玩家的出价,最后与出价最高的玩家完成交易过程,并退还其他没有竞价成功的玩家的金钱。
以网易的《倩女幽魂》为代表,出现了一类相同物品按均价出售的交易行,我个人不太建议这样的交易方式,虽然对于买家来说,免去了翻找,比价的麻烦,但从交易本身的意义来说,存在以下问题:
- 均价无法推动卖家之间的竞争,卖家们会更倾向于标高价。
- 系统需要有一套处理优先交易的算法,增加功能的复杂度外,也使买家失去了自由选择的机会。
- 同时购买的交易冲突几率增加了。
- 均价需要实时计算,增加计算量。如果不实时计算,就有刷钱的可能性,比如均价为1的时候,卖家出售2,买方购买支付1,卖家得到2,就刷了1份钱。当然也可以不让刚上架的物品出现在可购买列表中,这还是会增加了功能的复杂度。
测试用例
下载地址及位置:功能测试用例库
问题示例
- 《卧虎藏龙2》交易界面里的物品,从有变为无时,点击购买,客户端会闪退。