Scut:运行测试服务器
在大致过了一遍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,通过这个工程已经可以调试到所有代码了。
再回头试一下“口袋天界”:
双端成功启动!