Forwarded from gledos 的微型博客
巨大的游戏体积
如今的游戏体积越来越大,虽然有的游戏有与之匹配的大地图与高精度的贴图,不过还是有游戏没有做到最优化。
比如《无主之地3》默认下载全部语言的语音,即使你只用一个语音,也要等待全部下载完成才能游玩。《FIFA17》等部分 EA 游戏可以手动 删除不需要的语音文件,腾出数 GB 的硬盘空间。
《泰坦陨落》有 35 GB 未压缩音频,显然可以至少压缩到一半的体积。
《幽浮:未知敌人》含有 预渲染的视频文件,但分别做了 1080p 与 720p 的两份。虽然游戏发售在 2012年 ,但这么做显然不是最优解。
一些游戏将高清材质、语言等作为「可下载内容 (DLC)」,这是一个不错的方法。封面图 是使命召唤系列的游戏体积柱状图。
本文主要参考自视频:Why Games Are Massive | 中文字幕
#游戏 #原理 #清单
如今的游戏体积越来越大,虽然有的游戏有与之匹配的大地图与高精度的贴图,不过还是有游戏没有做到最优化。
比如《无主之地3》默认下载全部语言的语音,即使你只用一个语音,也要等待全部下载完成才能游玩。《FIFA17》等部分 EA 游戏可以手动 删除不需要的语音文件,腾出数 GB 的硬盘空间。
《泰坦陨落》有 35 GB 未压缩音频,显然可以至少压缩到一半的体积。
《幽浮:未知敌人》含有 预渲染的视频文件,但分别做了 1080p 与 720p 的两份。虽然游戏发售在 2012年 ,但这么做显然不是最优解。
一些游戏将高清材质、语言等作为「可下载内容 (DLC)」,这是一个不错的方法。封面图 是使命召唤系列的游戏体积柱状图。
本文主要参考自视频:Why Games Are Massive | 中文字幕
#游戏 #原理 #清单
Forwarded from gledos 的微型博客
奥斯本效应 (Osborne effect)
1981年,奥斯本计算机公司推出了初代便携式电脑 —— Osborne 1,特点是自带了许多软件,所以相当的划算。
但在 1983年,创始人早早的宣布了改良版产品 —— Osborne Executive 和 Osborne Vixen,这让 Osborne 1 销量锐减,因为消费者都在等待新的产品。
1985年,奥斯本计算机公司破产。
这就是 奥斯本效应,NVIDIA 的「老黄刀法」、游戏机的生命周期基本也有考虑到奥斯本计算机公司的情况,所以做了规避。不过最近出现了《Valve 已经在计划 Steam Deck 2》的新闻……
#原理 #游戏
1981年,奥斯本计算机公司推出了初代便携式电脑 —— Osborne 1,特点是自带了许多软件,所以相当的划算。
但在 1983年,创始人早早的宣布了改良版产品 —— Osborne Executive 和 Osborne Vixen,这让 Osborne 1 销量锐减,因为消费者都在等待新的产品。
1985年,奥斯本计算机公司破产。
这就是 奥斯本效应,NVIDIA 的「老黄刀法」、游戏机的生命周期基本也有考虑到奥斯本计算机公司的情况,所以做了规避。不过最近出现了《Valve 已经在计划 Steam Deck 2》的新闻……
#原理 #游戏
Forwarded from gledos 的微型博客
被虚假宣传的轮询率
鼠标、键盘、手柄以及触摸屏,这些输入设备基本都是轮询机制。即输入设备向系统表示,自己每秒会更新多少次状态。当轮询率/回报率为 1000 Hz,那么设备每秒会发送 1000 次状态给系统。
以上描述,仅能知晓轮询率表示的是轮询密度,跟延迟的关系只是间接的。但有北通混淆了概念,用「4000 Hz 超高轮询率、0.25 毫秒的超低延迟」的表述,让人误以为手柄的延迟真的如此之低。
有人在使用手柄延迟测试工具 GPDL,亲自测试了这款手柄。虽然受限于测试方法,仅测试了有 1000 Hz 与 2000 Hz,但还是发现 20 毫秒的平均延迟,固件更新后才稍微好了一些,在 10 毫秒左右。
而知名的 Sony DualSense 只有 11.99 毫秒的平均延迟,并且超频后延迟更低。125 Hz 的 Xbox Series Controller 更是低至 5.77 毫秒的平均延迟。不过任天堂 Joy-Con 的轮询率是变化的,在 65 到 125 Hz 之间,平均延迟为 15 毫秒。
所以轮询率基本上没法表明延迟情况,这在其它输入设备上也是如此,如手机触摸屏。现在游戏手机会宣传触控采样率,红魔更是宣传了 480 Hz 的采样率,然而这是插值升上去的,与其它高端手机的实际全链路延迟,没有明显区别。(该测试来自 极客湾)
附言:霍尔摇杆的延迟有些复杂,可能是防抖算法较复杂,一些小厂的霍尔摇杆,在部分情况下,延迟能高达 30 毫秒。这是 60 FPS 游戏两帧左右的时间,对玩家会有较大影响。
#游戏 #原理
鼠标、键盘、手柄以及触摸屏,这些输入设备基本都是轮询机制。即输入设备向系统表示,自己每秒会更新多少次状态。当轮询率/回报率为 1000 Hz,那么设备每秒会发送 1000 次状态给系统。
以上描述,仅能知晓轮询率表示的是轮询密度,跟延迟的关系只是间接的。但有北通混淆了概念,用「4000 Hz 超高轮询率、0.25 毫秒的超低延迟」的表述,让人误以为手柄的延迟真的如此之低。
有人在使用手柄延迟测试工具 GPDL,亲自测试了这款手柄。虽然受限于测试方法,仅测试了有 1000 Hz 与 2000 Hz,但还是发现 20 毫秒的平均延迟,固件更新后才稍微好了一些,在 10 毫秒左右。
而知名的 Sony DualSense 只有 11.99 毫秒的平均延迟,并且超频后延迟更低。125 Hz 的 Xbox Series Controller 更是低至 5.77 毫秒的平均延迟。不过任天堂 Joy-Con 的轮询率是变化的,在 65 到 125 Hz 之间,平均延迟为 15 毫秒。
所以轮询率基本上没法表明延迟情况,这在其它输入设备上也是如此,如手机触摸屏。现在游戏手机会宣传触控采样率,红魔更是宣传了 480 Hz 的采样率,然而这是插值升上去的,与其它高端手机的实际全链路延迟,没有明显区别。(该测试来自 极客湾)
附言:霍尔摇杆的延迟有些复杂,可能是防抖算法较复杂,一些小厂的霍尔摇杆,在部分情况下,延迟能高达 30 毫秒。这是 60 FPS 游戏两帧左右的时间,对玩家会有较大影响。
#游戏 #原理
👍1
Forwarded from gledos 的微型博客
线程优化
AMD Ryzen 7950X3D 由两个 8 核的 Core Chiplet Die(CCD)组成,分别是含有 3D V-Cache 的缓存更高的 CCD0,以及频率更高的 CCD1。单纯比算力,当然是让全部 16 个核心都运作最快,但游戏就不好说了。
大多数游戏对缓存敏感,所以让游戏仅运行在 CCD0 上,这样效果最好。JayzTwoCents 测试了《无主之地》,发现能提升 44 % 的帧速。只是驱动可能不会正常运作,导致游戏被运行在随机核心上,也就无法利用 3D V-Cache 的大缓存优势。
这时玩家可能需要手动调整线程,在「任务管理器」下的「详细信息」页面里,右键就能设置「处理器相关性」,调整软件能够使用那些核心。以前一些线程优化软件(如 Maximize Your FPS),其中的一个操作,是将系统绑定到一个核心上,其它核心留给游戏,这样系统就不会抢占游戏的资源。
Switch 也做了类似的线程优化,Switch 的 CPU 有四个核心,一个核心运行系统以及录制功能,其它三个核心都用来运行游戏。开发者可能会将物理引擎、着色器状态设置和场景处理,分别交由不同的核心处理,这样最多出现掉帧,而不易出现卡顿。(《塞尔达传说:旷野之息》就是这样)
同理,一些多线程优化较差,或者缺乏适配的游戏,玩家可以手动绑定线程到不同的核心,从而缓解卡顿,提升性能。Windows 有软件 Process Lasso,而 Android 需要 Magisk 权限,然后安装 线程优化模块 手动写配置,或者直接安装 AsoulOpt 这个适配了众多主流游戏的模块。
#原理
AMD Ryzen 7950X3D 由两个 8 核的 Core Chiplet Die(CCD)组成,分别是含有 3D V-Cache 的缓存更高的 CCD0,以及频率更高的 CCD1。单纯比算力,当然是让全部 16 个核心都运作最快,但游戏就不好说了。
大多数游戏对缓存敏感,所以让游戏仅运行在 CCD0 上,这样效果最好。JayzTwoCents 测试了《无主之地》,发现能提升 44 % 的帧速。只是驱动可能不会正常运作,导致游戏被运行在随机核心上,也就无法利用 3D V-Cache 的大缓存优势。
这时玩家可能需要手动调整线程,在「任务管理器」下的「详细信息」页面里,右键就能设置「处理器相关性」,调整软件能够使用那些核心。以前一些线程优化软件(如 Maximize Your FPS),其中的一个操作,是将系统绑定到一个核心上,其它核心留给游戏,这样系统就不会抢占游戏的资源。
Switch 也做了类似的线程优化,Switch 的 CPU 有四个核心,一个核心运行系统以及录制功能,其它三个核心都用来运行游戏。开发者可能会将物理引擎、着色器状态设置和场景处理,分别交由不同的核心处理,这样最多出现掉帧,而不易出现卡顿。(《塞尔达传说:旷野之息》就是这样)
同理,一些多线程优化较差,或者缺乏适配的游戏,玩家可以手动绑定线程到不同的核心,从而缓解卡顿,提升性能。Windows 有软件 Process Lasso,而 Android 需要 Magisk 权限,然后安装 线程优化模块 手动写配置,或者直接安装 AsoulOpt 这个适配了众多主流游戏的模块。
#原理
🤔1