@TOC
前言
Bark Sync Engine SDK主要被用来开发通过网络通信进行同步的应用程序,由它开发的应用程序在运行过程中能够通过网络通信始终保持显示同步和数据同步。下面将分章节描述如何使用该SDK来开发网络同步的应用程序。
一、SDK的下载和安装
首先我们将了解下如何配置和运行该SDK的例程,从官网下载该SDK,下载地址:https://www.bark123.com/download。
下载完成后按照步骤进行安装:
安装完成后目录如下:
其中Bin文件夹用于存放例程的可执行文件,Config文件夹用于存放例程的配置文件,Example文件夹用于存放例程的工程文件和源代码,Include文件夹用于存放SDK头文件,Lib文件夹用于存放SDK库文件,Resources文件夹用于存放例程用到的一些资源文件,Temp文件夹是暂存文件夹,Tool文件夹里有一些SDK内置的工具。
SDK一共有两个例程,一个是HelloWorld,另外一个是BarkTank,例程都是用C/C++语言编写的。HelloWorld例程包含两个项目:同步服务端程序HelloWorldServer和客户端程序HelloWorld;BarkTank例程包含4个项目:同步服务端程序BarkTankServer、登录服务端程序BarkTankLoginServer、控制服务端程序BarkTankControlServer和客户端程序BarkTank。下面分别讲解下它们如何配置和运行。
二、HelloWorld例程运行前的一些配置
在运行前选择一台机器作为你的服务端机器,一台或多台机器作为你的客户端机器,服务端机器和所有客户端机器都要安装SDK。如果身边只有一台机器的话,也可以,这时就要选择本地地址127.0.0.1了,下面会有讲述。
1.服务端配置
服务端机器在SDK所在目录的\Config\HelloWorld文件夹下,打开HelloWorld例程的配置文件server.ini,并修改内容如下:
把SyncServer字段的内容设置为你的服务端机器ip地址(这里我的服务端机器ip地址是192.168.1.10),如果服务端和客户端都是同一台机器,需要把SyncServer字段设置为本地地址127.0.0.1。
2.客户端配置
同样,所有客户端机器也要在SDK所在目录的\Config\HelloWorld文件夹下,打开HelloWorld例程的配置文件server.ini,把SyncServer字段的内容设置为你的服务端机器ip地址,如果服务端和客户端都是同一台机器,需要把SyncServer字段设置为本地地址127.0.0.1。
三、HelloWorld例程的运行
HelloWorld例程的运行过程如下:
1.运行同步服务端程序
首先,在服务端机器编译并运行HelloWorld例程的同步服务端程序HelloWorldServer,运行结果如下图:
2.运行客户端程序
然后,在客户端机器编译并运行HelloWorld例程的客户端程序HelloWorld。运行结果如下图:
在这个例程中,可以通过移动三个分别表示R,G,B颜色分量的滑块来改变字体的颜色值,当你打开了多个客户端时,你会发现当前客户端中操作的颜色变化会在所有客户端中同步显示出来,实际上所有客户端之间的数据也是同步的。

四、BarkTank例程运行前的一些配置
BarkTank例程的运行需要3个服务端程序:同步服务端程序SyncServer、登录服务端程序LoginServer和控制服务端程序ControlServer,这就意味着它最多需要3台机器来分别运行这3个服务端程序,这里为了部署简单我们把这3个服务端程序都部署在同一台服务端机器上。然后同样要一台或多台机器作为你的客户端机器。如果身边只有一台机器的话,也可以仍然选择本地地址127.0.0.1,下面会有讲述。
1.服务端配置
服务端机器在SDK所在目录的\Config\ BarkTank文件夹下,打开BarkTank例程的配置文件server.ini,并修改内容如下:
因为我们的同步服务端程序SyncServer、登录服务端程序LoginServer和控制服务端程序ControlServer都在同一台服务端机器上,所以这里我们把LoginServer、ControlServer和SyncServer字段的内容都设置为你的服务端机器ip地址(这里我的服务端机器ip地址是192.168.1.10),如果服务端和客户端是同一台机器的话,需要把LoginServer、ControlServer和SyncServer字段的内容都设置为本地地址127.0.0.1。
2.客户端配置
同样,所有客户端机器也要在SDK所在目录的\Config\BarkTank文件夹下,打开BarkTank例程的配置文件server.ini,把LoginServer、ControlServer和SyncServer字段的内容都设置为你的服务端机器ip地址,如果服务端和客户端是同一台机器的话,需要把LoginServer、ControlServer和SyncServer字段的内容都设置为本地地址127.0.0.1。
五、BarkTank例程的运行
BarkTank例程的运行过程如下:
1.运行同步服务端程序
首先,在服务端机器编译并运行BarkTank例程的同步服务端程序BarkTankServer,运行结果如下图:
2.运行登录服务端程序
然后,在服务端机器编译并运行BarkTank例程的登录服务端程序BarkTankLoginServer,运行结果如下图:
3.运行控制服务端程序
然后,在服务端机器编译并运行BarkTank例程的控制服务端程序BarkTankControlServer,运行结果如下图:
4.运行客户端程序
然后,在客户端机器编译并运行BarkTank例程的客户端程序BarkTank。运行结果如下图:
这是一个联网的坦克大战游戏程序,因为我们是第一次运行程序,需要注册新用户,点Register按钮进行注册。如下图:

注册成功后,输入注册的用户名和密码,点击Login按钮进行登录,效果如下图:

登录完成后,点击Create按钮创建房间,输入房间名称,然后点击OK,效果如下图:

这时一个游戏玩家就已经准备就绪了,但是联网游戏需要多个游戏玩家登录,所以必须再启动一个客户端,依然是点击Register按钮注册用户,如下图:

注册成功后,依然是输入注册的用户名和密码,点击Login按钮进行登录,效果如下图:

点击Quick Start按钮直接开始游戏,效果如下图:
点击Ready表示准备好开始游戏了,效果如下图:
这时第一个创建房间的客户端就可以开始游戏了,点击Start开始游戏,效果如下图:

游戏按方向键移动,按Ctrl键开火,按Space键切换子弹,在游戏过程中我们可以看到所有客户端每一帧的渲染都是同步的,实际上所有客户端的数据也是完全同步的。

总结
本章节只是简单介绍了SDK例程的配置和运行,下面的章节将深入例程的代码,来讲解如何调用Bark Sync Engine SDK的接口来开发这些网络同步的应用程序。