我想为 iphone 开发一款在线多人游戏。
我开发了两个 iPhone 应用程序,但它们不是游戏。
所以这是我的第一个游戏。
所以基本上我对在线多人游戏如何在iPhone上运行一无所知。
我只是想知道策略、初学者的注意事项和其他设计元素,以帮助我理解 iPhone 中的多人游戏。
例如:如果有在线赌场游戏(不是蓝牙),所有玩家之间的连接和会话如何工作。他们如何管理回合、结果。
EDIT我也按照 Brad Larson 和 ChrisF 的建议单独提出了这些问题:
游戏如何搜索其他在线用户并显示所有用户列表?
如何请求某人加入游戏,然后其他用户才能看到?
牌桌上的玩家之间的连接和会话如何进行? (插座?)
作为服务器和客户端的一部分,什么样的网络编程是必需的?
请告诉我这些是如何运作的? (只是概念)
Thanks .
游戏如何搜索其他在线用户并显示所有用户列表?
您需要一个服务器,以某种数据格式(可能是 XML 或 JSON)将在线玩家列表返回到您的 iPhone 客户端。
如何请求某人加入游戏,然后其他用户才能看到?
最简单的方法是想要加入游戏的人将该命令发送到服务器,服务器告诉其他人他们想要加入。等待回复。如果第二个玩家说“是”,则返回到转发给第一个玩家的服务器。
它基本上是一系列发送到服务器和从服务器发送的命令。这就是所有多人游戏的工作方式 - 例如,Quake 引擎发送非常紧凑的命令,对于“获取服务器上的所有玩家”之类的命令,只有 4 个字节。考虑到 iPhone 连接的不稳定,这将是一个很好的复制模型,因为 Quake 网络代码是为 56k 调制解调器设计的。
牌桌上的玩家之间的连接和会话如何进行? (插座?)
连接可以是连续流(UDP 最好),也可以是来自客户端的轮询。您需要考虑对两者进行扩展,因为 100 人玩游戏可能会让您的服务器瘫痪。
如果一名玩家失去连接,会话将被终止。或者,由于它是回合制的,每个玩家可以简单地在在线时发送命令,而另一个客户端在他在线时接收该命令 - 在该模型中不需要会话,并且命令存储在服务器上的数据存储中。
作为服务器和客户端的一部分,什么样的网络编程是必需的?
我将扩大这一范围:
- 深入了解字节和位操作,包括位移位
- 创建和读取 UDP 数据包的知识
- C 网络编程(Objective-C 可以简化很多)
- 服务器:在Linux上编写守护进程,或在Windows上编写服务来监听命令
- 如果您不关心带宽和连接中断,则了解 SOAP、XML 或 JSON
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)