KBEngine源码阅读笔记(注册)
KBEngine与Unreal
1客户端 KbEngine 中
注册了一系列事件,本次从创建账号开始
可以看到最终调用
调用登录服务器中的 reqCreateAccount 方法。
登录服务器:最终将数据发送至dbmsr
dbmgr 服务器 注册账号信息经过一系列的验证将消息压如队列。
最终 DBTaskCreateAccount 这个类里面,最重要的函数是 db_thread_process,是子类真正做的事情。
这个类里,presentMainThread这个函数,是持久化执行完的回调调用,在这里持久化结束以后调用的函数就是onReqCreateAccountResult
可以看到最终调用 loginapp 中LoginappInterface::onReqCreateAccountResult 将数据发送至客户端
如果对楼主有帮助,给个采纳好不,谢谢啦
Photon和KBEngineunity3d是最适用Unity3d游戏开发的两个服务器引擎,但它们还是有区别的,只有清楚地了解区别在哪才能正确使用,下面简单描述下两者的共同点和不同点。
对于大部分的程序员语言简直就是宗教信仰。
Photon使用C#开发,当然使用者也是用C#进行各类游戏功能开发。前后端同种语言,这对使用Unity3d游戏开发也有很大的好处。
KBEngine使用C++开发,逻辑开发是用python,也是很不错很快速的。
开源与收费情况
Photon是Exit Games公司的产品,不开源,有好多种收费模式,官网上可以看到。开发阶段可以用免费的license,后期可以看流量用户活跃度来选择付费模式。后续的支持,似乎是免费的,你可以选择邮件或是到论坛发帖求助,当然是E文。
KBEngine是国人开发,开源免费,但从官网上并没有看到商业使用的案例。有中文论坛,你可以在论坛上向开发者求助。
虽然两者的模式不同,但作为一个Unity3d游戏开发者,我们最希望的其实是把游戏引擎当作一个安全稳定的黑箱。
操作系统
之前说了Photon使用C#开发很自然的,配套的工具也是使用C#,比如最重要的PhotonControl。所以开发环境和生产环境最好都是windows。
虽然在跨平台上有mono,在服务器代码部分是系统无关的,但是不管你信不信,我是不信它的一套窗体工具也能运行在Linux下。反正,官网说法是,开发和生产环境都是用windows。
KBEngine建议开发环境选择Windows,生产环境选择linux。毕竟你总不希望开一组服务器打开9个Console窗体,一不小心把哪个点X了吧~
协议
Photon有自己的序列化反序列化方式,你也可以使用protobuf这类的来做应用层传输协议。
KBEngine在这方面表示不支持自定义协议,它帮你选择了有效的方法来处理,如果你习惯了他规定的方式,会喜欢上的。
看法
在功能上,我毫无疑问地更喜欢KBEngine,脚本化和自动持久化是极富魅力的功能。而Photon几乎没做这方面的功能,可能和老外的观念有关系。就目前我对两者功能的理解看来,Photon其实是个和SuperSocket差不多的东西,而SS是作为轻量级服务器框架存在的,Photon却是说自己是Unity3d游戏引擎,除去提供的MMO示例代码(未解读),没看到什么游戏引擎的魅力。
编程本就贵在坚持,这样各种语言换来换去,本就无法成功。看你的问题,主要是耐性不足。
如果排除那些没有什么前途的偏门学法,只考虑编程语言排行榜前10的语言来学习。而且要体现语言的泛用性(也就是一门语言不能仅局限在一个领域内),就比如PHP或RUBY,尽管很受热捧。但其实除了做网站,它们几乎什么都做不了。
那么最容易入门,而且最不枯燥的学习路线,只有两条。
一条是从网页入门,学JAVASCRIPT,不要以为JS只是用来做网页特效的。JS其实几乎无所不能。尤其是移动开发和嵌入式。 而且WIN8之后,还支持用JS写WINFORM程序了。而且不用搭建运行环境,有个浏览器就能干活儿不过这条路线看来你已经放弃了,我也就不多说废话。
那么另外一条,就是python了。 python是当今世界上最为干净整齐的语言了。所谓简洁干净,见到语法你自然一目了然。就像写诗一样,每条语句都整齐划一。
得益于语法的简洁,小学生都能轻松入门。而且有好几本关于PYTHON的书,就是写给儿童的,比如有一本叫《和孩子一起学编程》。案例也都是做些贪吃蛇,俄罗斯方块之类的小游戏为主。
尽管这门语言入门简单,但却博大精深。它的应用领域类似JAVA。 JAVA能做的,PYTHON也都能做。。且学习过程比JAVA要容易的多。。。成功案例也数不胜数。。。比如北斗定位系统,就是用PYTHON写的。。
其唯一的缺点是运行效率不高(不过JAVA的运行效率貌似也不怎么样)。PYTHON的前景也很不错的,是谷歌的力推的语言,长期占据编程排行榜前十名
用途方面,网站后端啊,写个界面啥的,自然不在话下。而它最强大之处有三点:
1,人工智能虽然没办法统计数量,但世界上的人工智能机器人,用PYTHON编写的一定是最多的。 就像谁也说不清中国人到底盗版了多少张WINDOWS光盘,但人人都知道绝对是世界第一。同理,人工智能是PYTHON的天下
2,游戏服务器端,就像unity 3d在游戏开发行业所向披靡一样,游戏服务器端也有一个称王称霸的引擎——KBEngine 它以PYTHON作为脚本语言
3,影视特效 NUKE,CINEMA4D,MAYA,REALFLOW,HOUDINI这些影视行业的主流软件的脚本,全是用PYTHON编写。如果没有PYTHON,好莱坞特效也绝不会有今天这般强大
作为一名业内资深的游戏开发人员,经常会遇到实习的新同事在工作中会问到这样的问题:
工作中到底有哪些开源游戏服务器框架,该去值得学习呢?
囊括到nodejs 、java、C#、golang 、c++、python 等技术栈有各种各样的游戏框架。
本文给大家总结了一些github上star和fork比较常用的且有一定数量的较为完整的框架做了一个说明,大家可以往下看。
地址: https://githubcom/cloudwu/skynet
基于此引擎开发的游戏众多,很多棋牌小企业在用,例如简悦的 陌陌争霸 、 食物战争 等等很多产品
地址: https://githubcom/NetEase/pomelo
一花科技等棋牌在用
地址: https://githubcom/ketoo/NoahGameFrame
代表作全民无双
地址: https://githubcom/kbengine/kbengine
已经被电魂网络收购
地址: https://githubcom/egametang/ET
经过产品验证并且教程比较完善
地址: https://githubcom/topfreegames/pitaya
zooba appstroe排行很高的moba、吃鸡类游戏
但是,像c++类的框架对新手要求较高。
亦或者nodejs类框架性能确实差一些,毕竟它是针对io密集型。
阿博自己的话使用的是pitaya这套框架。毕竟支持分布式使用的技术比较新,也经过各种验证。 其他的就先不做评价,留着给大家发表一下意见。
毕竟,只要适合自己的才是最好的。
是的不
首先,我得说明的是,目前市场上新人很难去做pc游戏开发,要么是做页游要么是手游。
页游不清楚我就不说了,手游里面,客户端主要就是c2d和u3d。
如果你想做客户端,那么你可以转学u3d,因为它使用的语言是csharp,这个语言和java相似。网上unity的教程也很多,你随便找一下就有了。
再说说手游服务器,其实我入行服务器还是挺巧合的,当初本来是打算做客户端的,都入职了,因为招不到服务器,就让我转服务器了。。
服务器的教程,我至今也没找到,而且也找不到系统的教程。
开源的服务器框架也只熟悉kbengine和scut。其中一个是cpp做底层python做开发的,一个是csharp做开发。而且scut已经两年没有更新了,应该是死掉了。
所以,想要学服务器开发,得碰点运气。
java服务器目前主流框架技术有网络层netty或mina,数据协议protobuf,数据库mysql,缓存数据库redis,jdbc一般是mybaits或者jpa,项目管理maven,设计层面spring
然后还需要熟悉多线程,linux的基本操作,git或者svn。
差不多了,这些都有个大致的了解,会用,应该就能找到工作了。
后面再深入需要学习的也挺多的,到时候你再根据业务需求自己琢磨着学吧。
0条评论