• 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个

  • 相关阅读:
    PYTHON ASYNCIO: FUTURE, TASK AND THE EVENT LOOP
    【Python】迭代器、生成器、yield单线程异步并发实现详解
    Python函数式编程
    利用python yielding创建协程将异步编程同步化
    Understanding Asynchronous IO With Python 3.4's Asyncio And Node.js
    MySQL视图-(视图创建,修改,删除,查看,更新数据)
    菜鸟使用MySQL存储过程and临时表,供新手参考,请高手斧正
    Mysql存储过程(六)——存储过程中使用临时表
    show processlist结果筛选
    大数据文件编辑
  • 原文地址:https://www.cnblogs.com/xuanmanstein/p/9173587.html
Copyright © 2020-2023  润新知