概述
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