zum/ts

克隆/下载

提示

下载代码请复制以下命令到终端执行

为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置

使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作

Username for 'https://gitee.com': userName

Password for 'https://userName@gitee.com': # 私人令牌

开源游戏联机 全栈式解决方案:服务端自行部署 + 游戏客户端对接 tsgf-sdk 黑盒式 实现游戏联机:客户端对接SDK,不用关心通信和同步逻辑 (模式参考腾讯已下架的 MGOBE ) 全分布式的的集群架构设计:可随在线用户增加而横向拓展服务器集群

1. 启动服务端

一键启动服务端

# 切换到 servers 目录下 cd ./servers # 安装依赖包 + 启动服务器 npm install & npm run dev

(端口:7100,7101,7102,7801,7901 如果被占用将导致启动失败!)

部署配置说明

服务器配置文件:tsgf.server.config.json 配置内容参考 src/ServerConfig.ts 可指定配置文件:node dist/index.js -tsgfConfigFile="相对入口文件的其他位置" 生成部署文件

./servers/ 目录下执行 npm run build,然后复制出下列目录和文件:

dist/ node_modules/ (不用此目录,则需要执行 npm i 下载) package.json tsgf.server.config.json (配置参考 `src/ServerConfig.ts`) 可以使用 pm2 部署为系统服务 微信小程序需注意,因微信平台要求访问的域名是固定的, 并且要求HTTPS和WSS,所以就需要让游戏服务器走统一的反向代理。游戏服务器的地址使用url参数形式进行区分,由反向代理实现代理规则(如nginx)。比如:游戏服务器地址配置为:wss://game.a.com/?srv=n1&port=p (game.a.com 为 nginx 服务器地址),nginx是支持根据url参数定义代理规则,实际地址是:ws://n1.game.a.com:p/,然后 n1.game.a.com 解析为内网IP, 指向游戏服务器

2. 客户端对接 SDK

npm 包:

tsgf-sdk 核心客户端SDK包,还需要根据客户端所属平台引用对应的实现包:

tsgf-sdk-miniapp 只有客户端是小程序时引用

tsgf-sdk-browser 其他客户端都引用本包(含浏览器原生

tsgf-dev-demo-client demoServer 的客户端封装

示例

示例合集传送门

版本要求

tsgf-sdk 1.0.2 要求 tsgf-servers>=1.2.2 tsgf-sdk 1.3.0 要求 tsgf-servers>=1.3.0 tsgf-sdk 1.4.0 要求 tsgf-servers>=1.4.0

3. 设计简介

结构介绍

服务器结构图

玩家使用时序图

应用 一个开发者可以有多个应用,一般一个应用对应一个游戏。目前统一使用 default 应用标识

应用web服务器 为开发者自己实现用户体系的站点,用于将开发者的用户体系对接到 TSGF 的玩家体系

大厅服务器 为 HTTP 服务,可使用常规 web 集群方案进行部署,提供如玩家认证、创建房间、查询房间、匹配操作、分配游戏服务器等功能

游戏集群管理服务 为 websocket 服务,用来管理游戏服务器的服务,只能部署一个实例

游戏服务器 为 websocket 服务,可以部署多台(横向拓展),部署实例的数量随着在线玩家数量增加而增加。需要能连接到游戏集群管理服务,但实例之间并不进行通讯

匹配集群管理服务 为 websocket 服务,用来管理匹配服务器的服务,只能部署一个实例

匹配服务器 为 websocket 服务,可以部署多台(横向拓展),部署实例的数量随着应用增加而增加(单应用场景,只需要部署一个实例即可)。需要能连接到匹配集群管理服务,但实例之间并不进行通讯。

使用 TSRPC 作为通讯框架

并用 TSRPC 框架自带的代码生成/同步模块,导致 client 目录名以及相对路径的固定(乱改可能会导致出错)

自定义服务端逻辑

匹配器

新建类,建议存放在 src/shared/tsgfServer/match/ 实现接口 src/shared/tsgfServer/match/IMatcher.ts (可参考同目录下的 MatcherBaseMelee.ts) 修改代码 src/shared/matchServer/BaseMatchServer.ts->onAssignTask ,加入本匹配器类的实例

实现自己的应用web服务端

即,代替 demoServer 服务。负责将应用自己的用户体系对接到 TSGF 的玩家体系 推荐实现方案:

应用的用户登录后,在应用的web服务器上请求 TSGF 大厅的服务端认证接口,获得玩家认证信息(playerId/playerToken等)

可参考 src/demoServer/api/ApiPlayerAuth.ts

由应用将玩家认证信息返回到客户端,用于客户端的所有需要认证的api

匹配功能说明

匹配组,只有在相同组才能匹配到一起,决定是否在同一个匹配组的因素有:匹配自定义类型,匹配器标识,maxPlayers,队伍相关配置 创建房间时,ICreateRoomPara.isPrivate 决定当前房间人不满时是否允许参与匹配(需配置 ICreateRoomPara.matcherKey) matcherKey:匹配器标识定义,不同匹配器的匹配请求之间不会互通。(内置匹配器标识 MatcherKeys) matcherParams:匹配器参数,根据不同的匹配器使用对应的类(请看 MatcherKeys 的注释) 内置匹配器参数的字段:resultsContinueRoomJoinUsMatch 控制匹配成功是创建一个新房间时, 如果人未满,是否允许继续匹配满

帧同步设计要求

输入操作分离:与“我”无关的逻辑实现

其实只要是帧同步游戏,就需要做到上面说的设计

4. 交流群

QQ群

5. 引用

TSRPC 作为本框架的通讯层使用

帧同步联机游戏实战(一)Demo起步

MIT License Copyright (c) 2022 zum Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

相关知识

《王者荣耀》世冠对战掉落TS冠军纪念宝箱活动开启
《炉石传说》女巫森林TS奇数猎卡组搭配
明日方舟FIN-TS黄昏秘境低配打法攻略
2018kpl什么时候 kpl冬冠杯
魔兽世界wlk采药插件介绍
《问道手游》超级圣水晶作用效果介绍
蓝色协议职业选择建议
NEL联赛
网络游戏安全性的数据文件加密方案
游戏运营基本概念及专业术语

网址: zum/ts http://www.hyxgl.com/newsview364832.html

推荐资讯