- 最后登录
- 2019-12-25
- 注册时间
- 2012-8-24
- 阅读权限
- 90
- 积分
- 71088
 
- 纳金币
- 52344
- 精华
- 343
|
1,语言
对于大部分的程序员语言简直就是宗教信仰。
Photon使用C#开发,当然使用者也是用C#进行各类游戏功能开发。前后端同种语言,这对使用u3d有很大的好处。
KBEngine使用C++开发,逻辑开发是用python,也是很不错很快速的。
2,开源与收费情况
Photon是Exit Games公司的产品,不开源,有好多种收费模式,官网上可以看到。开发阶段可以用免费的license,后期可以看流量用户活跃度来选择付费模式。后续的支持,似乎是免费的。你可以选择邮件或是到论坛发帖求助,当然是E文。
KBEngine是国人开发,开源免费,但从官网上并没有看到商业使用的案例。有中文论坛,你可以在论坛上向开发者求助。
虽然两者的模式不同,但作为一个游戏开发者,我们最希望的其实是把游戏引擎当作一个安全稳定的黑箱。
3,操作系统
之前说了Photon使用C#开发,很自然的,配套的工具也是使用C#,比如最重要的PhotonControl。所以开发环境和生产环境最好都是windows。
虽然在跨平台上有mono,在服务器代码部分是系统无关的,但是不管你信不信,我是不信他的一套窗体工具也能运行在Linux下。反正,官网说法是,开发和生产环境都是用windows。
KBEngine建议开发环境选择Windows,生产环境选择linux。毕竟你总不希望开一组服务器打开9个Console窗体,一不小心把哪个点X了吧~
4,协议
Photon有自己的序列化反序列化方式,你也可以使用protobuf这类的来做应用层传输协议。
KBEngine在这方面表示不支持自定义协议,他帮你选择了有效的方法来处理,如果你习惯了他规定的方式,会喜欢上的。
5,热更
我始终认为一个游戏引擎要脱离网络通信库的范畴,热更和持久化这两部分是非常重要的。
Photon不支持热更,当然你可以自己做,也很方便,目前C#对很多脚本语言JS,IronPython,TypeScript等之类的都有不错的支持。如果你对python的语法感兴趣可以读读我的这一篇文章:
http://www.cnblogs.com/pasoraku/p/4906715.html
如果你不做热更,Photon还有一种特殊的方式,他会把你的服务器dll在加载之后生成cache,而如果你的dll在服务器运行时更动了,会自动重启。
这里有两个配置选择:在Application节点,EnableAutoRestart="true"和ForceAutoRestart="true"。默认是后者,也就是dll一更动,就重启。前者的话,就是当dll更动的时候并不断开原来的客户端连接,而新来的连接将会执行新覆盖的dll的逻辑,等到旧的连接全部断开之后,旧的appDomain就被回收了。如果是卡牌游戏,注重单机玩法的可以用用,两个版本间的内存是隔离的。
KBEngine支持热更,你在运行期间改动python脚本,会即刻生效,对于那些容易写出bug的同学是福音那
6,持久化
刚刚提到了引擎的持久化,这是像我这样懒懒的程序员很关注的东西。
Photon的说法是他支持你使用任何流行的数据库或是nosql,其实是不帮你做数据持久化的工作。
KBEngine会自动持久化备份,但你必须使用mysql,你只需要提供一个mysql的连接地址,帐号密码,数据库名,后面的一切就不用操心了。
7,示例
两者都有unity3d的客户端插件和示例代码。两者都提供了mmo的示例代码。
谈谈我的看法。
在功能上,我毫无疑问地更喜欢KBEngine,脚本化和自动持久化是极富魅力的功能。而Photon几乎没做这方面的功能,可能和老外的观念有关系。就目前我对两者功能的理解看来,Photon其实是个和SuperSocket差不多的东西,而SS是作为轻量级服务器框架存在的,Photon却是说自己是游戏引擎,除去提供的MMO示例代码(未解读),没看到什么游戏引擎的魅力。在
但是除去几个功能,Photon的开发、调试环境却是我很喜欢的,你有强大的VS可以使用。而且在官网上你能看到成功的游戏案例。再加上对收费产品莫名其妙的信任......
|
|