kbengine学习1 安装

KBengine一年前就知道了,但是没来得及学(只记得是C++ + python脚本),前一个项目unity3d+fkask+socketio+sqlite硬怼出来的。这半年也没来得及管。(好像当时看,还只是python2)

最近看了ECS架构的文章

《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录

《守望先锋》中的网络脚本化的武器和技能系统

忽然想起了KBEngine,结果发现现在已经叫CBEngine了。。。

又看了一下KBE的文档,发现开发方式很不错:

1 后端用xml的形式,Declarative声明 entity的属性和方法(entity有方法,和ECS还不一样) 。用python具体实现各个entity的class和方法。

也就是说,.def ≈.h    .py ≈ .cpp

2 对变量和方法的作用域划分了 base  cell  client, 但base client 之间,根据def声明的暴露,都可以类似prc的方式访问到彼此。这样,在前后端开发,好像在操作同一套代码。不用py C#各搞一套。

3 根据def,后端能自动生成很多U3d部分C#代码。单人工作的话,直接输出到u3d scripts路径下单独一个文件夹。感觉类似fairyGUI对待UI的方式,很爽。

3 对网络传输部分透明化了.socket传binary stream,似乎u3d下不用bestHTTP pro自己撸了。。。

4 account之类的都做掉了,省的自己写了。

——直观上有这么多好处,所以跃跃欲试(已经纯手撸过C#客户端和py服务器端,这半年多又刷完了《SCIP》《Unix编程艺术》和《流畅的python》不信干不出来!)。

于是,跟着B站视频疯狂的青蛙kbengine的kbengine麻将制作教程,开始学一下。

跟着视频和官网文档注记一下。我不喜欢边看边跟着做,脑袋老是要高并发式的切换,感觉效率低。我喜欢集中一段时间只看视频,然后只实践(我的脑袋就是个单线程效率超低的机器,也搞不起coroutine),

学不下去了,就去干;干不下去了,就去学”。

写这些注记,主要是因为

1官网文档似乎针对的是v1.0的,现在2.0了

2文档的有些细节还是有点简略,我这个笨人还是把细节补记清楚点。

既然视频和官方文档 似乎都建议 开发用win+VS2017 统一调试前后端,我也就照做了。(不然,后端我现在基本是pycharm ssh到linux+docker的,就免了配mysql什么的)

安装

安装部分文档

https://www.comblockengine.com/docs/1.0/install/index/

编译kbe工程:

从github上下载了kbengine-2.0.0-preview4 

解压缩,解决方案vs140.sln在 D:kbengine-2.0.0-preview4kbesrc

用vs2017编译的时候,选成release x64 (之前做科学计算,选x64习惯了,py也是x64的)然后要在解决方案资源管理器 解决方案上右键,“重定解决方案目标”。

安装mysql8.0

(忽然感觉一下从万年不变的5.6一下就8.0了  2333  ,之前用sqlite  postgres redis MongoDB 比较多,反而没太用mysql)

下载:

1 官网 https://dev.mysql.com/downloads/installer/ 

选体积大230M的,防止一遍安装失败重新下载(我就重新弄了一次)

2 下一个页面提示注册,害得我想了半天密码,其实不用管,直接点最下面小字:“No thanks, just start my download”

3 安装

1登录权限不要第一个,选下面5.7那个。

 注意安装好之后,不要前进到initial database,要先去 “C:ProgramDataMySQLMySQL Server 8.0”下(官网文档没说太清楚,导致我在C:Program FilesMySQL找了半天my.ini。。。),看见有了my.ini 就直接进去 

[mysqld]下添加一行
lower_case_table_names=2
形如:

这是百度来的,必须在初始化数据库之前做这一步,否则初始化好了,就不行了。好像是8.0才这样的,我反正因为这个重新安装了一遍mysql。

然后继续next,搞定。

然后按官网文档,用mysql的cli测试建立一个大写字母的数据库NESTEST,OK

全部启动出来的命令行窗口应该是9个

原文地址:https://www.cnblogs.com/xuanmanstein/p/9173587.html