如何部署和运行Scut服务器及游戏:Windows篇
概述
Scut游戏引擎是一个永久免费的全脚本游戏服务器框架,采用MVC框架设计,简化数据库设计和编码工作;降低对开发人员的开发难度;同时提供了丰富的类库和API接口。
一、 安装环境
必须安装的软件如下:
- Redis:key-value数据库,2.6.x以上版本
- 数据库:MSSQL 2005以上版本
- Web服务器: iis 6.0以上版本
- .NET运行库:.Net Framework 4.0以上版本
软件安装说明
1. 安装Redis (Window版本)
安装说明:http://www.cocoachina.com/bbs/read.php?tid=167525
测试Redis是否运行正常:
a) 打开“redis-server.exe”启动Redis服务端
b) 打开“redis-cli.exe”启动Redis客户端
c) 输入“set foo bar” -- 提示 “ok”说明设置键值正常
d) 输入“get foo” -- 能够提示返回正确的“bar”,说明运行正常
2. 安装MSSql (2005版本)
百度搜索自行安装
3. 安装Web服务器(IIS 7.0)
a) 在开始 -> 打开控制面板,进入“程序和功能”,选择“打开和关闭Windows功能”,如下图设置“Internet信息服务”选项安装。

b) 安装成功后,选择根目录的功能视图,检查“ISAPI和CGI限制”,设置“ASP.NET v4.0”为允许。如图:


4. .NET运行库3.5和4.0
下载地址: http://www.microsoft.com/zh-cn/download/details.aspx?id=17718
下载安装程序后,打开直接安装。
二、 搭建分服系统
1. 帐号和充值数据库初始化
用户中心、分服中心和充值中心使用的数据采用批处理方式创建(批处理文件在当前下载Scut目录:Document\Database\Center\MsSql\必备库创建一键运行.bat);使用Sa帐号(安装MYSQL数据库时的帐号)创建数据库(或用DB维护者权限的帐号),配置需要相应修改;bat文件如下:
|
set dbServer=. 数据库服务地址 set dbAcount=sa 帐号(有创建库权限的) set dbPass=123 密码 set gameuser=game_user 需要创建游戏服使用的帐号 set gamepass=123 游戏服使用的密码 set dbpath=%cd%\Data 数据库存储位置目录(默认当前目录) |
2. 站点部署
1) 打开控制面板->管理工具-> Internet 信息服务(IIS)管理器
2) 在网站结点右击,添加站点dir.scutgame.com
3) 将站点路径指向到(当前下载Scut目录)Release\WebSite\DirCenter目录,如图:

4) 选择应用程序池,右击“dir.scutgame.com”->高级设置,设置为“.NET Framework v4.0”和“经典”模式,“固定时间间隔”为0,如图:

5) 设置Host文件(位置:C:\Windows\System32\drivers\etc\hosts),添加配置“127.0.0.1 dir.scutgame.com”域名转向解析
6) 打开当前Scut目录Release\WebSite\DirCenter\Web.config文件,修改数据库连接
|
<add key="Connection" value="Data Source=.;Database=PayDB;Uid=game_user;Pwd=123; Pooling=true;Max Pool Size=200;Min Pool Size=0;"/> |
7) 测试,打开IE访问:http://dir.scutgame.com/DirService.asmx,如图正常:

三、 运行游戏
1. 中间件配置
- 帐号中间件配置
在游戏Sample目录下的Web.Config或App.config文件,找到以“Snscenter_”开头的配置,配置“Snscenter_Acount”使用工具生成加密串(当前Scut路径: Release\Tools\加解密工具),Acount原串:“Uid=game_user;Pwd=123”(密钥:BF3856AD)如图:

数据库连接配置如下(修改红色部分):
|
<appSettings> <add key="Snscenter_ConnectionString" value="Data Source={0};Database=snscenter;{1}; Pooling=true; Max Pool Size=200;Min Pool Size=0;"/> <add key="Snscenter_Server" value="."/> <add key="Snscenter_Acount" value="9928F40148EE44F7D50001B254E8F123E82AAA3A771E8502"/> </appSettings> |
- 充值中间件配置
配置数据库连接字符串,如下:
|
<appSettings> <add key="PayDB_ConnectionString" value="Data Source={0};Database=PayDB;{1}; Pooling=true; Max Pool Size=200;Min Pool Size=0;"/> <add key=" PayDB_Server" value="."/> <add key=" PayDB_Acount" value="9928F40148EE44F7D50001B254E8F123E82AAA3A771E8502"/> </appSettings> |
注:以上中间件数据库连接配置,在以下Sample(斗地主、口袋)配置中修改
2. 斗地主Sample
1) 数据库创建
游戏服划分三个数据库,分别为:DdzConfig、Ddz1Data和Ddz1Log库;
l DdzConfig库:存储游戏内数值配置等信息;
l Ddz1Data库:存储玩家信息;
l Ddz1Log库:存储玩家操作日志信息;
右击”游戏库创建一键运行.bat“(当前Scut目录:Sample\Doudizhu\Server)编辑文件,修改红色字配置如下:
|
set dbServer=. set dbAcount=sa set dbPass=123 set gameuser=game_user set gameName=Ddz set dbpath=%cd%\Data |
修改后保存,并运行”游戏库创建一键运.bat“,在开始->打开”Microsoft SQL Server管理器“,查看是否有”Ddz “开头的数据库并且里面有表则生成成功;
2) 启动Exe程序
a) 检查Redis服务器是否运行状态,打开Redis安装目录,运行redis-server.exe
b) 设置Host,添加127.0.0.1 ddz.scutgame.com
c) 修改当前Scut目录:Doudizhu\PyScript\Route.config.xml文件红色部分配置;
|
<config> <lib path="D:/Python/Lib" /> <!-- Python安装目录--> </config> |
d) 修改当前Scut目录:Doudizhu\App.config文件红色部分配置(参考中间件配置);设置” Redis.Host “地址为安装Redis环境的机器IP地址(我的本机地址是:192.168.1.104)
|
<appSettings> <add key="Redis.Host" value="192.168.1.104" /> <add key="PayDB_Server" value="." /> <add key="PayDB_Acount" value="9928F40148EE44F7D50001B254E8F123E82AAA3A771E8502" /> <add key="Snscenter_Server" value="." /> <add key="Snscenter_Acount" value="9928F40148EE44F7D50001B254E8F123E82AAA3A771E8502" /> </appSettings> <connectionStrings> <add name="DoudizhuConfig" providerName="" connectionString="Data Source=.;Database=DdzConfig;Uid=game_user;Pwd=123; Pooling=true;"/> <add name="DoudizhuData" providerName="" connectionString="Data Source=.;Database=Ddz1Data;Uid=game_user;Pwd=123; Pooling=true;"/> <add name="DoudizhuLog" providerName="" connectionString="Data Source=.;Database=Ddz1Log;Uid=game_user;Pwd=123; Pooling=true;"/> </connectionStrings> |
e) 运行Scut目录下的:Sample\Doudizhu\Server\release 目录下的“DoudizhuHostServer.exe”执行文件,如图:

f) 运行游戏客户端Client目录下的“MainApp.exe”程序,进入游戏。
g) 如果进入游戏失败,可以查看服务器日志(路径在Scut:Sample\Doudizhu\Server\release\DdzLog\Exception目录下)
h) 如果" DoudizhuHostServer.exe "程序打出如图,则连接成功,否则检查9700端口是否被防火墙阻止,在防火墙添加出入规则或可以防火墙关闭;

3. 口袋Sample
1) 数据库创建
修改批处理文件(Scut目录:Sample\Koudai\Server\游戏库创建一键运行.bat)配置如下:
|
set dbServer=. set dbAcount=sa set dbPass=123 set gameuser=game_user set gameName=Kd set dbpath=%cd%\Data |
运行“游戏库创建一键运.bat”文件,等待提示“执行成功”。
2) 部署站点
a) 打开控制面板->管理工具-> Internet 信息服务(IIS)管理器
b) 在网站结点右击,添加站点“kd1.scutgame.com”
c) 将站点路径指向到Sample\Koudai\Server\release目录,如图:

d) 打开应用程序池,右击“kd1.scutgame.com” 选择“高级设置”设置“.NET Framework v4.0”和“经典”模式,“固定时间间隔”为0,如图:

e) 在Host文件添加127.0.0.1 kd1.scutgame.com
f) 修改当前Scut目录Sample\Koudai\Web.Config配置文件,(注:这里以Redis.Db配置划分不同的游戏服,或配置多个Redis实例以Redis.Port端口划分),参数据连接加密参考中间件配置
|
<appSettings> <add key="Redis.Host" value="192.168.1.104" /> <add key="Redis.Db" value="6" /> <add key="PayDB_Server" value="." /> <add key="PayDB_Acount" value="9928F40148EE44F7D50001B254E8F123E82AAA3A771E8502" /> <add key="Snscenter_Server" value="." /> <add key="Snscenter_Acount" value="9928F40148EE44F7D50001B254E8F123E82AAA3A771E8502" /> </appSettings> <connectionStrings> <add name="TianjiexingConfig" providerName="" connectionString="Data Source=.;Database=KdConfig;Uid=game_user;Pwd=123;"/> <add name="TianjiexingData" providerName="" connectionString="Data Source=.;Database=Kd1Data;Uid=game_user;Pwd=123; "/> <add name="TianjiexingLog" providerName="" connectionString="Data Source=.;Database=Kd1Log;Uid=game_user;Pwd=123;"/></connectionStrings> |
g) 检查Redis服务器是否运行状态,打开Redis安装目录,运行redis-server.exe
h) 打开IE访问:http://kd1.scutgame.com/Service.aspx,如下正常:

i) 运行客户端“start.vbs”文件(设置为竖屏),进入游戏。
注意:不能直接运行MainApp.exe
如何部署和运行Scut服务器及游戏:Windows篇的更多相关文章
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- 将nodejs代码部署到阿里云服务器
概述 最近在做一个小项目,其中用nodejs做了个数据转发的接口,之后需要将这部分代码部署到服务器上面,并使用Nginx做反向代理.期间使用搜索引擎大量查阅了其他同鞋的经验,不过写的大多很笼统,因此踩 ...
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- Spring Boot项目部署到外部Tomcat服务器
2017年04月27日 23:33:52 阅读数:7542 前言 Spring Boot项目一般都是内嵌tomcat或者jetty服务器运行,很少用war包部署到外部的服务容器,即使放到linux中, ...
- hadoop进阶----hadoop经验(一)-----生产环境hadoop部署在超大内存服务器的虚拟机集群上vs几个内存较小的物理机
生产环境 hadoop部署在超大内存服务器的虚拟机集群上 好 还是 几个内存较小的物理机上好? 虚拟机集群优点 虚拟化会带来一些其他方面的功能. 资源隔离.有些集群是专用的,比如给你三台设备只跑一个 ...
- javaWeb项目部署到阿里云服务器步骤 完整版
记录web项目部署到阿里云服务器步骤 (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以 ...
- 如何把php项目部署到阿里云服务器window server2012__含公网ip访问时jquery/ajax失效解决办法
记一次蛋疼的折腾. 弄了一晚上最后发觉是360浏览器的问题,换个浏览器就好了.垃圾360用什么IE7文档模式.导致界面和功能失效. 建议大家测试的时候用firefox或者chrome. 项目部署到服务 ...
- Linux:Ubuntu下部署Web运行环境
Linux:Ubuntu下部署Web运行环境 本次博客将会从三部分内容详述Ubuntu系统下Web运行环境的配置: 依次是:FTP服务器的搭建.MYSQL数据库的搭建.JDK的安装等. 参考文章如下: ...
- 部署 CA 和 NPS 服务器证书
TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 按类别 ...
随机推荐
- java中常用的几种缓存类型介绍
在平时的开发中会经常用到缓存,比如locache.redis等,但一直没有对缓存有过比较全面的总结.下面从什么是缓存.为什么使用缓存.缓存的分类以及对每种缓存的使用分别进行分析,从而对缓存有更深入的了 ...
- Redis 配置登录密码
1. 通过配置文件进行配置 打开 redis.conf,找到 #requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件 重启redis sudo service r ...
- webpack vue-cli 常见问题总结
1. webpack打包压缩 ES6 js..vue报错: ERROR in js/test.js from UglifyJs Unexpected token punc ?(?, expected ...
- http的一些知识
TCP/IP协议分层 应用层 TFP DNS DNS域名解析的过程 在浏览器DNS缓存中搜索 读取系统的hosts文件,查找其中是否有对应的ip 向本地配置的首选DNS服务器发起域名解析请求 HTTP ...
- JAVA与VB通过SOCKET通讯
JAVA与VB通过SOCKET通讯 在做项目的过程中,本来是想使用JAVA的comm.jar工具实现串口通讯,不知道怎么回事,总是取不到电脑的串口.所以,改为现在的这种模式:java通过socket给 ...
- 优化Angularjs的$watch方法
Angularjs的$watch相信大家都知道,而且也经常使用,甚至,你还在为它的某些行为感到恼火.比如,一进入页面,它就会调用一次,我明明希望它在我初始化之后,值再次变动才调用.这种行为给我们带来许 ...
- 使用 Nginx 过滤网络爬虫
现在有许多初学者学习网络爬虫,但他们不懂得控制速度,导致服务器资源浪费.通过 Nginx 的简单配置,能过滤一小部分这类爬虫. 方法一:通过 User-Agent 过滤 Nginx 参考配置如下: l ...
- 提高Java开发效率,Idea必装的几款插件
1.codeMaker 重复代码生成工具 domian和dto两个类基本差不多,这个工具就可以通过一个类快速生成另一个类. 2.gsonFormat json转换成Java类 很多时候根据别人接口给的 ...
- SQL查询数据后在连成字符串方法
CREATE TABLE tb ( user_id INT, type_id TINYINT ); INSERT INTO tb (user_id, type_id) VALUES (1,11); I ...
- BZOJ 3910: 火车
3910: 火车 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 358 Solved: 130[Submit][Status][Discuss] D ...