IO游戏设计思路

news/2024/9/21 4:30:48

1、TCP ,UDP ,KCP ,QUIC

TCP 协议最常用的协议

UDP协议非常规的协议,因为需要在线广播,貌似运营商会有一些影响

KCP 基于UDP的协议,GitHub - l42111996/java-Kcp: 基于java的netty实现的可靠udp网络库(kcp算法),包含fec实现,可用于游戏,视频,加速等业务,暂时看中了这个,后面研究下。

QUIC 谷歌基于UDP的协议,实现过于厚重,放弃

基于UDP被运营商管制的原因,暂时先用选择TCP

2、架构设计

架构设计基本上还是常规的房间服 做所有的战斗逻辑

game服,承载常规的业务逻辑

为了能多承载一些用户,可以增加一个gate服,承载连接

中规中矩,没什么亮点

3、设计细节

3.1 游戏架构大纲

服务端技术底层:Springboot + Netty + Disruptors + Akka + protobuf 

移动逻辑使用帧同步,同步频率 60/s ,可适当降低频率

客户端可以做一些预测移动

房间内移动的对象有,玩家,敌人,子弹等,可以抽象出一类移动的物品

其他的战斗逻辑可以使用状态同步

3.2 游戏通信流程

登录流程:

客户端连接gate服务器之后,远程调用Game服登录,加载玩家数据到内存

通信流程:

客户端发送消息到gate服之后,Gate根据消息类型转发到对应的服务器,如果是Game服的消息转发到Game,否则转发到Room服

战斗流程

线上匹配进入向Room服发送创建请求,创建完成之后同步玩家数据到room服,并设置room为ready状态,发送个客户端,接着进入战斗状态


http://lihuaxi.xjx100.cn/news/2178252.html

相关文章

Kata Containers零基础学习从零到一

文章目录 docker和Kata Containers的区别Docker容器共享宿主机内核每个容器实例运行在轻量级虚拟机(MicroVM)总结 通俗例子Kata Containers架构实际Kata Containers架构图解容器技术栈总结 agent和shim家长(shim进程)的角色保姆&a…

呆马科技----构建智能可信的踏勘云平台

近年来,随着信息技术的快速发展,各个行业都在积极探索信息化的路径,以提升工作效率和服务质量。智慧踏勘云平台是基于区块链和大数据技术构建的全流程智慧可信踏勘解决平台。平台集远程视频、数据显示、工作调度、过程记录为一体,…

使用curl发送http请求

curl发送post请求 可以通过-X指定请求类型,-d传递数据 curl -X POST -d "param1=value1&param2=value2" http://example.com/resource发送JSON数据,可以使用-H来指定Content-Type,并使用-d传递JSON字符串 curl -X POST -H "Content-Type: application…

【ONE·Git || 基本用法入门】

总言 主要内容:主要介绍Git中常用的指令。   PS:多人协作与企业开发模型使用,此部分内容不作博文总结。             文章目录 总言1、初识Git1.1、版本控制器1.2、git安装 2、基本操作2.1、Git本地仓库2.1.1、创建Git本地仓库&…

Linux 编译器gcc/g++使用

gcc/g同理 编译器运行过程 1. 预处理(进行宏替换) gcc -E a.c -o a.i 预处理后还是c语言 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面 告诉gcc,从现在开始进行程序的翻译,将预处理工作做完停下 2. 编译&#x…

TS中的InstanceType函数和Typeof 操作符

InstanceType函数 简介 instancetype函数&#xff1a;该函数返回&#xff08;构造&#xff09; 由某个构造函数构造出来的实例类型组成的类型。 常见使用 场景一 【vue中的instanceType用法】父组件用ref获取子组件时&#xff0c;通过 instanceType获取子组件的类型 <!-- …

从一维到二维:数组转换的奥秘与应用

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;数组转换的魅力 二、一维数组转二维数组的基础方法 1. 确定二维数组的…

软件架构设计属性之一:功能性属性浅析

引言 软件架构设计属性中的功能性属性是评估软件架构是否满足其预定功能需求的关键指标。功能性属性确保软件能够执行其设计中的任务&#xff0c;并提供所需的服务。以下是对软件架构设计中功能性属性的浅析&#xff1a; 一、定义 功能性属性是指软件系统所具备的功能特性&a…