example
example

心得 GTA6多人联机平台与服务端预测和探讨

Jayson

论坛名人
论坛元老
高级用户
认证用户
本文仅对目前多人联机平台和服务端技术框架设计与未来多人联机平台和服务端技术框架设计进行主观评价和预测。

题外:在GTA6多人联机平台发布后,我将筹备计划和组织开发GTA6全新RP服务端

FiveM 的架构是典型的前后端不分离模式(一坨屎)

未来GTA6上线到明确的多人联机平台后,才可知晓平台架构,但明确一点实现多人在线联机底层就是Secket

我预测未来不管由CitizenFX Collective团队开发GTA6联机平台“SixM?”或Rockstar Games亲自下场,我均认为会使用前后端分离的架构进行设计与开发。

预测原因:

  • 前后端分离架构安全性越高与前后端不分离架构。
  • 前后端分离架构,有利于开发与维护。
  • 使用前后端分离架构,所有的脚本不再是文件需要存放到服务器,而是模组开发者自行托管只需发布对应的后端API,供前端进行请求返回相应结果。当然这样模组开发者就不用担心付费脚本卖出去了结果泄露了保护开发价值,后端API请求需要进行OA2或者其他key验证。甚至可以加入公私密钥进行加密处理使得数据更加安全。
  • 使用前后端分离架构,前端即为玩家服务器,后端为脚本开发者,每一个脚本都变成了一个微服务。开服只需要找到想要的脚本对接API即可。
  • 所有的模组、脚本、功能插件都好,均可以进行热更新热修复。后端开发或更新,无需重启前端玩家服务器,就算后端崩了前端玩家不受影响,只是某一功能不可用。
  • 大大降低DDOS攻击的威胁程度,因为开服成本极低,前端被打崩了只需要换个ip或者换个服务器重新开启前端服务即可。DDOS攻击成本反而大大增加了。
  • 前端只需要做简单的软防,如:关闭所有端口仅开放一个玩家访问端口即可,后端只需要将所有端口关闭,仅开放与前端通信的端口即可,并对端口配置限制ip访问(白名单)以及对API进行公私密钥加密最大程度的软防,其他交给CDN和机房硬防。
  • 前端为了让玩家对某些静态资源的高速访问还可以独立配置OSS对象存储和CDN内容分发。
  • 以上部分内容属于商业级解决方案,但随着技术的迭代和封装,大部分技术使用门槛很低。
  • 还有很多原因和新的技术特性,前后端分离架构的解决方案优于前后端不分离。

使用前后端分离架构开发的游戏平台举例:
  • Fortnite(堡垒之夜)
  • League of Legends(英雄联盟)
  • Minecraft
  • Genshin Impact(元神)

在现有FiveM平台,使用前后端分离架构进行开发服务端,在技术层面完全可行,但成本较高,包括但不限于时间、人员精力、产品价值。
通过前后端分离的方式,可以在FiveM平台上开发一个全新的服务端。前端使用现代Web技术React、Vue、Angular进行开发,后端使用Java、Go等处理业务逻辑和实时通信,FiveM服务器通过HTTP请求或WebSocket与后端进行通信。合理的架构设计和技术选型可以提高系统的开发效率、可扩展性和性能。


以下是对两种架构的解析说明:

前后端不分离
即为单体架构(Monolithic Architecture)
特点
  • 单体应用:前后端代码在同一个项目中,通俗理解同在一个文件夹。
  • 服务器渲染:服务器负责处理用户所有的业务请求,并返回给客户端。
  • 集中部署:整个应用作为一个单体进行部署和运行。
优点
  • 简单部署:一个部署单元,简单易懂。
  • 简单开发:前后端代码紧密结合,方便开发和调试。
  • 即时渲染:服务器处理业务,客户端加载后显示即可,无需等待额外的API请求或其他模块。
缺点
  • 扩展性差:单体应用模块增大后,维护和扩展困难。
  • 部署复杂:每次修改后都需要重新部署整个应用,可能影响稳定性。
  • 前后端耦合:前后端代码紧密耦合,难以独立开发和部署。
示例
用户 => [服务器] => [后端逻辑] => [数据库] => [前端渲染]

前后端分离即为
  • 前后端分离架构(Decoupled Architecture)
  • 微服务架构(Microservices Architecture)
特点
  • 独立开发:前端和后端代码独立管理,前端即客户端效果和单机业务,后端即需要与服务器持久化通信、请求后端API。
  • 前端渲染:前端通过调用后端API获取数据,在客户端进行渲染。
  • 独立部署:前端和后端可以独立部署和扩展。
优点
  • 可扩展性:前端和后端可以独立扩展,提高系统弹性。
  • 灵活性:可以使用最适合前后端的技术栈,提升开发效率和性能。
  • 独立开发:前后端团队可以并行开发,提高开发效率。
缺点
  • 复杂性增加:需要处理跨域问题和前后端通信,增加了系统复杂性。
  • 部署成本:前后端需要独立部署和维护,增加了运维成本。
  • 性能问题:首次加载可能较慢,需要额外的性能优化。
示例
用户 => [前端服务器(静态资源/FiveM平台)] => [CDN] => [API服务器(后端逻辑)] => [数据库]
 
由版主最后编辑:

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
非常不错的探讨,有深度
 
顶部