MMORPG-Client-组队
序言
在MMORPG中组队系统是社交向玩法中,重要的一个系统。游戏设计师通常会鼓励玩家进行社交玩法,以提高玩家的“黏度”,于是便诞生出了各式各样的“组队”。组队的玩家往往会比单人获得更好的奖励,且有些玩法可能必须要求组队。而在程序的眼中,组队系统就是一个玩家的集合,维护此集合的状态以及他们关联的业务。
特征
- 队长/队员:队长比队员有更多的查看/操作等权限
- 状态同步:一般的状态同步是走视野的(通过视野的EntityID列表去拉取对应Entity信息),队友是需要同步视野外的信息的,如:Hp,位置,死亡/复活等。
- 表现:显示队员列表中队员的Hp/Buff/状态(眩晕、吟唱等)
- 沟通:聊天频道/语音房间等
- 投票:一些重大的决定如:副本内踢人、退出副本等,全由队长决定不太好,则全体队员投票决定
- Roll奖励:获取优质奖励的时候,可以参与Roll点(掷色子),点数大玩家获取奖励。经典的会有一个类似掷色子的特效表现。
- 招募:一些玩法如副本需要组队时,可以通过招募向更多人发送组队信息
- 不同玩法队伍的差别:在不同的玩法中,可能同时存在多个不同的队伍(如匹配到的副本队伍和你野外所在的队伍可能同时存在)
模块
表现模块
依赖:
- 角色信息(这里包含buf)
- 组队模块
- 组队后台同步(一些前台获取不到的信息,如对方正在看过场动画的状态同步)
- 前台的事件同步,如角色的死亡/复活等等
消息同步模块
队员的一些信息在视野之外也需要同步(如队友的位置),此时需要后台的组队模块需要推送给前台队友的视野外的信息,前台的组队模块在将信息同步给角色信息管理模块。
投票模块
在一些重大的决定(如退出副本,副本内踢人)等需要投票决定