KBEngine
大白话解读KBEngine服务器引擎
第一期——搭建运行环境并运行DEMO
Notice:本文章可在“Angelic47——个人站点”、“KBEngine论坛”与“KBEngine 官方QQ”发表,版权由Angelic47和引擎作者所有,其他人转载时请注明来源,否则视为侵权行为!
0x00:写在前面的话
不知怎么了哈,这年头已经成了钱的时代了,什么东西都问你要钱,如果你是专业做网络的你就应该更深有体会。
内个,什么photon服务器引擎,名字喊得挺响亮的,什么“光子”服务器引擎,据说效率也很高。但是人家就是收费呀,人家拿这个吃饭呀!如果你不花那些冤枉钱人家就给你限制人数。而且你还不好破解,人家的防盗版严着呢。
其他服务器引擎要不就是效率不够,要不就是功能太少,再或者就是外部dll彻底了断了你跨
平台的愿望。
然后我们就到了KBEngine引擎是不是?嗯,先夸一下KBEngine引擎伟大的作者,抽出自己的时间来写开源程序,而且写得还这么好,精神可嘉有木有?
但是KBEngine也有一个很大的缺陷呀,那就是官方教程竟然没有,而且国内基本上就没有会用的,即便会用了也不会单独给你写个教程。KBEngine自带了几个demo,但是区区几个demo能拿来做教学么?经验稍微少一些的程序猿就要栽了,刚入门的新手就更别提了。
这篇文章就是为了我们这人写的,虽然说我也不是非常熟练KBEngine,但是至少有个像模像样的参考文献呀有木有,至少能让你入门的时候少走几个弯路。
本文力在减少术语的使用,也就是说,这篇文章可能对你写论文神马的起不到任何帮助作用,但是一个显著的特点就是易懂呀是不是,全文都是大白话,就是为了方便你理解这些东西的。如果我没猜错的话稍微有点计算机基础的小学僧应该是能看懂的。所以,本文废话可能很多,编程大牛可以挑挑捡捡的看,遇到重点了我会用蓝的字体标一下。至于完全没有编程经验或者服务器搭建经验的新手,可以捎带着学一下Python语言,不需要太细致,因为本文有很多东西都比较基础。
嗯,回来大家熟悉了别忘了对这个文章进行查漏补缺哈,这样你也可以写上“版权由XXX所有,未经允许转载则视为侵权”这样的话了。
废话就说这么多了,下面开讲!
什么?一到讲课又睡觉了?把你的眼睛瞪圆了!看你会不会被我的语言给逗笑。
0x01:KBEngine是个毛玩意
呃,当你看到这里了你应该知道KBEngine是个什么东西了,没错,就是个服务器引擎嘛。
但是这形容的不够完全,比如我说你是个人,你就真的和人一样么?人和人之间差别大了去了。
KBEngine是一个源代码开放的服务器引擎。什么是源代码开放?通俗的说,就是人家作者把程序的“工程文件”放出来了,你可以改别人的代码,然后根据自己需要各种改呀,到最后成为XXX专版。看到这里一些比较追求个性的同学手痒痒了是不,如果你有时间就可以改着玩玩,谁让这是自由软件呢
不仅如此,KBEngine是用Python语言作为游戏逻辑编写的引擎。诶,Python不是大名鼎鼎的“大蟒蛇”语言么?对呀,就是这货呀,这货支持不关服更新(热更新)呀,你做好了新服务器都不用把原来的服务器关闭,直接玩家不掉线更新呀有木有?
更厉害的是,人家KBEngine不一定非得用在orge和unity3d引擎上面。人家的客户端是源码,也就是说你如果水平很高的话完全可以做一下“移植”,像一些页游呀,flash呀,甚至是易语言程序呀,或者是哪些听都没听说过的东西呀,你完全都可以用KBEngine进行开发,谁让KBEngine的自由性这么高呢,人家理论上支持所有游戏呢,只要你使用了KBEngine作为数据通讯的“规则”即可。subtracting
至于剩下的特性,KBEngine都已经写得很明白了,这里不多说~有意者自己出门欣赏去
停~把你的视线从移回来,现在不是你要看的时候,还没说完呢
既然有这么好的服务器引擎了,那么我们为什么要花那些冤枉钱去买那些付费引擎呢?这下子恐怕以服务器引擎为生的那些公司要跪掉了,哈哈
0x02:把官方的disintegrateDEMO程序跑起来
“诶,明明是引擎开发教程么,你丫的教什么运行DEMO?”
得,别急,想要开发引擎你好歹也得知道当你开发好了之后怎么跑起来吧,那么跑DEMO无非是一个绝佳的选择,这能让你认识一下这个引擎到底是长什么样子的。
(学习阶段我们暂时采用windows系统,至于linux我们后来会讲)
这就是KBEngine的那堆DEMO程序了吧,有些同学比较冲动呀,上来就直接双击!(win)startdemo_server.bat这个文件了,然后看到爆了满屏的窗口之后吓得全部关上了,胆大一点的就接着双击了!(win)startdemo_client_ogre.bat这个文件,然后惊奇的发现登陆不进去。
然后这同学就骂娘了:“我****,为什么这个引擎不能用?”
对于这种同学,我们都要保持队形对他们说“呵呵呵”(喂,师德呢),难道没看到人家还给了个installs文件夹么,呀,这就是粗心的结果呀!
让我们打开这个文件夹,然后……诶,这是什么?
现在让我来解释这两个安装程序分别安装的是神马东西。mysql-essential-5.0.87-win32.msi是mysql数据库。python-3.3.4.msi是Python 3.3.4的安装程序。
malloc是啥意思
对于后者我们很好理解:哦,原来这东西就是Python语法解释器呀,我们的引擎就是用这货的呢,那么为啥不给装上呢,于是很欢乐的装到电脑上去了
而对于前者,做过网络的可能明白是啥东西,但是如果是刚刚入门服务器开发的可能会不认识。
嗯,数据库这个词不知道大家听说过么,比如一些玩家的账号呀啥的就存在这里面呢。我可以这么说,现在是个网站后面都有一个数据库。数据库存储的就是些基本信息,如果你用软件打开将类似Excel(你可以用navicat或者phpmyadmin进行连接数据库),然后连接到数据库的那些东西要做的就是“查表”(PS:查的是“数据表”,不是水表),把数据查出来,然后加以利用。
数据库很强大的说,你可以用任何东西连接到数据库,然后进行各种各样的修改。一些学过PHP或者易语言的可以试试,用自带的连接数据库函数连接一下,然后随便执行几个数据库命令(数据库命令(SQL)是个很复杂的东西,本文意在通俗,不多讲,有意者可以自学一下)玩玩。如果你会PHP而且对KBEngine的数据表结构很熟悉,那么你很快就能开发出一个网页注册、支付宝付款的东西了!没错,数据库就是这么强大。
哦,原来mysql数据库就是这货呀,难怪我们引擎也用到了,那就装上呗!
于是我们的电脑上就多了这两个生物。实测证明,对电脑影响不大,不需要考虑卸载。
诶,这时候有些人又急了:“你打了这么多字了,我都看烦了,我究竟什么时候才能把DEMO程序开起来?”
我说,同学,我打字比你还累,手都酸了有木有,现在你还不能开启DEMO服务器(啊……),因为在windows系统下面,你还有比较重要的一步没做呢。
首先,打开你的Mysql数据库安装文件夹,然后打开my.ini这个文件。什么?没有这个文件?不可能,仔细总能到的。不服的话可以使用电脑自带的搜索功能搜索。
“啊……这是什么,我看不懂怎么办”
“啊……这是什么,我的为什么和你的不一样”
这都是小事,看不懂或者和我的不一样都不是问题。你不需要理解这里面的东西,你只需要按照我告诉你的操作来就可以了。
把下面带的那行字加进[mysqld]标签(通常这个标签在开头附近或者结尾附近)下面即可:
lower_case_table_names = 0
然后看起来会是这样:
有人说:“诶,我的[mysqld]标签下面有很多东西呀,而你的只有个port=3306,你让我怎么加?”
我说,你太谨慎了,原来有的东西你直接无视即可,回车换一行,把这句话插进去即可。
然后,我们保存,关闭这个文件。
这句话什么意思呢?这句话是让你的数据库对大小写敏感,这里给大家补一点linux的东西,linux系统下面对于abcAbc是两个完全不同的文件,数据库也是一样。然而我们正在用的windows系统却将abcfopen打开文件成功返回值Abc看做两个相同的东西,不信的话可以新建一个文件夹试试。由于KBEngine要求必须要对大小写敏感,所以你就要手动开启这个功能。
当然,这条语句只对数据库起作用,对电脑的其他文件不管用。
嗯,现在还差一步呢!
点击开始——所有程序——命令提示符(windows8用户请随便打开一个文件夹,然后选择“管理员权限的命令提示符”)
然后,呃,黑框框,我中病毒了么?别紧张,以后你要经常面对这东西,这叫“控制台窗口”。
然后你要做的是,把这两句话输入进去:
net stop mysql
net start mysql
如果你看见“mysql服务已经启动成功”,那么说明对了,我们继续往下走。
这两个命令什么意思呢?这两个命令是让你重启数据库服务。还记得刚刚你修改的my.ini文件吧,你直接修改了人家可是听不进去的呢~是不是有种想骂街的感觉?诶,这时候我们就要让数据库重新加载,把你这句话加载进去。于是我们就执行了这两句话,让数据库嗝屁掉,然后原地满血复活。
好了,这时候我们要给数据库建立几个账号,数据库和QQ号一样,你要想用必须要有账号。然而这个数据库是你建的,你是数据库的管理员,所以你有权限搞账号。
我们以navicat为例,对数据库进行操作。
先点connection,连接到数据库。
然后按照如下格式填写:
然后OK掉。
然后双击你新建的这个连接,登录进数据库。
然后你就会看到数据库里面的东西了是不,OK,无论你看到什么都不需要乱动,除非你经验很足,要不然数据库崩溃我可不管。因为你现在刚刚安装好数据库,里面的表可都是系统表呢!弄坏了就挂了~~
OK,然后我们选择Console,也就是登陆到控制台。
nginx代理节点不在同一个地区
嗯,我们应该会看到如下界面:
这预示着什么呢?我们又要打代码了……没事,有我在呢
计算机入门自学教程python
use mysql;
delete from user where user='';
FLUSH PRIVILEGES;
grant all privileges on *.* to kbe@'%' identified by 'kbe';
grant select,insert,update,delete,create,drop on *.* to kbe@'%' identified by 'kbe';