Unity | 游戏开发中的优化思维

news2024/9/22 7:27:17

目录

​​​​​​一、优化三板斧:

第1步:定标准

第2步:重数据

第3步:严测试

二、流程和性能的优化

1.定标准:

2.重数据:

三、交互和表现的优化

1.卡顿和延迟

2.手感硬

四、沟通和学习


​​​​​​一、优化三板斧:

        优化的开门三板斧:“SDT(Standard-Data-Test)”模型:定标准、重数据和严测试。

第1步:定标准

        就是要求在重事实的前提下,进行同标准下的问题沟通。相对应地,在做性能优化的量化分析中,我们经常会将设备一致和流程一致等作为前置标准,以确保分析和研究使用数据的确定性、可比性和可重现性。只有这样,我们在进行定性和定量分析的时候,才能最快达到逻辑条件的覆盖,否则容易陷入盲猜原因的冗余测试中。

第2步:重数据

        优化的本质就是改善数据。数据来源:

  • 既定事实:如项目大小,文件数量,代码行数等。
  • 人工统计:如人工计时统计等。
  • 代码逻辑:如代码 Loop嵌套循环遍数等。 
  • 工具测试:如UWA工具统计的各种运行时开销等。
  • 官方文档:如Unity官方文档,iPhone/Android手机官方文档等。

第3步:严测试

        优化调整的正确性、完整性和安全性是我们追求的胜利结果,切忌看到一点小胜后就盲目乐观与大意,要胜就要大胜完胜,优化后的严格测试环节就是确保大胜完胜的必备基础和先决条件。

二、流程和性能的优化

1.定标准:

  • Android设备的闪退以系统当前PSS值(Proportional Set Size)作为阈值参考。
  • 1G运存的iOS设备闪退阈值大约在645m左右。
  • 运存越大的安卓系统设备,APP相对应的PSS值中缓存比例也越大。

2.重数据:

        在1G运存的iOS设备上初始号半小时内的相关内存峰值低于645m。

        用数据说话: 升级机器配置很重要!但是有多重要?数据说话:启动项目耗时对比数据

三、交互和表现的优化

1.卡顿和延迟

        玩家通常会把有掉帧表现的卡顿和延迟混在一起说,我们知道它们有本质上的不同:

  • 卡顿:单秒的渲染帧数不满足设定的标准帧率,尤其在连续的时间内实际帧率波动太大,卡顿表现就会尤为明显,卡顿必然伴随着处理的延迟。
  • 延迟:操作的反馈比预期要来得晚,原因可能有多种,消息阻塞了,逻辑卡顿了,网络耗时长,响应灵敏度低等等。

        【定标准】我们要将游戏操作的延迟控制在可接受范围之内。

2.手感硬

        如果是对操作要求非常高的即时类游戏,如若采用状态同步,则策略通常是以前端的表现优先,即操作的响应先行,不依赖于服务端的逻辑判断,但操作的最终结果则需要在服务器进行校验,若采用帧同步则需要等待服务器转发后,各端再同时进行表现。不同的游戏类型对于延迟的要求和处理方案均不同,需细心处理对待。

        操作的响应反馈过程是交互的重要一环,我们对于一次交互产生的感觉以及交互质量的判断均取决于此。例如当我们说操作过程给人感觉比较硬的时候,一般说的是在这次交互过程中的响应反馈过程是偏硬的,而硬这种体验从现实来说,就是缺乏过程或过程转换太快的一种描述(软通常就伴随着有弹性和形变过渡)。

        【定标准】游戏操作的手感不要太硬。

四、沟通和学习

1.沟通

        在心理学上有一个叫自利归因偏差的理论,说的是在我们的潜意识里,有归因的倾向性。成功的事都归因于自己,失败的事都归因于别人。这是大脑的一种自我保护机制,这种自我保护通常会让我们无视既定事实,会有缺乏理性的冲动。

        【定标准】确保我们的沟通可以客观,克制本能的下意识自利冲动。 

2.学习

        【可量化】学习不仅仅要求知识和技能成长,更要重视学习思维与方法的训练与成长。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言深度解析:static与extern关键字全指南

[大师C语言]合集[大师C语言(第一篇)]C语言栈溢出背后的秘密[大师C语言(第二十五篇)]C语言字符串探秘[大师C语言(第二篇)]C语言main函数背后的秘密[大师C语言(第二十六篇)]C语言结构体…

Electron 集成 Express + p-limit + SQlite WAL读写模式解决并发锁库的问题

背景 经过通信层面的优化后,我们不再走 Electron 提供的内置进程间通信 IPC,改为利用 Express 提供的 Http 本地服务来进行多处直达通信机制,同时利用本地 Sqlite 来保存大量数据,但 Express 提供的本地服务是支持并发请求的&…

食品零食小吃商城管理系统-计算机毕设Java|springboot实战项目

🍊作者:计算机毕设残哥 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目、 源…

DataX二次开发之达梦数据库插件

达梦数据库自定义插件 达梦8的依赖引入定义reader module定义writer module修改核心配置数据库类型支持打包插件测试 以mysql到dm数据库为例配置mysql2dm.json执行任务查询下结果 DataX二次开发之达梦数据库插件 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,支持…

eNSP 华为远程登录路由器

华为远程登录路由器 前提&#xff1a;主机能与路由器通信就行&#xff0c;如果不同网段就配路由协议&#xff0c;这里直接模拟直连通信 Cloud&#xff1a; R&#xff1a; <Huawei>sys [Huawei]sys R [R]int g0/0/0 [R-GigabitEthernet0/0/0] [R-GigabitEthernet0/0/0]i…

AQS 原理详解

日常开发中&#xff0c;我们经常使用锁或者其他同步器来控制并发&#xff0c;那么它们的基础框架是什么呢&#xff1f;如何实现的同步功能呢&#xff1f;本文将详细讲解构建锁和同步器的基础框架--AQS&#xff0c;并根据源码分析其原理。 一、什么是 AQS&#xff1f; (一) AQS…

Oracle+ASM+High冗余详解及空间计算

Oracle ASM&#xff08;Automatic Storage Management&#xff09;的High冗余模式是一种提供高度数据保护的策略&#xff0c;它通过创建多个数据副本来确保数据的可用性和安全性。 以下是关于Oracle ASM High冗余的详细解释&#xff1a; 一、High冗余的特点 1.数据冗余度 在Hi…

Java | Leetcode Java题解之第342题4的幂

题目: 题解&#xff1a; class Solution {public boolean isPowerOfFour(int n) {return n > 0 && (n & (n - 1)) 0 && n % 3 1;} }

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task03 大咖项目分享 人话八股文Bakwaan_Buddy项目开发尝试

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task03 人话八股文Bakwaan_Buddy项目开发尝试 Idea: 我们草台班子目前的想法是解决大家计算机学院毕业面临的BUG——不爱背、背不下来八股文&#xff0c;觉得枯燥、烦、工作了用不着&#xff0c;反正就是知识他不进…

Python酷库之旅-第三方库Pandas(085)

目录 一、用法精讲 356、pandas.Series.str.isnumeric方法 356-1、语法 356-2、参数 356-3、功能 356-4、返回值 356-5、说明 356-6、用法 356-6-1、数据准备 356-6-2、代码示例 356-6-3、结果输出 357、pandas.Series.str.isdecimal方法 357-1、语法 357-2、参数…

RabbitMQ的核心概念

RabbitMQ是一个消息中间件&#xff0c;也是一个生产者消费者模型&#xff0c;负责接收&#xff0c;存储和转发消息。 核心概念 Producer 生产者&#xff0c;是RabbitMQ Server的客户端&#xff0c;向RabbitMQ发送消息。 Consumer 消费者&#xff0c;是RabbitMQ Server的客…

Ps:首选项 - 单位与标尺

Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K Photoshop 首选项中的“单位与标尺” Units & Rulers选项卡允许用户根据工作需求定制 Photoshop 的测量单位和标尺显示方式。这对于保持工作的一致性和精确性&#xff0c;尤其是在跨设备或跨平台…

mybatis plus 查询部分源码分析,typehandler怎么实现的?FastjsonTypehandler 查询问题怎么解决?

我们在使用mysql的json字段的时候有时为了方便&#xff0c;最好是查询的时候直接反序列化为对象比较好&#xff0c;这时候我们就用到了typehandler这个属性 首先mybatis plus 会初始化一系列的 typeHandler,并且扫描用户设置的typeHandler路径&#xff08;mybatis-plus: type-…

Flutter-->AAPT: error: resource android:attr/lStar not found.

更新Flutter 3.24.0之后, 打包出现AAPT: error: resource android:attr/lStar not found.问题, 这里出一个我的解决方案. 更新Flutter 3.24.0之后, Android编译sdk需要使用34, 否则就会出现很多问题… 由于很多库都不可能及时更新适配到Android sdk 34, 所以可以等pub get将子…

硅谷物理服务器有哪些关键优势和特点

硅谷的物理服务器设施全球知名&#xff0c;为各类企业提供了卓越的IT基础设施支持。下面将逐一探讨硅谷物理服务器的关键优势和特点&#xff0c;rak小编为您整理发布硅谷物理服务器有哪些关键优势和特点。 1. 卓越的性能 高性能计算能力&#xff1a;硅谷的物理服务器采用最新一…

Authentik:开源身份提供商

Authentik 是一个开源身份提供商&#xff0c;旨在实现最大的灵活性和适应性。 它可轻松集成到现有环境中并支持新协议。 它是一个全面的解决方案&#xff0c;用于在您的应用程序中实现注册、帐户恢复等功能&#xff0c;无需手动管理这些任务。 Authentik 可以无缝集成到现有…

arcgis打开不同tif格式编码的栅格数据

1、如下图&#xff0c;将文件包包解压打开&#xff0c;看到【2020年GDP数据】。 2、点击进入【2020年GDP数据】文件夹如下图所示。接着去打开arcgis软件。 3、按照步骤来&#xff0c;在arcgis【目录】里面添加【文件夹】然后选中你刚刚解压的【GDP文件夹数据】&#xff0c;最…

21 注意力机制—自注意力

目录 1.自注意力和位置编码跟CNN,RNN对比位置编码(position encoding)1、和 CNN / RNN 不同,自注意力并没有记录位置信息2、为了使用序列的顺序信息,通过在输入表示中添加位置编码将位置信息注入到输入里3、P 的元素具体计算如下:位置编码矩阵绝对位置信息相对位置信息总…

Linux运维篇-yum命令报错 /lib64/libcurl.so.4相关

目录 项目场景&#xff1a;问题描述原因分析&#xff1a;解决方案&#xff1a; 项目场景&#xff1a; centos7&#xff0c;8&#xff0c;同样也适用openEuer&#xff0c;Kylin等redhat系的国产化操作系统 问题描述 在使用yum命令时报错&#xff1a; 主要报错信息为&#xff1…

诈骗未成功是否构成犯罪?

诈骗未成功不一定构成犯罪。在刑法上&#xff0c;构成诈骗罪需要满足特定的构成要件&#xff0c;包括有非法占有的目的、实施了虚构事实或隐瞒真相的行为、对方因此陷入错误认识并处分财产、行为人或第三方取得财产、被害人遭受财产损失。如果诈骗行为未能成功&#xff0c;即被…