游戏服务器算法-AOI基本介绍

news/2024/5/1 1:52:16/文章来源:https://blog.csdn.net/haha1fan/article/details/129122406

一、直接比较所有对象

最直观也是最效率最低的一种方法。当一个事件发生,我们需要获得AOI范围以内的物体时,直接遍历游戏中所有的对象,并且进行坐标判断,如果小于或者等于AOI的范围,则为需要的游戏对象。

这种方法实现非常简单,但是带来的问题是当游戏世界中对象较多时,效率会直线低下,一般用于FPS的游戏,一般的用户不是很多,比如守望先锋,都可以不用考虑AOI方案。

二、空间切割监视的方法

将空间按照一定的方法进行分割,例如根据AOI范围的大小将整个游戏世界切分为固定大小的格子。当游戏物体位于场景的时候,根据坐标将它放入特定的格子中。

 

例如玩家1在位置7中,如果游戏内的AOI的范围为1个格子。当我们需要获取这个玩家周围的AOI对象时,只需要遍历7周围9个里面的对象即可。

可以看出空间分割在计算AOI对象时,只需要遍历周围几个空间格子即可,大大提高了计算效率。但是该方法也有缺点,格子数和空间大小成为正比,空间越大,所需要的内存空间也越大。果玩家数里远远小于空间的格子数,使用这种方法来计算AOI可能比第一种算法还差。

 

三、十字链表

格局物体的X,Y坐标分别建立两条链表A、B。在链表A上,根据对象的X坐标进行排序;在链表B上,根据对象的Y坐标进行排序。如果游戏世界内有下列坐标的对象:

(2,2),(3,4),(6,5),(1,5),(3,1),(5,2)

那么在十字链表里有如下数据结构:

当我们需要知道一共对象AOI范围内所有对象时,只需要在X、Y两条链表上向两个方向遍历即可

 

 X链表,——> 按照X坐标排序

Y链表,——> 按照Y坐标排序

十字链表发在计算AOI范围内对象时,计算量非常小,且跟空间大小无关,因此省去大量无效的遍历过程。除了这些优点外,十字链表法也有一些需要注意的地方,因为在两条链表中都必须按照大小顺序进行排列,因此对象在不停的移动,会带来比较大量的计算。

参考资料:

《游戏开发》-网易互动娱乐事业群

云风blog:云风的 BLOG: 开发笔记 (13) : AOI 服务的设计与实现

深入探索AOI算法:深入探索AOI算法 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_71542.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧校园信息化管理平台技术方案

1.2总体架构设计 智慧校园平台是以学校现有网络为基础,以服务于全校师生的教学、科研、生活为目的,建立在学校数据中心平台之上,涵盖了学校的学校管理、学生管理、教学管理、班级管理、家校共育、教务管理等全方位的管理信息平台与信息服务平…

积分球原理及积分球类型介绍

标题积分球标准型积分球LED积分球均匀光源便携式高亮度积分球均匀光源微光积分球均匀光源积分球均匀光源iSphere高光谱响应光学积分球其他分类积分球 积分球原理:由于球体内整涂有白色漫反射材料的空腔球体,球壁上开有采样口,当待测样品光源进入积分球的…

公司缺人面了8个测试员,他们都有一个相同的缺点.....

年后公司缺人,面了不少测试,结果竟然没有一个合适的。 一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。 看简历很多都是3年工作经验,但面…

约束优化:约束优化的三种序列无约束优化方法(罚函数法)

文章目录约束优化:约束优化的三种序列无约束优化方法(罚函数法)外点罚函数法L2-罚函数法:非精确算法对于等式约束对于不等式约束L1-罚函数法:精确算法内点罚函数法:障碍函数法参考文献约束优化:…

Docker实用命令手册

Docker实用命令手册 大家好,我是比特桃。本文汇总了超实用的Docker命令手册,本文适用于有一定Docker基础的同学。如果你对Docker不了解,可能无法直接使用这些命令。但别担心,Docker本身是一个工具,如果只是用起来其实…

算法专题训练营

动归算法专题 1.拆分词句 是不是,在不在都是可以用动归解决的 状态转义方程不一定都是等式,也有可能是条件 2.三角形 动归算法也不是一定要借助新开空间,也是可以用自己原来的空间 3.背包问题 4.分割回文串-ii 5.不同的子序列 贪心算法专题 只管一步的最优结果, 1.分割平衡…

高并发系统设计之负载均衡

本文已收录至Github,推荐阅读 👉 Java随想录 文章目录DNS负载均衡Nginx负载均衡负载均衡算法负载均衡配置超时配置被动健康检查与主动健康检查LVS/F5Nginx当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到…

Navicat Premium 安装 注册

Navicat Premium 一.Navicat Premium的安装 1.暂时关闭windows的病毒与威胁防护弄完再开,之后安装打开过程中弹窗所有警告全部允许,不然会被拦住 2.下载安装包,解压 链接:https://pan.baidu.com/s/1X24VPC4xq586YdsnasE5JA?pwdu4vi 提取码…

论文阅读 | Real-Time Intermediate Flow Estimation for Video Frame Interpolation

前言:ECCV2022 快速插帧方法 Real-Time Intermediate Flow Estimation for Video Frame Interpolation 引言 进行视频插帧目前比较常见的方法是基于光流法,分为两个步骤:1.通过光流对齐输入帧,融合对齐的帧 光流并不能直接同于…

epoll 笔记

maxevents 参数大小一般不超过64必须够了 maxevents 个事件,才会传到用户空间吗?可见,只要有事件就可以传到用户空间。一台服务器可以支撑多少个链接https://blog.csdn.net/mijichui2153/article/details/81331345 0、两台虚拟机的初始状态如…

亮个相吧小宝贝儿,五款压箱底的软件

今天要给大家推荐5款压箱底的宝贝软件了,百度搜索一下就能找到下载链接了。 1.开源浏览器——Firefox Firefox是一个自由的,开放源码的浏览器,适用于 Windows, Linux 和 MacOS X平台,Mozilla Firefox官方版体积小速度快&#xf…

rocketmq延时消息自定义配置

概述 使用的是开源版本的rocketmq4.9.4 rocketmq也是支持延时消息的。 rocketmq一般是4个部分: nameserver:保存路由信息broker:保存消息生产者:生产消息消费者:消费消息 延时消息的处理是在其中的broker中。 但是…

堆球问题,开普勒猜想(格密码相关)

目录 一. 介绍 二. 历史进展分析 三.2维下的堆球问题 四. 3维下的堆球问题 五. 8维与24维下的堆球问题 总结 一. 介绍 堆球问题又叫堆球理论、最密堆积、球填充,英文为The Theory Of Sphere Packings。 堆球问题的本质就是填充一堆大小相同的球。要求这些球…

公会发展计划(GAP)第三季

继前两季发布的公会发展计划取得成功之后,Yield Guild Games 现在推出了第三季的公会发展计划(GAP)。GAP 在第二季有了显著的增长,有超过 3000 个成就 NFT 被铸造。GAP 是以成就为导向的社区代币分配协议,下一次迭代将…

pmp考试是什么?适合哪些人学?含金量?(含pmp资料)

先说一下我这个人的理解,PMP就是提高项目管理理论基础和实践能力的考试。 再说说PMP官方一点的说明: PMP证书全称为Project Management Professional,也叫项目管理专业人士资格认证。PMP证书由美国项目管理协会(PMI)发起,是严格…

美国原装二手keysight E4980A(安捷伦)2MHZ LCR表

Agilent E4980A、Keysight E4980A、LCR 表,20 Hz - 2 MHz E4980A 是 Agilent 的 2 MHz LCR 表。LCR表是一种电子测试设备,用于测量电子元件的电感(L)、电容(C)和电阻(R)。LCR 表可…

关于在VM上的windows server 2022系统安装

目录 1、windows serer 2022安装的准备工作 1)下载系统 2)寻找对应系统密钥 3)配置server系统开机配置项(可能会出现sconfig配置界面) 2、开始安装server系统 1、windows serer 2022安装的准备工作 1)…

【离散数学】1. 数理逻辑

1.数理逻辑 2. 集合论 3. 代数系统 4. 图论 离散数学:研究离散量结构及相互关系的学科 数理逻辑集合论代数系统图论 逻辑:研究推理的科学 数学方法:引进一套符号系统的方法 数理逻辑是用数学方法研究形式逻辑的科学,即使用符号化…

「可信计算」与软件行为学

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

实验室设计|实验室设计要点SICOLAB

一、实验室设计规划要素1、实验室布局:实验室的布局要符合实验室工作流程,可以将实验室划分为干净区和污染区,以确保实验室的卫生和实验的准确性。2、设备选购:根据实验需要选择适当的设备,并确保设备的质量和性能符合…