unity3d 网游服务器端如何选择

更多老外对SmartFoxServer和Photon比较的吐槽 http://forum.unity3d.com/threads/48538-SmartFox-vs.-Photon
最近在策划做一个手机网游项目,于是四处寻找合适的服务器引擎,gamecenter和SmartFoxServer 花了不少时间,
SmartFoxServer(据说有各种限制,但是看上去还不错,就是意大利公司的英文文档看上去有些奇怪) 
Photon & Neutron from ExitGames(这个国内九城在代理,刚刚看了一下官网,停运了有没有!!!) 
Unity自带的网络功能(这个,只是支持局域网级别的游戏,离MMO还很远) 
自己写(我这种技术小白,望尘莫及) 
  
翻译研究后,,,

终于被我发现了一个超级好用的引擎Photon。底层是用C++封装了IOCP性能非常高,理论上可以支持30000多的并发。应用逻
辑层采用的是C#作为引擎开发语言,简单易用,不用太担心内存泄露。 比较了下市面上几款商用服务器引擎,Photon的效率高于Smartfox,
更适合做稳定高效的网游服务器。
这款引擎的设计理念是Peer,Peer是每个玩家连接服务器后产生的一个东西,可以理解为Session。单独处理每个Peer的逻辑。也就是说Photo
n封装了消息的分发和多线程,你只要处理好每个Peer自身的逻辑就可以了。避免了多线程设计的复杂性。我推荐如果用Photon的话,尽量不要去实现多线程。
每个玩家连接到服务器后,程序员可以手动把PEER记录到一个列表里,这样便于访问其他玩家的数据,做全局管理用。同样Photon和客户端的
所有通讯都是基于Peer的,它没有组播的概念,如果你要群发消息,或者发送私密消息,你只有通过Peer去实现。相关群发函数SendTo()。这
方面的设计请参考Photon自带的例子:lite。
Photon服务器设计的很灵活,完全可以根据自己需要定义服务器结构。负载均衡 和 服务器分组,这个东西我还没研究到。不过也有相关API可
以处理。
Photon这个引擎是德国人开发的,水平相当不错,相关资料也挺少。

但是Photon最大的问题就是每次都会发个请求去验证什么,好像是检查是不是盗版的,严重拖速度。
关于这个验证大家可以看http://cl314413.blog.163.com/blog/static/190507976201210209312521/

unity3d Photon 浮动证书和非浮动证书


浮动证书  是指无需与硬件绑定的证书,在Photon服务端开始运行,或者连续运行24小时时,需要向Photon的官方服务器发送证书验证请求,官网上的证书也都是这种。

非浮动证书  反过来,就是不绑定硬件的证书。他无需向Photon的官方服务器发送证书验证请求。由于某些应用的环境,比如内网用户,无法成功连接ExitGame的官网的,还有就是一些保密性要求的服务端,就需要使用非浮动证书。 

由于非浮动证书没有连接验证,因此存在被复制、盗用的可能,ExitGame对此作出限制:
1)每台使用非浮动证书的服务器,都必须和硬件绑定。(使用服务器Photon生成的Hardware ID)
2)非浮动证书必须由ExitGame官方颁发。(中国地区用户如有需要,请先联系第九城市,并附上需要绑定的Hardware ID)

Hardware ID 的获得
1)运行Photon服务端的Photon服务。(deploy目录下,<SDK目录>/deploy/<平台>/PhotonControl.exe)
2 ) 查看,右键点击图标,弹出菜单-->License Info-->Hardware ID.

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页