| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 常用游戏服务架构(tcp/ws,golang技术栈) 篇一 -> 正文阅读 |
|
[网络协议]常用游戏服务架构(tcp/ws,golang技术栈) 篇一 |
本文是概述同步技术,主要为架构和框架选型。 用户互相有强交互,实时性要求较高,服务端需要主动推送消息。我们选择tcp/ws等协议作为基础网络荷载。 基本上所有的游戏类型都可以选用这个架构。 优势: 主动推送,低延迟。强交互。(业务决定) 劣势: 社区相对不活跃。现成的稳定的技术栈基本都是C/C++。根据业务的特殊性,也较难有一个通用的框架。 具体游戏同步方法又可以分为,帧同步和状态同步。 以下先根据具体游戏类型,我们选择不同的同步模型: 帧同步: 安全性要求相对不高(外挂,作弊等)。网络稳定性要求相对高,抗延迟能力相对差。物理引擎使用较少,甚至没有。单局用户数量少(同步的消息少) 比如王者荣耀,贪吃蛇,格斗游戏,星际争霸等。 简单模型可以选择lockstep(一人卡顿大家全卡)。? 目前更加常用的是乐观帧,服务器跑帧,客户端指令能跟到哪一帧就在哪一帧生效。? 状态同步: 一般同步玩家的位置方向速度,服务器计算玩家状态发送客户端进行播放。 比如屁股,吃鸡,lol,WOW等。 具体游戏服务器架构,我们可以简单分为房间类型,和大地图类型。 房间类型服务: 阶段一:日活几万,玩法不多较为单一。可以用单游戏服结构。 ?登录建议拆分出来。可能有不同渠道玩家登录,wx,qq,appleid等。 阶段二:玩法稳定,日活更高,不断的迭代新的玩法。 ?此时可以用代理服作为一个中间层,保存玩家状态。 阶段三: 日活更高,单个服务无法承载。 ?通过passport来分配不同的agent,做负载均衡。 gamemanager分配不同game,做负载。 完备: ? 再加上需要的log,db等 可选基础框架: |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:37:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |