从零学习游戏服务器开发(二) 最后一战概况
admin
2023-03-10 21:42:31
0

这份代码我也是无意中来自一个朋友,据他说也是来源于互联网,服务器端代码原来是linux版本的,但被厉害的大神修改成可以在Windows上运行。(如果不小心侵犯了您的版权,请联系我删除)。好在,这份代码中使用的大多数方法和接口都是可以跨Windows和linux两个平台的,所以linux开发下的朋友请不要感到不适,我们学习这份代码更多的不是纠结细节而是学习思路和源码。

游戏主solution文件用Visual Studio打开后如下图所示:

从零学习游戏服务器开发(二) 最后一战概况

这里总共有10个工程项目,模块比较多。我们应该从何处入手呢?我们先看下源码目录:

从零学习游戏服务器开发(二) 最后一战概况

我们进入Server目录,发现如下一个文件:

从零学习游戏服务器开发(二) 最后一战概况

我们打开看一下内容:

cd Bin\x64\Release
start.bat

这个代码进入Bin\x64\Release目录,执行另外一个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

通过这个,我们发现这里mysql的root用户的密码123321。你在创建mysql时,需要建议将密码也设置成这个。

我们下载mysql community版本(免费的),下载地址:[https://dev.mysql.com/downloads/mysql/](),类型我们选Microsoft:

从零学习游戏服务器开发(二) 最后一战概况

注意,这套服务也使用了redis,我们不用专门下载和编译redis windows版本,我们的程序目录下已经提供了windows版本的redis的服务程序和配置文件:

从零学习游戏服务器开发(二) 最后一战概况

我们搞清楚基本服务器概况后,各个服务的作用以及服务之间的关系如何,我们下一篇文章继续分析。

欢迎关注公众号『easyserverdev』。如果有任何技术或者职业方面的问题需要我提供帮助,可通过这个公众号与我取得联系,此公众号不仅分享高性能服务器开发经验和故事,同时也免费为广大技术朋友提供技术答疑和职业解惑,您有任何问题都可以在微信公众号直接留言,我会尽快回复您。

从零学习游戏服务器开发(二) 最后一战概况

相关内容

热门资讯

邮轮疫情悄然来袭 汉坦病毒溯源... 参考消息网5月8日报道美国《科学新闻》双周刊网站5月5日刊登题为《关于海上暴发的罕见汉坦病毒疫情,需...
打破“一边欢迎批评,一边屏蔽评... 澎湃首席评论员 与归因为母亲节宣传文案引起争议,5月8日下午,OPPO官方微博发文道歉,表示“已第一...
盘点闺蜜机哪个牌子耐用,适合闺... 闺蜜机哪个牌子耐用适合闺蜜同用?高性价比之选认准深圳市翰视科技有限公司 闺蜜机凭借可移动、大尺寸、...
“本源悟空-180”来了 我国... 记者今天(9日)从安徽省量子计算芯片重点实验室获悉,搭载单核180个计算比特自主超导量子芯片的“本源...
机械振动故障诊断实践总结 通常,振动频率用于确定机器中故障的位置。 故障诊断主要在频谱中进行;然而,时间波形、轴心轨迹和相位分...
比亚迪、特斯拉、小鹏、理想、蔚... 作者 | 黄琳 肖逸思 葛慧 武子晔近日,有市场消息称,车企锁电引起大范围投诉事宜引起监管重视,8家...
伊朗称美军打击伊朗6艘民用船 新华社德黑兰5月9日电 据伊朗迈赫尔通讯社9日报道,伊朗伦格港地方官员法瓦德·穆拉德扎德表示,8日晚...
浙江人形与杰克科技签约2000... 来源:上海证券报·中国证券网 上证报中国证券网讯(记者 王子霖)据浙江人形机器人创新中心有限公司(以...
原创 三... 不出意外的话,今年苹果,高通、三星,联发科,这4家确定会推出2nm的手机芯片。 并且高通、联发科、苹...
Kimi、阶跃再获百亿融资,D... 图片由AI生成 出品 | 搜狐科技 作者 | 梁昌均 编辑 | 杨锦 中国大模型创业公司再次迎来融资...