功能介绍:
- 必须连接到服务器才能开始游戏,成功上线服务器返回“WELCOME USERNAME”的欢迎信息
- 当没有新的玩家上线时,玩家可以进行单人游戏,当游戏已经开始时第二个玩家无法上线,服务器返回“BUSY”
- 当两个以上玩家同时上线时,可以进行多人游戏,客户端界面出现不同颜色的蛇,分别由不同玩家进行控制
- 当某一玩家关闭连接,该玩家游戏失败
- 除了单机贪吃蛇的基本规则外,当蛇头接触到同类时,该玩家游戏失败,生存时间长的玩家获胜,用你的身体挡住对手的路吧!
*实际上这是简化的服务器,更像是“房间”的概念
Tips :
- 关于网络拓扑,上述提到的是简单的Client-Server模型,游戏运行在“权威”服务器下,客户端想进行一个操作时,会发送动作请求的数据包给服务器,服务器统一处理这些请求并进行状态更新,再把更新结果反馈给客户端。

- 关于传输层协议,采用UDP进行传输可以使数据包的传输更加灵活,UDP socket是无连接的,必须先调用Bind函数保留一个端口,再使用ReceiveFrom取回传入的数据;UDP socket是无状态的,需要自定义流量控制以及拥塞控制等规则,以确保所有数据能够按预期进行处理。

源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~
文章介绍了如何创建一个连接至服务器的多人在线贪吃蛇游戏。玩家需上线服务器,单人或多人模式取决于连接的玩家数量。游戏规则包括蛇头碰撞导致游戏失败,以及利用身体阻挡对手。服务器采用权威模型处理游戏状态,通信协议使用UDP以实现更灵活的数据传输。源代码和文档可在指定平台获取。

3386

被折叠的 条评论
为什么被折叠?



