Skip to content

引擎安装和启动详解

这一节中会对引擎的安装和启动的所有细节进行阐述。

1. 获取

KBEngine始终维护社区版,并开源给广大开发爱好者。github上有专业人士进行源代码的更新和维护,让社区版紧跟技术迭代。

2.x:

当前最新版本为:

github地址:传送门

gitee地址:传送门

2. 编译与建立

上一小节中获取到的都是源码,即使是压缩包,也是源码压缩包,必须进行编译才能完成安装。因环境有很大不同,故编译分Linux和Windows。

TIP

注意:VCPKG强依赖于Github,需要网络支持,请自行解决网络问题!

TIP

Gitee目录提供了国内镜像安装脚本

2.1 执行编译脚本

作用:自动编译 KBEngine-Nex 服务端和工具。

使用方法

CMD
install_windows.bat [CONFIG] [VCPKGPATH]
sh
install_linux.sh [CONFIG]

参数说明

参数说明默认值
CONFIG指定编译配置,DebugReleaseDebug
VCPKGPATH指定 vcpkg 安装路径可选
GUICONSOLE安装 GUI 控制台工具可选

示例

Windows:
bash
# 使用默认 Debug 配置
install_windows.bat

# 指定 Release 配置并指定 vcpkg 路径
install_windows.bat Release D:\Tools\vcpkg

# 编译并安装 GUICONSOLE
install_windows.bat Debug D:\Tools\vcpkg GUICONSOLE

# 所有示例
install_windows.bat Debug
install_windows.bat Debug "VCPKGPATH"
install_windows.bat Debug "" GUICONSOLE
install_windows.bat Release
install_windows.bat Release "VCPKGPATH"
install_windows.bat Release  "" GUICONSOLE
Linux:
sh
# 使用默认 Release 配置
install_linux.sh

# 指定Debug
# Linux下支持 Release、Debug、Hybrid、Evaluation
install_linux.sh Debug


# 所有示例
install_linux.sh Debug
install_linux.sh Release
install_linux.sh Hybrid
install_linux.sh Evaluation

3. 安装与配置

KBEngine的环境安装非常简单,只需要完成MySql的安装和配置即可。MySql的安装和配置也会分Linux和Windows两个平台进行介绍。其他可选的安装和配置,根据实际需求进行选择。

  • 安装MySQL数据库并配置
  • 创建数据库
  • 创建kbe系统用户(可选)
  • 设置环境变量(可选)
  • Windows平台下,安装Python环境(当需要使用引擎提供的工具时可选)

3.1 安装MySQL数据库并配置:

Linux:

Linux系统下,安装Mysql比较简单,只需执行几个命令即可。

bash
安装
[root @ localhost ~]# yum install mysql-server

设定为开机自动启动
[root @ localhost ~]# chkconfig mysqld on

启动mysql服务
[root @ localhost ~]# /etc/init.d/mysqld start

检查是否启动成功
[root@localhost ~]# /etc/init.d/mysqld status
mysqld (pid  9234) is running...

安装成功

Windows:

下载并安装最新版本: http://dev.mysql.com/downloads/windows/

在本章节中建议选择MSI Installer的版本,自解压的版本在配置上会有一些区别,请高级用户选择

3.2 创建数据库:

3.2.1:创建数据库,本章节中假设数据库名为“kbe”

sql
mysql> create database kbe;

3.2.2:删除匿名用户

(一些系统中不删除匿名用户会出现使用kbe账号用本地IP登录mysql被拒绝访问)

sql
mysql> use mysql;
mysql> delete from user where user=''; 
mysql> FLUSH PRIVILEGES;

3.2.3:创建数据库用户

用户名是”kbe”,密码是”pwd123456”(本章节默认使用该账号和密码,请暂时不要修改)

sql
-- 创建用户(如果用户已存在可以用 ALTER USER)
mysql> CREATE USER IF NOT EXISTS 'kbe'@'%' IDENTIFIED BY 'pwd123456';

-- 授予所有权限(注意生产环境慎用 *.*)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'kbe'@'%' WITH GRANT OPTION;

-- 或者只授予指定权限
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON *.* TO 'kbe'@'%';

-- 刷新权限(可选)
mysql> FLUSH PRIVILEGES;

3.2.4: 验证

Windows系统下:

进入你的mysql安装目录找到mysql.exe(如C:\mysql\bin), 然后在CMD执行如下命令:

cmd
C:\mysql\bin> mysql -ukbe -ppwd123456 -hlocalhost -P3306

Linux系统下:

bash
[root@localhost ~] mysql -ukbe -ppwd123456 -hlocalhost -P3306

如果能成功登陆,说明验证成功!

注意:

1: 默认Mysql端口为3306, 如不一致请修改kbengine_defaults.xml->dbmgr->330x

2: 请不要使用其他任何第三方工具来测试,必须使用mysql进行测试,第三方工具为了能够正确的连接到Mysql可能会采用一些兼容的方式,但这对于游戏服务端来说是不可靠的方式,权限应该由用户明确的设置。

3.3 创建kbe系统用户(可选):

创建一个独立的用户来运行KBEngine将会更加安全可靠以及便于维护。如果您跳过此步骤,会使用你当前账户的用户作为kbe user。

Linux:

bash
[root@localhost ~]# useradd kbe
[root@localhost ~]# passwd pwd123456

New UNIX password: ******
Retype new UNIX password: ******
passwd: all authentication tokens updated successfully

Windows:

以Win10为例:打开“计算机管理”,右键选择”新用户”。如下图:

输入用户名和密码,ok,完成。在后面的配置中,可以使用该用户作为KBE的用户。

3.4 设置环境变量(可选)

(提醒:在服务端资产库启动服务器的脚本中已经具备自动化临时设置环境变量正确启动服务器功能,因此没有特别复杂的部署需求可略过此步骤。)

KBE引擎会读取系统中设置的(KBE_ROOT, KBE_RES_PATH, KBE_BIN_PATH)环境变量, 环境变量的意义:

UID: 操作系统用户账号的uid将被用于区分不同的服务器组,如果是多台硬件服务器共同维护一组服务, 那么每一台机器上的系统uid环境变量都应该保持一致,否则无法形成服务组。 另外uid必须大于0, 小于32767. (注意: Windows系统账号没有UID属性, 需要用户自己添加这个环境变量)

KBE_ROOT: 引擎根目录。

KBE_RES_PATH: 引擎的资源路径。不同路径使用’:’或者’;’分隔, Windows由于操作系统规则必须使用’;’分隔,默认情况下资源路径中第一个资源路径 是引擎的资源路径, 第二个资源路径是用户脚本的资源路径。

KBE_BIN_PATH: 引擎可执行文件所在目录。

Linux:

bash
(假如kbe被安装在~/目录)
[kbe@localhost ~]$ vim ~/.bashrc

ulimit -c unlimited
export KBE_ROOT=~/kbengine/
export KBE_RES_PATH=$KBE_ROOT/kbe/res/:$KBE_ROOT/assets/:$KBE_ROOT/assets/:$KBE_ROOT/assets/res/
export KBE_BIN_PATH=$KBE_ROOT/kbe/bin/server/

使环境变量生效:
[kbe@localhost ~]$ source ~/.bashrc

root权限设置用户kbe的uid(假如设置为10103):
[root@localhost ~]# usermod -u 10103 kbe

Windows:

鼠标右键点击: “我的电脑”->”高级”->”环境变量”, 然后设置

cmd
(假如安装在C盘)
KBE_ROOT = C:/kbengine/
KBE_RES_PATH = %KBE_ROOT%/kbe/res;%KBE_ROOT%/assets/;%KBE_ROOT%/assets/scripts;%KBE_ROOT%/assets/res/
KBE_BIN_PATH = %KBE_ROOT%/kbe/bin/server/

(注意: 在Linux上系统账号的id就是uid,Windows系统账号没有UID属性,需要用户自己添加这个环境变量,这里假如设置成10103)
UID = 10103

3.5 Windows下Python安装(可选)

当需要使用引擎提供的工具时,在Windows平台下就需要有Python的环境。

Python获取见Python官网。推荐选择Python3.13.x。

使用exe安装时,一路采用默认即可,安装完毕后,会自动配置环境变量。通过CMD,输入python,测试一下Python的环境是否安装正确。

4. 启动与关闭

默认的,启动引擎的快捷入口是存放在自己项目的资产库下的一个批处理文件start_server.bat(Linux下是start_server.sh),而引擎在根目录下提供了一个默认的“assets”资产库,该资产库是一个最小的KBE项目

什么是资产库? 所谓资产库,即是一个新的项目的所有数据、脚本代码、资源等存储的地方,而这个地方就是一个文件夹,该文件夹一般可以放置在引擎根目录下(与kbe、assets文件夹同级)。

Tips: 资产库文件夹也可以放置在其他地方,不过需要修改启动脚本中环境变量,在本文后面会进行阐述。

运行start_server.bat即可启动,而关闭服务器是通过kill_server.batsafe_kill.bat

启动与关闭的执行命令

根据自己所在操作系统不同,有两种方式启动:

Linux:
bash
(假设引擎安装目录为 root/kbengine)
[kbe @gameserver ~]$ cd root/kbengine/getstarted_assets/scripts
[kbe @gameserver ~]$ sh start_server.sh
[kbe @gameserver ~]$ sh kill_server.sh
Windows:
cmd
(假设引擎安装目录为d:/kbengine/)
cd d:/kbengine/getstarted_assets/scripts
start_server.bat
kill_server.bat

检查启动状态

Windows下,当启动服务器时,会弹出很多console窗口,这些都是服务器的app及其他应用程序,详细的服务器app介绍可以在基础篇->基本概念中查看。

如果启动成功将会在日志中找到”Components::process(): Found all the components!”。

如果出现红字错误或任何其他情况请在日志中搜索”ERROR”关键字,根据错误描述尝试解决。

初次启动KBEngine时,mysql需要初始化一些表结构,可能会花上几分钟请耐心等待完成。

ok,看到所有窗口都出现”Found all the components!”时,恭喜你,成功启动了引擎!!

启动参数解释

我们打开start_server.bat,看到如下:

bash
@echo off
set curpath=%~dp0

cd ..
set KBE_ROOT=%cd%
set KBE_RES_PATH=%KBE_ROOT%/kbe/res/;%curpath%/;%curpath%/;%curpath%/res/
set KBE_BIN_PATH=%KBE_ROOT%/kbe/bin/server/

if defined uid (echo UID = %uid%) else set uid=%random%%%32760+1

cd %curpath%
call "kill_server.bat"

echo KBE_ROOT = %KBE_ROOT%
echo KBE_RES_PATH = %KBE_RES_PATH%
echo KBE_BIN_PATH = %KBE_BIN_PATH%

start %KBE_BIN_PATH%/machine.exe --cid=1000 --gus=1
start %KBE_BIN_PATH%/logger.exe --cid=2000 --gus=2
start %KBE_BIN_PATH%/interfaces.exe --cid=3000 --gus=3
start %KBE_BIN_PATH%/dbmgr.exe --cid=4000 --gus=4
start %KBE_BIN_PATH%/baseappmgr.exe --cid=5000 --gus=5
start %KBE_BIN_PATH%/cellappmgr.exe --cid=6000 --gus=6
start %KBE_BIN_PATH%/baseapp.exe --cid=7001 --gus=7
start %KBE_BIN_PATH%/cellapp.exe --cid=8001 --gus=9
start %KBE_BIN_PATH%/loginapp.exe --cid=9000 --gus=11

在之前有提到环境变量UID、KBE_ROOT、KBE_RES_PATH、KBE_BIN_PATH,在启动参数中会调用这些变量,如果在环境变量中未设置,则会根据资产库所在文件夹的位置进行自动匹配。

我们来看一下这几个参数:cidgus

cid: 该参数必须设置,类型为uint64, 全名component id, 每个进程都有一个唯一ID,唯一ID在合适的时候用于区分他们之间的身份。

gus: 可选参数,类型为uint16, 全名genUUID64 sections,这个值会被引擎KBEngine.genUUID64函数用到,设置为不同的值genUUID64将在不同的区间产生唯一uuid。

注意:这个值如果能在多个服务组进程之间保持唯一性,那么在合服的时候能够带来一定的便利性。

例如:游戏服A和游戏服B中的物品在数据库中存储的ID都使用genUUID64生成,那么在合服的时候能够直接向一张表中合并数据。 (注意:如果gus超过65535或者小于等于0,genUUID64将只能保证当前进程唯一)