商业化游戏服务器引擎自定义框架设计思路

栏目: 后端 · 发布时间: 6年前

内容简介:原文:Matchvs作为国内首款落地的商业化游戏服务器引擎,本文将以它的GameServer”的自定义服务端框架作为例子进行分享。与skynet等游戏服务器开源框架不同,作为一款商业版的游戏服务器引擎,由于Matchvs本质上是将一整套联网功能集成为一个高可用的SDK,开发者只需根据游戏逻辑,通过SDK提供的API接口来调整所需要的参数即可。但封装的API也带来了拓展性不足的局限性。为此,Matchvs除了提供SDK基础联网服务外,还提供一套名为“GameServer”的自定义服务端框架,以满足更为复杂的联

原文: https://blog.csdn.net/matchvs/article/details/83311574

Matchvs作为国内首款落地的商业化游戏服务器引擎,本文将以它的GameServer”的自定义服务端框架作为例子进行分享。

与skynet等游戏服务器开源框架不同,作为一款商业版的游戏服务器引擎,由于Matchvs本质上是将一整套联网功能集成为一个高可用的SDK,开发者只需根据游戏逻辑,通过SDK提供的API接口来调整所需要的参数即可。但封装的API也带来了拓展性不足的局限性。为此,Matchvs除了提供SDK基础联网服务外,还提供一套名为“GameServer”的自定义服务端框架,以满足更为复杂的联网需求。

GameServer架构

GameServer和引擎的高交互性,以及游戏低延迟的要求,决定了GS和引擎最好物理上接近。Matchvs游戏云提供的GS托管服务实际是一个PaaS服务(提供了应用程序的开发、运行环境),作为一个服务众多CP的PaaS平台,在Matchvs引擎引入GS需要解决如下几个关键问题:

(1)不同语言、框架依赖、运行环境如何满足?

(2)多个CP的GS如何管控,资源如何限制和分配?

(3)自动化的缩、扩容、监控、高可用如何保证?

针对上述问题,我们将CP开发的GS容器化,通过基础镜像来解决框架、依赖等环境差异的问题;将GS统一纳入K8S集群,使用namespace隔离不同CP资源调度、分配;GS被抽象成service形式存在,使用K8S的对应扩容、高可用机制。

商业化游戏服务器引擎自定义框架设计思路

image.png

GameServer SDK框架与接口

gameServer 与Matchvs server之间使用基于长连接、二进制协议的高性能RPC组件通信,能很好地支持 Matchvs 全双工低延迟通信、验证授权等功能要求。

gameServer framework 主要提供了以下功能:

  1. 接收并处理房间匹配、对战数据等消息;
  2. 为gameServer SDK提供主动推送数据的能力;
  3. 在独立部署方案下,向Matchvs注册gameServer。

    gameServer SDK提供面向开发者的房间、玩家、对战数据等API接口。开发者能够以此获取并控制每一个房间和玩家的状态,从而实现更丰富的游戏功能。

    自定义服务端逻辑。开发者基于gameServer SDK实现定制化的功能,例如控制游戏进程、仲裁、数据持久化等等。

    商业化游戏服务器引擎自定义框架设计思路

    image.png

    gameServer 与Matchvs server之间使用基于长连接、二进制协议的高性能RPC组件通信,能很好地支持 Matchvs 全双工低延迟通信、验证授权等功能要求。

    gameServer framework 主要提供了以下功能:

  4. 接收并处理房间匹配、对战数据等消息;
  5. 为gameServer SDK提供主动推送数据的能力;
  6. 在独立部署方案下,向Matchvs注册gameServer。
    gameServer SDK提供面向开发者的房间、玩家、对战数据等API接口。开发者能够以此获取并控制每一个房间和玩家的状态,从而实现更丰富的游戏功能。
    自定义服务端逻辑。开发者基于gameServer SDK实现定制化的功能,例如控制游戏进程、仲裁、数据持久化等等。

每天坚持学习1小时 Go 语言,大家加油,我是彬哥,下期见!如果文章中不同观点、意见请文章下留言或者关注下方订阅号反馈!

社区交流群:221273219

Golang语言社区论坛 :

www.Golang.Ltd

LollipopGo游戏服务器地址:

https://github.com/Golangltd/LollipopGo

社区视频课程课件GIT地址:

https://github.com/Golangltd/codeclass
商业化游戏服务器引擎自定义框架设计思路

Golang语言社区


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

简约至上

简约至上

[英] Giles Colborne / 李松峰、秦绪文 / 人民邮电出版社 / 2011-1-1 / 35.00

追求简单易用是人类的本性,无论是互联网产品。还是移动应用。亦或其他交互式设计,简单易用始终都是赢得用户的关键。同时,简单易用的程度也与产品寿命的长短密切相关。在《简约至上:交互式设计四策略》中,作者Giles托20多年交互式设计的探索与实践。提出了合理删除、分层组织、适时隐藏和巧妙转移这四个达成简约至上的终极策略,讲述了为什么应该站在主流用户一边,以及如何从他们的真实需求和期望出发,简化设计,提升......一起来看看 《简约至上》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具