淘宝斗地主残局玩法技术方案总结

简介: 游戏互动是淘宝内容化建设的重要一环,其实自研的淘宝斗地主满足了部分人群的简单娱乐需求。本文主要介绍了淘宝斗地主新推出的残局玩法从0到1是如何实现的,笔者针对游戏链路到设计方案和可能出现的问题做了比较细致的介绍,供大家参考交流。


项目介绍

当前互联网应用很重要的一点就是内容建设,通过内容吸引用户。对我们来说就是成为吸引用户每天点开淘宝的动力。期望用户能够每天点开淘宝看看——我现在没事,那打开淘宝领取一下淘金币,去淘宝人生看看,打个斗地主,玩个麻将,看看淘宝乐园的小游戏等等。
笔者本次拿斗地主举例,其作为棋牌游戏面向人群广泛,即时满足性强,两分钟一局,通勤、食堂、洗手间等碎片时间来一局,此类互动类内容建设为淘宝在用户增长和用户使用时长方面带来了一定的收益。

image.png

相信每个人都知道斗地主的玩法和规则,这里就不花笔墨叙述了,淘宝斗地主目前有经典玩法、炸弹房、实物大奖赛、好友对战等游戏模式,也形成了任务中心、钻石一分兑、道具商城的运营体系。但是游戏要想持续吸引住玩家,必须要不断推陈出新。


因此在经典玩法基础上我们需要探索出的新的玩法,就像9月份爆火的《羊了个羊》游戏一样,诸如此类的解密闯关类,我们做了斗地主的残局玩法,你可以想象和象棋的残局一样,双方能够看到对方的手牌,并且其中玩家方的胜利路线是唯一的。玩家从复杂的敌我手牌中,面对永不出错的AI,在重重险阻中找到获胜的途径,获得战胜AI的成就感。残局作为承接斗地主部分玩家的双十一活动,为玩家尤其是高玩提供了新颖的游戏体验,后期作为外投的“钩子”,期望吸引到更多感兴趣的玩家,拉新并转化。

image.png

经典模式的斗地主分了以下几个阶段:


匹配->发牌->叫抢地主->加倍阶段->打牌阶段->结算


功能上分为几大模块:实时在线匹配,牌局推进与更新、托管与守护、消息的推拉结合。由于本文主要讲述的是残局,对于经典玩法是如何实现的就不展开了,主要想对比一下残局玩法和经典玩法的区别:

image.png

image.png

  • 触发活动,获得当日牌局

根据运营策略,AB、人群、来源等判断是否触发活动,再请求当日牌局信息。牌局要求:玩家必有获胜机会,但是仅有一种出牌方式能获胜;要求生产的牌局一定要保证某一步是唯一解,既不能出现用户随便出都能赢AI,也不能出现无论怎么出都无法赢AI的牌局。

  • 进入对局
    进入对局后,只有玩家与AI对手两个角色,并且双方手牌都直接展示。
  • 用户出牌
    开局后直接进入出牌环节,玩家为先出的一方,对局过程中,玩家侧不设定倒计时,每一步没有超时时间,可无限等待下去。
  • AI和用户轮流出牌
    每当玩家出牌,AI方将有5S的倒计时出牌时间,AI的每次出牌会随机在1~5S间隔
  • AI出牌策略
    当玩家出牌并在“获胜”的路径上时,AI需要尽量确保后续的出牌也只有1种策略【AI不能认为要输了就摆烂】当玩家出牌并非“获胜”路径时,AI需要使用合理的牌序策略将玩家击败【只要玩家出错就必败】
  • 有一方出完则进入结算
    直到双方有一方将手牌打光,即为牌局结束,AI出完用户失败,反之则胜利。

image.png

当用户击败AI后,可以获得相应关卡的奖励(一般是斗地主的道具或豆子钻石),吸引用户在其他对局中使用,进而拉长用户的游戏时长

  • 牌局保留逻辑


玩家的牌局缓存会保存一定时长,中途退出后,牌局不会被自动托管,现场被保存下来,用户当天再次挑战会从上次结束地方继续,除非用户手动点击重开或本局进入到结算。

  • 牌局选取与更新原则


要求用户短时间(30天)内不能遇到重复的牌局;半夜十二点玩游戏用户很多,因此将每日关卡改到凌晨5点刷新

 功能上的挑战

image.png

  1. 牌局自动生成:这种大量残局不可能由人工生产,需要训练生成,并且残局要求牌面实力相当,用户存在少量必赢路径(1~2条),尤其是大规模高质量残局生成难度大
  2. 用户请求当日关卡如何做到不重复,并且有一定容错能力
  3. 牌局信息存储的选型和可扩展设计,并尽量减少缓存占用

  4. 高度依赖稳定的AI出牌,尤其是较高的调用量要保证高可用高性能:a

    .高准确率:准确率100%;当用户走必赢路径时能合理出牌;当用户走错时AI能100%反杀;b

    .高性能:AI出牌低延迟;c.兜底能力:当AI不可用时,服务端要有兜底的能力,不能阻塞用户
  5. 设计时考虑投放和AB测试能力,以及加入多种降级和紧急下线的开关与兜底工作
  6. 数据表的设计,数据分析能力,监控报警,数据看板以及可灰度、可观测、可回滚的能力等等



技术方案及思考


 技术模块拆解


1、用户触发活动 2、获得今日关卡 3、用户和AI对局 4、结算和发奖

 系统链路图


image.png

 技术模块拆解


  • 牌局数据存储


一般的存储方式:

    单机内存、 布式数据库、 分布式缓存


由于牌局更新频繁,而且在线玩家越多,并发越大,对RT和性能就越敏感,而牌局的具体过程系统不需要详细记录下来,也不需要使用永久性的存储方式。综合考虑之后基于Redis的缓存是当前比较合适的方式。
残局场景涉及到两个缓存信息:一、十局牌局信息同时也作为触发标志存储包括挑战进度,十局残局对应的信息(gameId;用户手牌;AI手牌)二、用户当日正在挑战局的牌局信息

image.png

  • 用户触发活动逻辑


用户在进入斗地主主页的时候,会去校验该用户是否能够触发活动,如果在触发活动范围内,会判断疲劳度决定是否出现活动弹窗,引导用户进入残局玩法。下面展示的是当用户进入首页时,校验触发逻辑:

image.png



相关文章
|
7月前
|
前端开发 Java 程序员
阿里新年献礼:Java性能调优(独孤版),带你打造淘宝秒杀架构
高并发下如何设计秒杀系统?这是个高频面试题。虽然简简单单一句话,看似简单其实不然,这里面水很深,秒杀的整体架构可以概括为“稳、准、快”几个关键字,它所涉及的知识包含了从前端到后端。
|
11月前
|
移动开发 缓存 搜索推荐
淘宝首页大促新玩法“猫头”背后的技术挑战和设计
本文详细介绍了淘宝首页大促新玩法“首页即会场”项目,从开放模式、复用粒度、交互实现、性能、可扩展性等技术角度来说明“猫头”是怎样炼成的。
257 0
|
存储 SQL NoSQL
社交软件红包技术解密(十二):解密抖音春节红包背后的技术设计与实践
本文将要分享的是春节期间海量红包社交活动为抖音所带来的各种技术挑战,以及抖音技术团队是如何在实践中一一解决这些问题的。
293 0
社交软件红包技术解密(十二):解密抖音春节红包背后的技术设计与实践
|
存储 算法 搜索推荐
淘宝长辈模式技术实践万字总结
长辈模式就是:字大、简单。 四个字背后代表是近100人的项目组的努力,更是淘宝人的情怀与坚持。今天我们在帮助老年人更好得使用互联网产品,就是在帮助未来的自己。
211 0
淘宝长辈模式技术实践万字总结
|
移动开发 算法 JavaScript
淘宝直播里的智能互动是怎么做的?
跨端方案成为唯一选择,为了提高运营、设计和玩法开发人员的制作效率,我们也必须有配套的素材生产工具和玩法编辑工具,解决素材制作-效果调试和预览-素材上传-素材投放全链路的问题,同时我们也希望玩法能结合权益产生更大价值。
淘宝直播里的智能互动是怎么做的?
|
JSON 移动开发 弹性计算
手把手教你开发互动游戏,看 EVA 互动技术体系在金币小镇的实践
EVA 是一套上手快、开发效率高、能力完善的互动研发体系,广泛应用在淘系的互动业务中。
手把手教你开发互动游戏,看 EVA 互动技术体系在金币小镇的实践
|
监控 安全 前端开发
闲鱼把各种玩法做成了一个平台:哆啦A梦
哆啦A梦的口袋里,都有哪些好玩的?
7102 0
闲鱼把各种玩法做成了一个平台:哆啦A梦
|
供应链 机器人 双11
重大发布!今年天猫双11多三天,光棍节变双节棍,玩法亮点全在这里
挺品牌、挺商家、挺工厂、挺消费者,2020天猫双11注定不一样。
重大发布!今年天猫双11多三天,光棍节变双节棍,玩法亮点全在这里
直播带货源码卖点分析
直播带货源码顺应了时代发展的需要,在天时地利人和的背景下蓬勃发展起来,直播带货究竟有什么魔力,可以吸引用户、引入投资呢?本文就为大家分析一下,直播带货源码的卖点。