溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

發(fā)布時(shí)間:2020-07-03 01:49:05 來源:網(wǎng)絡(luò) 閱讀:1226 作者:張小方32 欄目:建站服務(wù)器

這份代碼我也是無意中來自一個(gè)朋友,據(jù)他說也是來源于互聯(lián)網(wǎng),服務(wù)器端代碼原來是linux版本的,但被厲害的大神修改成可以在Windows上運(yùn)行。(如果不小心侵犯了您的版權(quán),請聯(lián)系我刪除)。好在,這份代碼中使用的大多數(shù)方法和接口都是可以跨Windows和linux兩個(gè)平臺(tái)的,所以linux開發(fā)下的朋友請不要感到不適,我們學(xué)習(xí)這份代碼更多的不是糾結(jié)細(xì)節(jié)而是學(xué)習(xí)思路和源碼。

游戲主solution文件用Visual Studio打開后如下圖所示:

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

這里總共有10個(gè)工程項(xiàng)目,模塊比較多。我們應(yīng)該從何處入手呢?我們先看下源碼目錄:

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

我們進(jìn)入Server目錄,發(fā)現(xiàn)如下一個(gè)文件:

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

我們打開看一下內(nèi)容:

cd Bin\x64\Release
start.bat

這個(gè)代碼進(jìn)入Bin\x64\Release目錄,執(zhí)行另外一個(gè)start.bat,我們進(jìn)入這個(gè)目錄去看下這個(gè)文件內(nèi)容:

taskkill /f /t /im redis-server.exe 
taskkill /f /t /im CSBattleMgr.exe 
taskkill /f /t /im SSBattleMgr.exe 
taskkill /f /t /im GSConsole.exe 
taskkill /f /t /im BalanceServer.exe
taskkill /f /t /im LoginServer.exe
taskkill /f /t /im GSKernel.exe
taskkill /f /t /im RobotConsole.exe
taskkill /f /t /im LogServer.exe

ping -n 1 127.0>nul
start /min "redis-server" "redis-server.exe" redis.conf

ping -n 1 127.0>nul
start /min "redis-Logicserver" "redis-server.exe" redis-logic.conf

ping -n 1 127.0>nul
echo "start CSBattleMgr.exe"
start /min "CSBattleMgr" "CSBattleMgr.exe"

ping -n 1 127.0>nul
echo "start SSBattleMgr.exe"
start /min "SSBattleMgr" "SSBattleMgr.exe"

ping -n 1 127.0>nul
echo "start GSKernel.exe"
start /min "GSKernel" "GSKernel.exe"

ping -n 1 127.0>nul
echo "start BalanceServer.exe"
start /min "BalanceServer" "BalanceServer.exe"

ping -n 1 127.0>nul
echo "start LoginServer.exe"
start /min "LoginServer" "LoginServer.exe"

ping -n 1 127.0>nul
echo "start LogServer.exe"
start /min "LogServer" "LogServer.exe"

通過這個(gè)腳本,我們得到了這個(gè)服務(wù)器項(xiàng)目的一些信息,這個(gè)服務(wù)器由以下一些服務(wù)組成:

redis-server(啟動(dòng)兩個(gè))

CSBattleMgr

SSBattleMgr

GSKernel

BalanceServer

LoginServer

LogServer

這些服務(wù)器具體是做啥的,我現(xiàn)在也不知道,后面我們會(huì)教大家如何閱讀。

另外在Bin/x64/Release/dbsql目錄我們發(fā)下一些sql文件:

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

我們打開建表的createdb.sql:

drop database if exists fball_gamedb;
drop database if exists fball_logdb;

drop database if exists fball_accountdb;
create database fball_accountdb character set utf8;

drop database if exists fball_chargedb;
create database fball_chargedb character set utf8;

drop database if exists fball_robedb;
create database fball_robedb character set utf8; 

drop database if exists fball_gamedb_1;
create database fball_gamedb_1 character set utf8;

drop database if exists fball_gamedb_2;
create database fball_gamedb_2 character set utf8;

drop database if exists fball_gamedb_3;
create database fball_gamedb_3 character set utf8; 

drop database if exists  fball_logdb_1;
create database fball_logdb_1 character set utf8;

drop database if exists  fball_logdb_2;
create database fball_logdb_2 character set utf8;

drop database if exists  fball_logdb_3;
create database fball_logdb_3 character set utf8;

也就是說,這套服務(wù)需要使用mysql,我們安裝一個(gè)mysql,并執(zhí)行這個(gè)Rebuild.bat把這些庫創(chuàng)建一下,Rebuild.bat內(nèi)容如下:

@echo off  
:begin
@echo ----------1, create all game database------------ 
mysql -uroot -p123321<createdb.sql
mysql -uroot -p123321<grantuser.sql 

mysql -uroot -p123321<fball_accountdb.sql
mysql -uroot -p123321<fball_chargedb.sql
mysql -uroot -p123321<fball_robedb.sql

mysql -uroot -p123321 fball_accountdb < fball_accountdb.sql
mysql -uroot -p123321 fball_chargedb < fball_chargedb.sql
mysql -uroot -p123321 fball_robedb < fball_robedb.sql

mysql -uroot -p123321 fball_gamedb_1 < fball_gamedb.sql
mysql -uroot -p123321 fball_gamedb_2 < fball_gamedb.sql
mysql -uroot -p123321 fball_gamedb_3 < fball_gamedb.sql 

mysql -uroot -p123321 fball_logdb_1 < fball_logdb.sql
mysql -uroot -p123321 fball_logdb_2 < fball_logdb.sql
mysql -uroot -p123321 fball_logdb_3 < fball_logdb.sql 

通過這個(gè),我們發(fā)現(xiàn)這里mysql的root用戶的密碼123321。你在創(chuàng)建mysql時(shí),需要建議將密碼也設(shè)置成這個(gè)。

我們下載mysql community版本(免費(fèi)的),下載地址:[https://dev.mysql.com/downloads/mysql/](),類型我們選Microsoft:

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

注意,這套服務(wù)也使用了redis,我們不用專門下載和編譯redis windows版本,我們的程序目錄下已經(jīng)提供了windows版本的redis的服務(wù)程序和配置文件:

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

我們搞清楚基本服務(wù)器概況后,各個(gè)服務(wù)的作用以及服務(wù)之間的關(guān)系如何,我們下一篇文章繼續(xù)分析。

歡迎關(guān)注公眾號(hào)『easyserverdev』。如果有任何技術(shù)或者職業(yè)方面的問題需要我提供幫助,可通過這個(gè)公眾號(hào)與我取得聯(lián)系,此公眾號(hào)不僅分享高性能服務(wù)器開發(fā)經(jīng)驗(yàn)和故事,同時(shí)也免費(fèi)為廣大技術(shù)朋友提供技術(shù)答疑和職業(yè)解惑,您有任何問題都可以在微信公眾號(hào)直接留言,我會(huì)盡快回復(fù)您。

從零學(xué)習(xí)游戲服務(wù)器開發(fā)(二) 最后一戰(zhàn)概況

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI