-
Notifications
You must be signed in to change notification settings - Fork 570
ProjectDescription
此章节介绍如何搭建服务端项目工程
Scut的开发环境要在VS2013以上版本
- 首先打开VS2013,创建一个“类库”类型的项目;

-
选择Scut最新的Lib类库,将Lib目录和Console目录下的所有文件复制到新创建的类库项目中;
-
添加dll引用,切换到VS解决方案管理器中,将所有dll引用到项目中;
-
在VS解决方案管理器中,选择项目点击“显示所有文件”,将Script目录与GameServer.exe.config和Nlog.config文件包含到项目中;
-
调试项目,右击项目选“属性”,打开“调试”栏选择“启动外部程序”设置为“GameServer.exe”路径,并将工作目录设置成与GameSession.exe文件同级目录;

下面是Scut服务端项目的目录结构:

- 第一部分: Script脚本目录
包括:Model、CsScript、PyScript和LuaScript子级目录;不能有含有其它自定义的目录或文件,自定义的目录或文件是不会被监听的。
-
Model目录: 所有脚本统一使用的数据实体类目录,它是单独编译的子项目;此目录下的脚本不能调试,因此不要在脚本内写业务处理代码;
-
CsScript目录: C#脚本的业务逻辑目录,C#开发者使用,包括以下子目录和文件:
Action子目录: 与客户端对接的通讯协议处理接口类,包括:处理请求包,响应封包等方法;
Locale子目录: 本地化的多语言化处理类,如:提示语;
MainClass.cs文件: C#脚本启动入口,包括:程序启动,程序停止,接收请求,打开连接,关闭连接和心跳包接收等方法;
扩展子目录: 可以根据需要在CsScript目录下划分子目录,如以功能划分:Chat(聊天)、Plot(副本)、Task(任务)等。
-
PyScript目录: Python脚本的业务逻辑目录,Python开发者使用,包括以下子目录和文件:
Action子目录: 与客户端对接的通讯协议处理接口类,包括:处理请求包,响应封包等方法;
Lib子目录: Python脚本开发者的类库
-
LuaScript目录: Lua脚本的业务逻辑目录,Lua开发者使用;
- 第二部分: Scut类库与第三方类库
包括所有的dll文件,ZyGames名称开头的是Scut的类库,其它的是第三方类库。
- 第三部分: GameServer宿主程序与ScutSMS工具
包括以下文件:
-
GameServer.exe文件: 以Console控制台方式运行的宿主程序;
-
GameServer.exe.config文件: 宿主程序的配置文件;
-
Nlog.Config文件: 第三方错误跟踪Log日志类库的配置文件,包括:输出的目录位置,错误级别输出控制和Log输出的类型控制(输出的类型:文件,控制台,Trace和Azure第三方存日志储等);
-
ScutSMS.exe文件: Scut提供的工具,可以方便配置游戏的参数和Redis数据的操作;
- NLog.config文件: 游戏服日志文件配置,使用第三方的Nlog类库,结点"logDirectory" 是配置日志文件输出的路径,其它结点按默认配置。
#!xml
<variable name="logDirectory" value="d:\NLog\XXgame"/>
- GameServer.exe.config文件: 游戏服的主要配置,包括:数据库连接配置,Redis连接配置和其它游戏环境配置等;可以打开当前目录下的ScutSMS工具进行配置。
#!xml
<?xml version="1.0"?>
<configuration>
<!--基本参数配置,其它详细参数通过ScutSMS工具查看参数-->
<appSettings>
<add key="Redis.Host" value="127.0.0.1:6379"/> <!--Redis服务的连接串,格式:password@host:port -->
<add key="Script_IsDebug" value="True"/> <!--开启脚本调试模式-->
</appSettings>
<!--数据库连接串配置-->
<connectionStrings>
<!--
@name: 连接串的标识Key,是Entity类配置的EntityTable属性的ConnKey参数值,两者要对应上
@providerName: 连接的数据库驱动类型;SqlDataProvider是SQL数据库的连接,MySqlDataProvider是MySql数据库的连接
@connectionString: 数据库连接串,与SQL或MySql数据库的连接串相同
-->
<add name="ConnData" providerName="SqlDataProvider" connectionString="Data Source={服务器地址};Database={数据库名};Uid={登录帐号};Pwd={登录密码};"/>
</connectionStrings>
</configuration>
C#开发注意: 类与类之间的交叉引用问题,如:Model目录中的类不能引用CsScript中的类,但CsScript目录下的类可以引用Model中的类。