我目前尝试为我的游戏实现成就系统,但找不到更好的方法来实现一些复杂的方法,如:玩家收集x币,完成等级时间少于x秒,杀死x敌人等你能分享一下你的经历吗?
其次,为什么我们不仅仅将成就系统实现为本地而不是使用像Scoreloop或OpenFeint这样的服务器?或者换句话说,使用服务器管理玩家成就有什么好处?
答案 0 :(得分:1)
首先回答你的第二个问题,使用服务器的好处是与他人分享信息,这样他们就可以“竞争”或“赞美”其他领导者。您可能还有一个网站和社区来构建一个关注者和排行榜(有点像这个网站点)有助于推动更多的活动和粘性/忠诚度。
第一个问题,您可以查看Redis等快速存储解决方案中的Set结构或Ordered Set结构。查看这些文章以获取示例:
您需要问自己的问题是,您是想在设备或客户端/服务器上完成所有操作,这将决定您的解决方案。您可以拥有一个“事件”列表,每个事件都有一个“类型”(即收集的硬币,快速完成的级别,杀死敌人),这可能是在服务器或设备上。然后,您可以制定规则来测试“规则”并统计这些事件以解锁更多级别,功能,或者仅在服务器上为该用户发布一些识别(仅在重要时节省网络带宽)。