KBEngine源码阅读笔记(注册)

KBEngine源码阅读笔记(注册),第1张

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。

差不多了,这些都有个大致的了解,会用,应该就能找到工作了。

后面再深入需要学习的也挺多的,到时候你再根据业务需求自己琢磨着学吧。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » KBEngine源码阅读笔记(注册)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情