1.前言
联机游戏的社交属性强,玩家粘性高,但是相对单机游戏,联机游戏开发周期长、成本高,因此很多开发者选择开发单机游戏,然而投入大量开发时间和资源,单机游戏活跃度不温不火,玩家数量持续流失。本文利用两款小游戏案例介绍如何快速搭建联机玩法,帮助开发者短期低成本实现一款联机游戏。
2.帧同步和状态同步
联机游戏的通信方式主要为帧同步和状态同步。
• 帧同步过程为各客户端实时上传操作指令集;服务端保存这些操作指令集,并在下一帧将其广播给所有客户端;客户端收到指令集后分别按帧序执行指令集中的操作。同步的是玩家的操作指令,该方式多用于对实时性要求很高的网络游戏。
• 状态同步过程为客户端上传操作到服务端,服务端收到后计算游戏行为的结果,即技能逻辑。战斗计算都由服务端运算,然后以广播的方式下发游戏中各种状态,客户端收到状态后,更新自己本地的动作状态、Buff 状态、位置等。同步的是游戏中的各种状态,该方式多用于回合制游戏。
3.联机游戏种类
联机游戏的种类大体可以分为以下四种:
• 回合制多人游戏,常见的有棋牌游戏,打麻将、斗地主等,策略、角色扮演等回合制游戏。
• 实时多人游戏,近几年大火的吃鸡游戏、MOBA、休闲对战,像《和平精英》、《王者荣耀》、《全球大作战》、《贪吃蛇》等。
• 大型多人在线游戏,玩家在一个持续的空间里玩,比如《天龙八部》、《御龙在天》等国战类的游戏。
• 社交游戏,休闲类偏多,像《海盗来了》、《猪来了》,还有很多年前流行的偷菜,都属于社交类游戏。
游戏联机对战引擎
1.简介
本文主要使用腾讯云的一款产品实现联机对战。游戏联机对战引擎(Mobile Game Online Battle Engine,MGOBE)为游戏提供房间管理、队组管理、在线匹配、帧同步、状态同步等对战服务。
• 直接通过 SDK 调用后端服务,无需后台代码
• 无需关心后台网络架构、网络通信技术、帧同步、服务器扩缩容、运维等复杂技术
• 获得就近接入、低延迟、实时扩容的高性能对战服务,让玩家在网络上互通、对战、自由畅玩
• 适用于回合制、策略类、实时会话(休闲对战、MOBA、FPS)等游戏。
2.接口概览
游戏联机对战引擎 MGOBE 客户端 SDK 的接口可以分为五类,包括房间管理、匹配、消息发送、帧同步、广播接口。
• 房间管理类的接口主要是用于将不同玩家组成一个对局,这个过程中可以通过创建房间、邀请他人加入房间等方式将玩家聚合在一起。此外,还提供了如踢人、修改房间属性、查询房间信息等基本的房间管理方法。
• 匹配类的接口主要是用于将不同玩家通过匹配的方式组成对局,开发者可以根据需要定制匹配规则,实现根据玩家等级、积分进行匹配。
• 帧同步和消息发送接口可以用于玩家消息的交互,通过帧同步、状态同步方式实现玩家游戏逻辑的同步。
• 广播类接口主要是用于处理上述接口调用产生的广播事件,比如玩家加房、退房广播、帧消息广播等等。