原作来自腾讯游戏学院
以下是原文部分节选
一、服务器架构
“房间模式”
房间类玩法和MMORPG有很大不同:
1.广播单元的不确定性
2.广播数量很小
3.需要匹配一台房间服务器让少数人进入同一个服务器
这一类游戏最重要的是其“游戏大厅”的承载量,每个“游戏房间”受逻辑所限,需要维持和广播的玩家数据是有限的,但“游戏大厅”需要维持相当高的在线用户数,所以仍然需要“分服”。
大厅:“自动匹配”玩家进入一个“游戏房间”,这需要对所有在线玩家做搜索和过滤,以及为了更好的体验,会对玩家分地区匹配,以方便获得更快速的同步。
大体流程:
登录------>大厅服务器------>选择组队游戏功能------>服务器通知参与的所有客户端------>新开一条连接------>连接到房间服务器------>用户在房间服务器里进行交互
二、通信方式
1.http:每次通信完成以后都会断开(这种方式对于需要频繁交互的双方来说效率太低)
2.socket:适用于实时性要求较高的游戏
(socket通信有TCP和UDP两种,其区别如下,王者荣耀采用的是UDP)
为什么采用UDP?
(1)tcp保证数据可靠是有代价的
TCP发送一个包,等待一段时间,直到检测到数据包丢失,如果没有接收到它的ACK(Acknowledgem