從零學習開源項目系列(二) 最後一戰概況
來自專欄 從零學習開源項目系列
這份代碼我也是無意中來自一個朋友,據他說也是來源於互聯網,伺服器端代碼原來是linux版本的,但被厲害的大神修改成可以在Windows上運行。(如果不小心侵犯了您的版權,請聯繫我刪除)。好在,這份代碼中使用的大多數方法和介面都是可以跨Windows和linux兩個平台的,所以linux開發下的朋友請不要感到不適,我們學習這份代碼更多的不是糾結細節而是學習思路和源碼。
遊戲主solution文件用Visual Studio打開後如下圖所示:
這裡總共有10個工程項目,模塊比較多。我們應該從何處入手呢?我們先看下源碼目錄:
我們進入Server目錄,發現如下一個文件:
我們打開看一下內容:
- cd Binx64Release
- start.bat
這個代碼進入Binx64Release目錄,執行另外一個start.bat,我們進入這個目錄去看下這個文件內容:
- 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"
通過這個腳本,我們得到了這個伺服器項目的一些信息,這個伺服器由以下一些服務組成:
redis-server(啟動兩個)
CSBattleMgr
SSBattleMgr
GSKernel
BalanceServer
LoginServer
LogServer
這些伺服器具體是做啥的,我現在也不知道,後面我們會教大家如何閱讀。
另外在Bin/x64/Release/dbsql目錄我們發下一些sql文件:
我們打開建表的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;
也就是說,這套服務需要使用mysql,我們安裝一個mysql,並執行這個Rebuild.bat把這些庫創建一下,Rebuild.bat內容如下:
- @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
通過這個,我們發現這裡mysql的root用戶的密碼123321。你在創建mysql時,需要建議將密碼也設置成這個。
我們下載mysql community版本(免費的),下載地址:https://dev.mysql.com/downloads/mysql/,類型我們選Microsoft:
注意,這套服務也使用了redis,我們不用專門下載和編譯redis windows版本,我們的程序目錄下已經提供了windows版本的redis的服務程序和配置文件:
我們搞清楚基本伺服器概況後,各個服務的作用以及服務之間的關係如何,我們下一篇文章繼續分析。
推薦閱讀:
※下班後,他們是這樣賺錢的
※蘋果 MacPaint 和 QuickDraw 的源代碼(2010)
※收入翻倍的方法,開源的那些事兒(二)
※Karpathy 更新深度學習開源框架排名:TensorFlow 第一,PyTorch 第二