Scut:运行测试服务器

时间:2023-01-06 17:29:11

  在大致过了一遍Scut的底层结构(其实只是对各个组件有了一个初步印象而已),现在开始尝试搭建“口袋天界”的Scut服务端。

1. 设置外部启动项

  项目属性 -- 调试 -- 启动外部程序 -- 项目根目录下的 GameServer.exe;

2. 正常安装环境后启动server,Db无法连接

  通过官方文档确认 GameServer.exe.config 中的数据库连接配置,使用的是“MySqlDataProvider”,而我安装的是MSSQL,所以配置上要换成“SqlDataProvider”。

  顺带也把“口袋天界”的数据库给导入一下。

  sample 里提供了 sql脚本 与 命令行工具:

    指定 dbServer 的地址,本地就用“.”就好了;

    指定 dbAccount、dbPass -- mssql 最高权限账号密码(sa);

    指定 gameuser、gamepass -- mssql 游戏专用账号密码;

    指定 gameName -- 以此为前缀创建游戏配置库与实体数据库;

3. Debug下正常启动

4. 能不能让底层库可以调试?

4.1 刚刚直接将 scut-master 下 Middleware 的 GameServer 直接输出到了 “口袋天界” 的主目录,导致“口袋天界”的服务端根本无法启动:

  想起 Scut 对脚本 是复制到指定位置后在运行时编译的,GameServer 重新编译生成之后,直接将“口袋天界”的脚本替换掉了,所以根本报错了。

  为什么 GameServer 在编译时能将文件复制到指定位置? 在文件属性上设置“复制到输出目录”--“始终复制”。

4.2 using 命名空间 与 引用:

  引用是引用文件;

  using + 命名空间 是为了在本文件中 使用其他命名空间的类型,避免书写冗长的命名空间前缀。

4.3 统一编译时不通过,报告 Common 引用不到?

  检查了一下 Common 的输出目录,发现调整了输出目录后,并没有调整XML的输出目录,问题是这个XML文件有作用?

  将工程逐个编译,最后编译应用层,编译通过,正常运行!

  在生成 -- 配置管理器 -- 将Common、Game、Framework工程设置为不生成即可。

5. 用同样的方法,修改排行榜的例子:

5.1 将 GameRanking.Web 工程作为启动工程;

5.2 看 release 目录下的 GameServer.exe.config 里的 Game.Http.Host = ph.scutgame.com,使用一个本地域名解析,映射成 127.0.0.1;

5.3 用 Nodepad++ 在 Client 的所有目录下查找 ph.scutgame.com,原来被客户端写死了。

ok,通过这个工程已经可以调试到所有代码了。

再回头试一下“口袋天界”:

Scut:运行测试服务器

双端成功启动!