KBEngine ,现更名ComblockEngine,一款开源的游戏服务端引擎,客户端通过简单的约定协议就能与服务端通讯, 使用ComblockEngine插件能够快速与(Unity3D, OGRE, Cocos2d-x, HTML5, 等等)技术结合形成一个完整的客户端。 服务端底层框架使用C++编写,游戏逻辑层使用Python(支持热更新),开发者无需重复的实现一些游戏服务端通用的底层技术, 将精力真正集中到游戏开发层面上来,快速的打造各种网络游戏。
KBE官方文档:
用户手册:https://www.comblockengine.com/docs/1.0/
脚本API:https://www.comblockengine.com/docs/api/
因CentOS7默认数据库是MariaDB,但KBE官方论坛配置教程版本较早,且直接使用的MySQL,配置流程上有了部分差异,所以有了本篇文章,仅供参考。
需要准备的资源:
VMware-workstation-full-15.0.2-10952284.exe
CentOS-7-x86_64-DVD-1810.iso
XmanagerEnterprise5【Xshell5】
Unity3d 2018.*
KBE搭建参考:
搭建参考0:https://www.comblockengine.com/docs/1.0/install/index/
搭建参考1:https://my.oschina.net/u/2418521/blog/485600
搭建参考2:https://wenku.baidu.com/view/a6fb3808876fb84ae45c3b3567ec102de2bddfff.html
辅助备忘:
【MariaDB】
但 CentOS 7 已使用了 MariaDB 替代了默认的 MySQL。
================命令行备忘=================
cd /【返回到系统根目录】
cd ~【返回HOME】Xshell:
ctrl+alt+]【Xshell中断当前执行】
【图形命令行切换】
在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F2切换回图形界面
在命令上 输入 init 3 命令 切换到dos界面 输入 init 5命令 切换到图形界面
================命令行备忘=================
虚拟机安装参考:【注意磁盘空间,建议50G,链接中20G磁盘空间不够用】
https://blog.youkuaiyun.com/babyxue/article/details/80970526
Xshell5安装及登陆服务器参考:
https://www.jianshu.com/p/d5532549c807
通过xshell5正常登陆服务器后,执行如下:
==================== KBE DEMO START ========================
安装虚拟机或阿里云CentOS系统
运行并登陆虚拟机或阿里云
打开XShell |或| 进入CentOS桌面右键——>打开终端
//更新需要用到的库
yum update -y【更新yum】
reboot【更新完毕后重启系统】
yum install openssl-devel【报了缺失】 //yum install gcc gcc-c++ openssl-devel git -y
yum install gcc 【报了缺失】
yum install gcc-c++【报了缺失】
yum install autoconf【报了缺失】
yum install automake【报了版本低】
yum install libtool【报了缺失】
yum install git【报了缺失】
//安装配置数据库【注意结尾是否要带";"分号】
yum install mariadb* -y
systemctl start mariadb.service //启动数据库
systemctl enable mariadb.service //设置开机启动数据库
rpm -qa|grep mariadb //查看mariadb的安装包信息
//创建数据库
mysql -u root
create database kbe; //创建数据库,数据库名为”kbe”
use mysql;
delete from user where user=''; //删除匿名用户
FLUSH PRIVILEGES;
//创建数据库用户,用户名和密码”kbe”,密码默认pwd123456就行,否则DEMO服务端会有问题
grant all privileges on *.* to kbe@'%' identified by 'pwd123456';
grant select,insert,update,delete,create,drop on *.* to kbe@'%' identified by 'pwd123456';
FLUSH PRIVILEGES;
exit //退出数据库操作
mysql -ukbe -ppwd123456 -hlocalhost -P3306 //验证,如果能成功登陆,说明验证成功!
//关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
//下载源码
wget https://github.com/kbengine/kbengine/archive/v2.5.4.tar.gz 【因总是下载中断,改为了CentOS自带火狐浏览器下载,然后拷贝到Home目录下并解压】
tar zxvf v2.5.4.tar.gz
cd kbengine-2.5.4/kbe/src/
chmod -R 755 .
make
//修复Python BUG 暂时无用,最后会重新安装新版,若存在因python无法启动kbe服务端,可尝试先执行此步骤
// cd kbengine-2.5.4/src/lib/python
// ./configure
// make
// make install
//下载服务端和客户端DEMO
//Git克隆服务端DEMO
git clone https://github.com/kbengine/kbengine_demos_assets.git
//启动服务端DEMO
cd /kbengine-2.5.4/kbengine_demos_assets/
sh start_server.sh
//查看一下进程,检测KBEngine各模块是否正常启动
ps
//运行Unity Demo客户端
打开kbengine_unity3d_demo工程
打开start场景
选择场景内kbe_clientapp物体,配置右侧IP地址为实际KBE服务器地址
开始运行
进入游戏 【注册,创建角色,选择角色】
服务器 客户端连接完成
可以打包游戏测试多人连接
//最后安装python3
yum install wget -y
wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
xz -d Python-3.4.3.tar.xz
tar xf Python-3.4.3.tar -C /usr/local/src/
cd /usr/local/src/Python-3.4.3/
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3.4 /usr/bin/python3
//顺序执行就可以,就不演示了。
//安装完使用,查看服务器信息
cd /kbengine-2.5.4/kbe/tools/server/pycluster/
python3 cluster_controller.py
==================== KBE DEMO END ========================
整个搭建过程并不严谨,未配置环境变量这些,具体修正补充请查阅官网论坛及度娘。
防火墙,端口,进程相关:
====================防火墙=====================
【开启】systemctl start firewalld
【关闭】systemctl stop firewalld
【重启】firewall-cmd --reload
【状态】systemctl status firewalld
【查看】firewall-cmd --state
====================端口=====================
【查看防火墙所有开放的端口】需在防火墙开启的状态下
firewall-cmd --zone=public --list-ports
【开放端口】
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
firewall-cmd --reload # 配置立即生效
【查看监听的tcp/udp等端口】centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools
netstat -ulnpt
====================进程=====================
【检查端口被哪个进程占用】
netstat -lnpt |grep 5672
【查看进程的详细信息】
ps 6832
=============================================