我想在浏览器内的动作脚本中创建一个2D实时多人游戏,它可以执行以下操作:
客户端:
播放器通过Flash登录帐户。
玩家点击‘与模式’按钮。
一个大厅里出现了一个列有在线服务器的名单。
玩家加入游戏。
这里是问题出现的地方,我希望服务器由社区托管。也就是说,玩家在自己的桌面上下载并运行一个服务器应用程序,让其他玩家加入。然后,玩家转到网站,访问基于浏览器的客户端,以找到活动服务器的列表。
这将是一个商业产品(玩家购买一个帐户,通过客户端登录),每个玩家托管的服务器必须处理20个现场播放器。由于服务器不是集中式的,可伸缩性是由社区处理的,所以典型的解决方案(如SmartFoxServer许可证)将无法工作。
架构概述:
我有一个服务器,有帐户详细信息,数据库服务器列表,客户端和一个可下载的服务器应用程序。
播放机下载服务器应用程序并运行它。
服务器应用程序指向我的服务器,并添加到大厅中可用的世界列表中。
玩家通过客户端访问他们的帐户,并加入其中一个玩家托管的服务器来播放。
设计注意:任何关于玩家进展的状态都是在每个服务器的基础上进行的。客户端和我的服务器只关心验证播放机帐户。
我该如何创建这个游戏大厅?我可以使用什么来创建服务器应用程序?是否有任何内置的库来处理这个问题?我想让事情尽可能简单。
我有AS3、Java7和PHP5方面的经验。
提前谢谢!
发布于 2011-10-31 13:17:30
您将始终需要一个集中的服务器,处理玩家登录请求和游戏室大厅。
您可能会为此使用任何技术,因为AIR客户机可以通过RPC/Webservice/RestService连接到您的服务器。
至于客户端游戏托管,我相信您正在寻找的词将是P2P。
在flash/flex中有实现P2P的方法。
http://www.flashrealtime.com/basics-of-p2p-in-flash/
是一种很好的资源。
https://stackoverflow.com/questions/7953501
复制相似问题