KBEngine0.1.13-源码+客户端-配置过程记录(详细)

来源:互联网 发布:淘宝客内部优惠券源码 编辑:程序博客网 时间:2024/05/21 06:29

一:KBEngine 简介

1.1:概览

Q群( kbengine ):16535321 ;

http://www.kbengine.org/

 

     一款开源的支持多人同时在线实时游戏的服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互,使用KBEngine插件能够快速与(Unity3D、OGRE、Cocos2d、HTML5,等等)技术结合形成一个完整的客户端。服务端底层框架使用c++编写,游戏逻辑层使用Python(支持热更新),开发者无需重复的实现一些游戏服务端通用的底层技术,将精力真正集中到游戏开发层面上来,快速的打造各种网络游戏。

 

1.2: 下载按(Down) 钮与 Demos按钮 的区别

1.2.1:Source

Tips: 因为本人刚开始忽略,所以全部直接下载了,没有下载release 版本,但是经过对比与 release 版本没有差别,所以下面如果看到 xxx-master, 请忽略好了....

 

Source: 源码下载,下载后自己编译的,不断更新的( 建议下载 release版本的 )。

 

 

Tips: 可以点击上图的 release 然后进入以下页面下载发布版本:

1.2.2:Download

Download : 里面是编译好的服务器,下载后在教程哪里可直接到安装那一步,以及以前版本的服务器下载。

 

二:服务器下载及编译

1:下载Source下的 kbengine-master ( 目前最新 0.1.13 )

1.1:目录概览

Tips: 如果在download 下载的版本,文件目录放的位置可能有点不一样,我看了下,例如那个 docs文件夹,放到了 kbe 的里面,同个版本内容是一直的,只是放的位置不同。

1.2:阅读README.md 文档

Tips: 里面有些可用的信息,但是有些链接已经不可用了,可能是以前留下的,还没整理

 

2:查看官方教程

Tips: 这里有 windows 和 linux 两种,这里只弄windows的。

 

2.1:文档中一些关键点

文档中对配置文档、目录结构、服务器架构、API 介绍、压力测试,等都有介绍需要看一遍。

2.2: 需要的软件

在Download界面里面的

解压后的目录包含了需要的软件,也可以自己去官网下载。

 

3: python安装

3.1:提示:

Tips:过程中,有个选项默认没有选上的,记得选上,将python的路径添加在环境变量中。

 

3.2:安装python

 

3.3: 测试

 

4: MySql

4.1: 安装 MySql

 

4.2: 测试

net stop mysql  ( tips: mysql 为安装时制定的服务名称,选择添加命令行的时候 )

net start mysql

5: 服务器换进配置

5.1:自动安装失败

 

 

 

5.2: 环境变量设置

可以跳过这里,因为!(win)fixedstart.bat 里面在启动时,会自动设定环境变量的了。( 但如果代码启动,则需要设置)

 

       KBE_ROOT= C:/kbengine/

       KBE_RES_PATH=%KBE_ROOT%/kbe/res;%KBE_ROOT%/demo/;%KBE_ROOT%/demo/res/

       KBE_HYBRID_PATH= %KBE_ROOT%/kbe/bin/Hybrid64/

 

       (Note:Windows system account no UID attribute, Users need to add this environmentvariable,

       UIDmust be greater than 0 and less than 32767)

      

       UID= 1

 

 

 

5.3:设置为大小写敏感( 区分大小写 )

找到MySql的my.ini 文件,找到[mysqld]加入下面的内容:

       lower_case_table_names= 0

 

重启MySql:

       netstop mysql

       netstart mysql

 

查看一下是否设置正确, 必须为0:

       mysql>SHOW VARIABLES like "lower_case_table_names";

       +------------------------+-------+

       |Variable_name          | Value |

       +------------------------+-------+

       |lower_case_table_names | 0     |

       +------------------------+-------+

       1row in set (0.00 sec)

 

创建一个数据库检查:

       mysql>create database NEWTEST;

       mysql>show databases;

       +--------------------+

       |Database           |

       +--------------------+

       |information_schema |

       |NEWTEST            |

       |mysql              |

       |test               |

       +--------------------+

       4row in set (0.00 sec)

 

5.5:创建一个数据库名字为: “kbe”

       mysql>create database kbe;

 

5.6: 创建用户

删除匿名用户:

       mysql>use mysql

       mysql>delete from user where user='';

       mysql>FLUSH PRIVILEGES;

 

创建一个数据库用户,名字与密码都为 “kbe”

       mysql>grant all privileges on *.* to kbe@'%' identified by 'kbe';

       mysql>grant select,insert,update,delete,create,drop on *.* to kbe@'%' identified by'kbe';

       mysql>FLUSH PRIVILEGES;

 

5.7:登录测试

如果要修改MySql 的默认端口不是 3306 则需要修改服务器的一下文件

kbengine_defs.xml->dbmgr-><port>330x</port>

      

在MySql的安装目录找到mysql.exe 在命令行窗口进入该目录下执行下面语句:

              C:\mysql\bin> mysql -ukbe -pkbe-hlocalhost -P3306

 

5.8: 如果需要修改数据库名:

       在res\server[kbengine_defs.xml] 中的 dbmgr 区域。 (recommended demo\res\server[kbengine.xml] overloadedmodifications).

 

6: 编译

6.1: 使用VS 打开( 目录:. \kbe\src\kbengine_vs100.sln ),这里用 VS 2010 .

6.2:如果有项目编译不成功

Tips: 在编译的时候可能会出现,几个项目编译不成功,可能涉及编译顺序的问题,这时点编译多几次即可:

 

 

7:启动服务器

到kbe\bin\Hybrid 目录下( 如果是64位的在 kbe\bin\Hybrid64 目录下 ) 运行!(win)fixedstart.bat 批处理

Tips: 如果服务器启动显示错误,firewall 之类,百度下:怎样解除被防火墙阻止运行的程序。

 

 

8: 服务器错误(Baseapp:handleGameTick:Invalid timing resut )

服务器报错如下:

 

管理员解答过程:

 

kbe(3603661) 2014/9/16 11:05:01

你是什么cpu?


尔_(304140546) 2014/9/16 11:13:15

 

kbe(3603661) 2014/9/16 11:17:49
你改下代码重编译试试。
cstdkbe/timestamp.hpp
把那个 define KBE_USE_RDTSC 注释了

//define KBE_USE_RDTSC

 

 

尔_(304140546) 2014/9/16 11:13:15

重编译之后就只有这个了,其他运行良好:

 

kbe(3603661) 2014/9/16 14:41:06
那个不算错误, 是你客户端下线了一些在途中的包到达后找不到实体。
我待会取消这个输出, 早期用来做调试的。

 

 

 


尔_(304140546) 2014/9/16 14:37:43
不过有个奇怪的的是,我运行 !(win)fixedstart.bat 后运行cluster_controller.py 就会再启动几个服务器,然后会报错,说广播错误,叫我检查防火墙

kbe(3603661) 2014/9/16 14:41:06
fixedstart启动, 不要运行cluster_controller.py start。
重复开启多组服务端他们之间会造成冲突, 有一些ID重复了, 在启动脚本中设置的。


尔_(304140546) 2014/9/16 14:42:56
噢,明白~!好的,谢谢!
我再研究下,然后写份文档总结下,到时上传

 

 

 

三:客户端kbengine_unity3d_demo-master编译

1: 下载

1.1:在官网中依次打开链接

 

1:2:服务器中的 README.md 里面也有地址

 

 

2:编译客户端

2.1:打开README.md 教程:

 

2.2: 按教程下载插件

https://github.com/kbengine/kbengine_unity3d_plugins.git

 

上一层目录:

 

2.3:解压到对应的目录下

clone toAssets/plugins/kbengine/kbengine_unity3d_plugins

 

 

2.4:编译后直接运行 .exe

Unity Editor -> File -> BuildSettings -> PC, MAC & Linux Standalone.

 

2.5: 如需修改IP与端口( 默认不需要修改的 )

       Changethe login address:

              kbengine_unity3d_demo\Assets\Plugins\kbengine\clientapp.cs-> ip ( 修改该文件里面写的地址与端口)

 

(报错,未完成,可能是因为使用的是Unit4.5 的原因,如果知道为什么情告诉一下我:Q:304140546 谢谢!因本人不懂Unity就不研究了)

四:客户端kbengine_unity3d_warring-master

1:下载

https://github.com/kbengine/kbengine_unity3d_warring

 

2:阅读配置文档

3:添加插件

下载地址: https://github.com/kbengine/kbengine_unity3d_plugins.git

插件源码请放置在:Assets/plugins/kbengine/kbengine_unity3d_plugins

Tips: 解压后可以移走压缩包。

 

4:创建AssetBundles

4.1:Unity 打开项目

 

 

 

这个错误没关系, 转资源的时候报的, 清除了就没了。或者你重开编辑器。



4.2: 创建AssetBundles

unity3d(菜单上)->Publish->Build Pulish AssetBundles - autoAll

              期间可能一直出现"Moving file failed",需要点击"try again"让其继续,

              这可能是unity3d在移动文件时文件被占用造成的。

              执行完毕后检查 Assets->StreamingAssets是否有内容。

 

 

 

 

 

 

 

4.3: ( 不成功跳过 )生成服务端寻路数据:生成服务端寻路数据:

关闭Unity,将Assets\Plugins\cai-nmgen-rcn(generatenavmesh).zip解压放当前目录下并重启unity3d编辑器, 然后执行如下步骤:

unity3d资源浏览器中选中(非菜单):

Assets->Nav_build->xinshoucun->NavmeshBuild->Build& Bake, 等待生成完成之后

 

unity3d资源浏览器中选中(非菜单):

Assets->Nav_build->xinshoucun->CAIBakedNavmesh->Save,将其中srv_xxx.navmesh放到服务端kbengine\demo\res\spaces\xinshoucun中

 

(注意: 生成完毕后建议删除cai-nmgen-rcn(generatenavmesh).zip解压出来的文件,会造成无法导出游戏的错误,原因未知。)

(如果有更多问题请咨询插件作者: http://www.critterai.org/projects/cainav/)

 

 

4.4:配置登录IP地址(如果服务端在本机则无需改变):

              kbengine_unity3d_warring\Assets\Plugins\kbengine\clientapp.cs-> ip

 

4.5: 导出WebPlayer项目

       unity3dFile->Build Settings->Scenes In Build选择scenes/go.unity->Platform

       选择Web Player->Build。

 

 

 

 

 

 

4.6: Web服务器部署文件夹结构:

       ->(服务器根目录)

              - StreamingAssets (创建AssetBundles生成的文件夹)

              - ui (Assets下的ui文件夹可以直接拷贝过来)

              - crossdomain.xml

              - initLogo.png

              - initProgressBar.PNG

              - initProgressFrame.PNG

              - index.html

              - Unity3d.unity3d (在unity3d编译时生成的文件)

              - Unity3d.html (在unity3d编译时生成的文件)

 

 

4.7: 把没有的从Unity 项目复制过来

 

 

4.8:配置Web服务器

 

4.9:浏览器打开

直接点开本地index ( 没装插件....,请下载关闭浏览器然后安装 )

 

 

5:错误记录

1: Building Assert Bundles requires Advanced forWebPlayer.

1: 下载WebPlayer 安装

2: 重启电脑( 重点: PS:本人弄了好久,发现不行,第二天来的时候发现没有了这个错误.......)

 

2:Errorbuilding Player:IOException: Sharing violation on pathAssets\StreamingAssets\loadingbar.xml" or"D:\kbengine-0.1.13\kbengine_unity3d_warring-master\Assets\StreamingAssets\loadingbar.xml

 

 

 

 

0 0
原创粉丝点击