分布式服务器架构下的3v3团队对抗游戏
【Warning】 本仓库作为本人的毕设课题,主要是初学者的学习/实践,谨慎用于正式用途。
服务器框架位于ServerCore
目录
CmdPackage
在网络层之上的一层自定义协议,本项目所有网络消息都是这个类型的。serviceType标识此消息是属于哪一类服务,cmdType标识此消息具体含义
Session
是对Socket的封装,提供发送CmdPackage的接口,上层无需关系是Tcp链接还是Udp链接
Service
是对服务器功能的抽象,服务器可以通过注册Service来获得处理某一类CmdPackage的功能。
Netbus
是框架的最底层,直接接触链接的建立,网络消息的发送和接受,它处理了字节流和CmdPackage之间的互相转化
服务器业务逻辑代码位于ServerApp
目录
对话系统代码主要位于PurificationPioneer\Assets\3rd\DialogSystem
目录
DialogAsset
是一种ScriptableObject类型的资产,支持可视化的编辑对话内容. 对话内容支持:对话、旁白、选择、音乐音乐、简单屏幕效果、逻辑分支、变量控制、自定义消息等等
DialogSystem
一方面,它作为一种容器存放当前物体需要使用到的DialogAsset,一方面,也作为对话系统的引擎,提供将DialogAsset进行演出的接口
DialogTrigger
可以方便的设置如何开启对话、如何使用DialogSystem中的DialogAsset列表、在什么情况下触发器正常工作等。
此外,系统还有DialogVarAsset、DialogProgresss、DialogCharacter等工具方便使用
游戏客户端参考喷射战士的玩法,多人比拼在一定时间内涂色面积大的一方胜出
1、在MobaServer.exe 同目录下 2、创建Server.lua,添加如下代码
Debug.LogInit("ServerLogs","server",true);
Netbus.TcpListen(8900,
function(s)
local ip,port = Session.GetAddress(s);
print("new client come ["..ip..":"..port.."]");
end);
print("Server tcp listen at 8900");
3、创建ServerBat.bat,记事本打开并添加如下内容
【添加Lua搜索路径,Lua启动脚本相对路径(相对搜索路径)】
MobaServer.exe ./ Server.lua
4、创建Client.lua,添加如下代码
Debug.LogInit("ClientLogs","client",true);
Netbus.TcpConnect("127.0.0.1",8900,
--链接成功的回调
function(session)
if session then
print("succeed to connect to [127.0.0.1:8900]");
return;
end
print("failed to connect to [127.0.0.1:8900]")
end);
5、创建ClientBat.bat,记事本打开添加如下内容
MobaServer.exe ./ Client.lua
6、先运行ServerBat,在运行ClientBat