功能介绍:
- 必须连接到服务器才能开始游戏,成功上线服务器返回“WELCOME USERNAME”的欢迎信息
- 当没有新的玩家上线时,玩家可以进行单人游戏,当游戏已经开始时第二个玩家无法上线,服务器返回“BUSY”
- 当两个以上玩家同时上线时,可以进行多人游戏,客户端界面出现不同颜色的蛇,分别由不同玩家进行控制
- 当某一玩家关闭连接,该玩家游戏失败
- 除了单机贪吃蛇的基本规则外,当蛇头接触到同类时,该玩家游戏失败,生存时间长的玩家获胜,用你的身体挡住对手的路吧!
*实际上这是简化的服务器,更像是“房间”的概念
Tips :
- 关于网络拓扑,上述提到的是简单的Client-Server模型,游戏运行在“权威”服务器下,客户端想进行一个操作时,会发送动作请求的数据包给服务器,服务器统一处理这些请求并进行状态更新,再把更新结果反馈给客户端。
- 关于传输层协议,采用UDP进行传输可以使数据包的传输更加灵活,UDP socket是无连接的,必须先调用Bind函数保留一个端口,再使用ReceiveFrom取回传入的数据;UDP socket是无状态的,需要自定义流量控制以及拥塞控制等规则,以确保所有数据能够按预期进行处理。
源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~