对不起我的英语语法:((我试着学习)
我想尝试用Unity3d编写在线回合制游戏。 我希望人们可以使用他们的用户名和密码登录,并且可以从不同的设备播放,例如: 来自android / iphone的1名玩家和来自facebook的第二名玩家 或者来自网络的1 - 来自平板电脑的第二 等等... 现在我想创建第一场比赛1比赛(2名选手) - 但也许在这个功能中我将为多人开启一个新模式
卡片游戏很简单。我是c#developer,所以我将用c#编写代码。
我的问题是:
1)我必须使用TURN BASED游戏(如果你能给我链接) 我认为WCF或WebAPI - 适用于跨平台 那么什么是最佳实践???
2)我想在游戏中集成一个高级功能 - 您可以在游戏内建议计费系统?哪家公司工作更好?
3)我也可以在JavaScript上编写代码 - 如果给我加性能?
4)游戏授权: 今天的最佳做法是什么? 用户在我的系统中创建了帐户,或者更好地通过他的Facebook帐户登录用户?
5)我如何同步。移动设备和Facebook游戏之间?如果可能的话? 我可以在哪里保存他的证件?如果在手机/平板电脑中,我可以保存在本地数据库中,在网络中?在Facebook的哪个地方?
6)服务器 - 哪里发布服务器端的最佳位置?亚马逊云?不是吗?答案 0 :(得分:4)
Unity本身支持网络。但是还有像Photon Unity Networking这样的其他插件,它们是统一网络的增强版本。它还支持基于Turn的游戏加上它是一个支持iOS,android和web的跨平台。 Photon Engine for Unity Networking
我认为Billing System你的意思是应用程序中的应用程序。我使用过UniBill,它可以很好地与iOS,GPlay,亚马逊等商店一起使用。通过这么少的努力,您可以集成插件。 Unibill by Outline Games
我认为C#就足够了。
你可以使用facebook足够好。您还可以添加简单的访客登录以进行授权。访客将根据统一提供的Unique User ID进行注册。
要存储数据,您可以使用Parse第三方插件。我试过了,效果很好。如果您要使用Web应用程序,请尝试使用他们的Rest API。它将适用于所有支持的平台。
答案 1 :(得分:1)
Q1)我必须使用TURN BASED游戏(如果你能给我链接)我想到WCF或WebAPI - 对于跨平台那么什么是最佳实践???
WCF可能不是最佳选择,尽管它起作用,但在典型情况下,您可能希望使用Socket或Websocket进行通信。
Websocket的好处是,连接一旦建立,就会保持活动状态,这与使用请求 - 响应模型的http协议完全不同。使用http,一旦发送/接收消息,连接就会消失,如果你有大量的消息,你需要重复设置有开销的信道,无论是有效载荷还是频率都很大。
如下所示,Websocket的性能远优于基于http的通信,有关详细信息,请参阅this link。
另一种选择是使用Redis或MongoDB,它内置了pub-sub模型的支持。既然你在谈论纸牌游戏,你可能希望:
如果您使用Redis,一个客户端发布消息(例如卡片翻转),然后让所有其他客户端订阅此消息,然后所有其他播放器(Android,iOS,Web,facebook,平板电脑无论如何立即得到通知,然后由你来实现你的游戏逻辑。
第三个选项是使用xxx-MQ(例如RabbitMQ,ZeroMQ,MSMQ,ActiveMQ)这些本质上是消息代理,您可以轻松地使用pub-sub模型实现回合制游戏逻辑。
答案 2 :(得分:0)
3)我也可以在JavaScript上编写代码 - 如果给我加性能?
没有什么不同。 Here is performance test 结果是:
C#的平均值为8,075毫秒,Unityscript的平均值为8,142毫秒。所以C#有点领先,