一:KBEngine 简介
1.1:概览
Q群( kbengine ):16535321 ;
一款开源的支持多人同时在线实时游戏的服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互,使用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 environment variable,
UID must be greater than 0 and less than 32767)
UID = 1
5.3:设置为大小写敏感( 区分大小写 )
找到MySql的my.ini 文件,找到[mysqld]加入下面的内容:
lower_case_table_names = 0
重启MySql:
net stop mysql
net start mysql
查看一下是否设置正确, 必须为0:
mysql> SHOW VARIABLES like "lower_case_table_names";
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
1 row in set (0.00 sec)
创建一个数据库检查:
mysql> create database NEWTEST;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| NEWTEST |
| mysql |
| test |
+--------------------+
4 row 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 [email protected]‘%‘ identified by ‘kbe‘;
mysql> grant select,insert,update,delete,create,drop on *.* to [email protected]‘%‘ 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] overloaded modifications).
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 )
三:客户端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 to Assets/plugins/kbengine/kbengine_unity3d_plugins
2.4:编译后直接运行 .exe
Unity Editor -> File -> Build Settings -> PC, MAC & Linux Standalone.
2.5: 如需修改IP与端口( 默认不需要修改的 )
Change
the login address:
kbengine_unity3d_demo\Assets\Plugins\kbengine\clientapp.cs
-> ip ( 修改该文件里面写的地址与端口
)
(报错,未完成,可能是因为使用的是Unit
4.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(generate
navmesh).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(generate
navmesh).zip解压出来的文件,会造成无法导出游戏的错误,原因未知。)
(如果有更多问题请咨询插件作者: http://www.critterai.org/projects/cainav/)
4.4:配置登录IP地址(如果服务端在本机则无需改变):
kbengine_unity3d_warring\Assets\Plugins\kbengine\clientapp.cs
-> ip
4.5: 导出WebPlayer项目
unity3d
File->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 for
WebPlayer.
1: 下载WebPlayer 安装
2: 重启电脑( 重点: PS:本人弄了好久,发现不行,第二天来的时候发现没有了这个错误.......
)
2:Error
building Player:IOException: Sharing violation on path
Assets\StreamingAssets\loadingbar.xml" or
"D:\kbengine-0.1.13\kbengine_unity3d_warring-master\Assets\StreamingAssets\loadingbar.xml