游戏服务器中商城设计的碎碎念(二)

本文分享了游戏服务器中商城设计的思考,包括商品结构体的初始设计与后续修改,冗余设计的争议以及最终选择。讨论了冗余在商品和商城中的角色,以及如何在保持性能的同时满足策划的灵活性需求。商城设计最终实现了高灵活性,成为测试中唯一未大规模修改的部分。
摘要由CSDN通过智能技术生成

游戏服务器中商城设计越来越大的小问题

商品结构体

任何一个游戏中的商品都是多种多样的,小到一瓶药水,大到装备外观,一切都可以被出售,这也意味着商品的结构是十分重要的。尽可能好的剥离【商品】这一对象的特质是OOM的基本功。
以下是最初设计的用于商品的结构体,但在实际后续使用过程中也进行了一些修改。好在改动并不算大。

// 商品信息
	private int goodID;//商品ID
	private int sortID;//用于排序和分类的ID
	private int itemID;//商品代表的道具ID;
	private int itemSum;//商品代表的道具数量
	private int left;//剩余库存
	private int max;//最大库存
	private int moneyType;//兑换货币类型
	private int price;//价格(原价)
	private int discountPricel;//折扣价(实价)
	private long beginTime;//开始售卖时间
	private long endTime;//结束售卖时间

在最初的设计中,商品包含了绝大多数信息,而作为商品的集合,“商城”的概念被弱化了。换而言之,任何的商品都应当能够被剥离出来,在任意的商城之中进行展示和出售。

在与其他人进行讨论时,我们对这里的设计有比较大的争议。
我们主程与其他几人认为不需要将如此多的信息包含其中,如开始时间结束时间等可以被提取到商城结构中传输。毕竟在玩家数目大时打开商城的频率也是比较高的。
自然,也有一些人和我的想法一致,认为商品存在各类可能的例外。例如在某些商城中可能会出现的特殊存在,这样的设计在多数同类型游戏的活动中十分常见。

最终我决定选择

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值