游戏服务器架构

游戏服务器架构,第1张

案例1:寝室斗地主

案例2:社区斗地主

什么是服务器架构

案例:MMORPG 轩辕传奇 服务器架构 分区多世界

MMORPG:大型 多人 在线 角色扮演

分区多世界:运营视角

分区多世界:运维视角

双通服:世界上最遥远的距离,是从电信到网通的距离。

分区多世界:客户端视角

分区多世界:服务器视角

轩辕服务器为什么要这么多进程和机器 - 多维度切分

初始设计

一个进程包揽所有游戏服务器功能

问题:开第2个服应该怎么做呢?

按世界分离

公共服分离

公共服热备

按功能分离

按重要性分离

百万注册 = 10W活跃 = 1W在线,缓存应重点放在活跃身上。

设计演进:分区多世界原型v2

继续分离公共服

分离逻辑部分弱相关的功能,公共服分离服务器列表、版本升级、账号信息等功能。

切分逻辑进程

当前的现状是所有鸡蛋都放在一个篮子里,所有玩家都在一个进程上,好处是一个特性可以方便地操作到所有玩家上,风险是一个特性的bug可能会影响到所有玩家。

所有特性都在一个进程所带来的风险是:特性的不断的引入会使该进程稳定性和服务质量降低。

设计演进:分区多世界原型v3

如何做切分,参考原则如下:

服务器为长线运营的准备

基本原则:可用、可控、可扩展性

接入与负载

可用性

在线控制

过载保护

服务器中服务介绍

版本升级 tcus

目录服务 tdir

显示服务器列表,繁忙程度(参照在线人数)。

游戏过程 world/scene

运营支持 GM平台/idip

作为一名业内资深的游戏开发人员,经常会遇到实习的新同事在工作中会问到这样的问题:

工作中到底有哪些开源游戏服务器框架,该去值得学习呢?

囊括到node.js 、java、C#、golang 、c++、python 等技术栈有各种各样的游戏框架。

本文给大家总结了一些github上star和fork比较常用的且有一定数量的较为完整的框架做了一个说明,大家可以往下看。

地址: https://github.com/cloudwu/skynet

基于此引擎开发的游戏众多,很多棋牌小企业在用,例如简悦的 陌陌争霸 食物战争 等等很多产品...

地址: https://github.com/NetEase/pomelo

一花科技等棋牌在用

地址: https://github.com/ketoo/NoahGameFrame

代表作全民无双

地址: https://github.com/kbengine/kbengine

已经被电魂网络收购

地址: https://github.com/egametang/ET

经过产品验证并且教程比较完善

地址: https://github.com/topfreegames/pitaya

zooba appstroe排行很高的moba、吃鸡类游戏

但是,像c++类的框架对新手要求较高。

亦或者node.js类框架性能确实差一些,毕竟它是针对io密集型。

阿博自己的话使用的是pitaya这套框架。毕竟支持分布式使用的技术比较新,也经过各种验证。 其他的就先不做评价,留着给大家发表一下意见。

毕竟,只要适合自己的才是最好的。

是的不......

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

本节我们继续进行分享使用Golang开发游戏可以使用的相关插件,本节我们分享一个游戏服务器架构 gonet

整体架构如下:

目前这个仓库关注度尚可,具备很多的现成的模块可以直接使用,有兴趣的小伙伴们可以关注一下这个组件,属于国内作者开发的,有其相关的小圈子,详细可以查看 README


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/767295.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-20
下一篇2023-08-20

发表评论

登录后才能评论

评论列表(0条)

    保存