游戏将如何搜索其他在线用户并显示所有用户列表?
您将需要一个服务器,该服务器将在线播放器列表返回给您的 iPhone 客户端,它是某种数据格式,可能是 XML 或 JSON。
如何请求某人加入游戏然后对其他用户可见?
最简单的方法是想要加入游戏的人将该命令发送到服务器,服务器告诉其他人他们想加入。等待回复。如果玩家二说“是”,则返回转发给第一玩家的服务器。
它基本上是发送到服务器和从服务器发送的一系列命令。这就是所有多人游戏的工作方式——例如,Quake 引擎发送非常紧凑的命令,只有 4 个字节用于“让我在服务器上的所有玩家”之类的事情。鉴于 iPhone 连接的脆弱性,这将是一个很好的复制模型,因为 Quake 网络代码是为 56k 调制解调器设计的。
桌子的玩家之间的连接和会话将如何工作?(插座?)
连接可以是连续流(最好使用 UDP),也可以是来自客户端的轮询。您需要考虑两者的扩展,因为有可能 100 人玩可能会使您的服务器瘫痪。
如果一名玩家失去连接,会话将被丢弃。或者,由于它是基于回合的,每个玩家可以在他们在线时简单地发送一个命令,而另一个客户端在他在线时选择这个 - 在这个模型中不需要会话,并且命令存储在服务器上的数据存储中。
作为服务器和客户端的一部分,需要什么样的网络编程?
我将扩大范围:
- 深入了解字节和位操作,包括位移
- 创建和读取UDP数据包的知识
- C 中的网络编程(Objective-C 可以简化很多)
- 服务器:在 Linux 上编写守护程序,或在 Windows 上编写服务以侦听命令
- 如果您不关心带宽和连接中断,请了解 SOAP、XML 或 JSON