{"repo":"sniper00/MoonDemo","free":true,"listed":false,"github":"https://github.com/sniper00/MoonDemo","clone":"git clone https://github.com/sniper00/MoonDemo.git","description":"moon game server的一个使用示例，搭建简单的房间类游戏服务器框架","language":"C#","stars":188,"topics":["cpp","lua","unity","network","game","game-server"],"license":null,"category":"game-templates","readme_excerpt":"项目简介 多人简易版球球大作战，游戏服务器框架moon的一个使用示例。 主要演示 - 游戏服管理大量客户端网络连接 - One Player One Service 模式,处理玩家非共享状态,提高单服承载能力和更加Clean的内存管理 - 异步 Redis 连接池服务的使用 - 使用 sharetable 管理和更新游戏配表 - 客户端消息自动注册和处理 - 服务间消息自动注册和通信 - 游戏逻辑编写规范 - 服务器集群搭建 - 服务器简易管理后台 - 代码热更 - 代码注解 - 使用vscode LuaPanda 插件调试服务器代码 - 使用vscode lua-language-server 插件提供lua代码智能能提示: vscode打开server目录，安装 lua-language-server 插件，即可获得代码提示能力，如果没有代码提示，在.vscode目录下, 创建或者修改settings.json, 添加 ------- 服务器消息处理 登陆界面，可选Tcp或者Websocket 游戏画面 Server结构介绍 Hub Server: 1. 提供服务后台管理, 服务器节点配置管理(支持动态开启新服) 2. 提供http server 和 telnet两种协议接口 Game Server开启了7种服务: - node 处理hub的请求消息，常用于对接SDK和服务器后台管理 - cluster 服务器集群通信节点服务 - gate 负责管理玩家网络连接，并转发玩家网络消息到对应玩家服务 - auth 负责登录，创建、删除、离线加载、玩家服务 - center 负责玩家匹配逻辑，动态创建room服务 - user 玩家服务，一个服务对应一个玩家，处理玩家消息，管理玩家私有状态。 与其它玩家交互的消息转发到room服务。 - room 游戏场景服务，简易球球大作战玩法逻辑 目录结构 编译Server 1. clone 2. 参考moon编译 运行 - 安装 redis 采用默认配置即可。如需要修改数据库配置, 可以修改server目录下的 serverconf.lua 。 - 如果想使用postgresql, 修改server目录下的 serverconf.lua 中pgsql相关配置， main game.lua 中取消 db game 服务的注释，这样userdata数据会保存到postgresql中 - windows使用 start server.bat 脚本运行。linux和macos使用 start hub.sh , start game.sh 依次启动。默认会自动运行机器人服务。配表 可以修改机器人数量 - 简易后台管理 - 方式一 Web http://127.0.0.1:8003/ - 方式二 telnet 127.0.0.1 8003 , 输入 S1 help - 如需要自己部署，可以修改 node.json 中的ip地址 - Client请使用unity2022 启动执行第一个场景Prepare。 调试 - 安装 vscode - 安装LuaPanda 插件 - 在需要调试的服务第一行添加代码(作为示例，room服务第一行添加了这行代码) - 配置调试器 - F5启动vscode-LuaPanda调试器 - 使用vscode,在该服务的逻辑代码出下断点 - 运行服务器，触发断点处的逻辑 Client 客户端主要用来演示怎样使用 asyn/await 来处理网络消息，等异步操作。 开发流程 需要安装 python3 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/sniper00","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sniper00/MoonDemo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}