LWN:创建面向游戏的调度器开发经验

【信息科学与工程学】【产品体系】第三十三篇 DPU/smartinic芯片中的学科知识03 需求实现DMA 与流边界检测优化​分级超时状态机(短/中/长)+ 积压计数 + 批量触发DMA 控制器优化​描述符预取(深度 4)+ 中断合并(阈值 8)Fence 语义正确性验证​RTL 断言 + C 语言序列号检测 + 性能对比 + 硬件计数器所有代码均为可综合 Verilog,已在仿真器中通过基本功能测试。在 FPGA 原型上运行上述 RTL,配合 ChipScope 观察 fence 时序在 BlueField-3 上运行 DOCA DPA 测试程序,对比加/不加 fence 的结果。 阅读详情

关注了就能看到更多这么棒的文章哦~

By *Jake Edge*, January 7, 2026
 Gemini translation
https://lwn.net/Articles/1051430/

LPC

在 12 月中旬于东京举行的 2025 Linux Plumbers Conference (Linux Plumbers 会议,简称 LPC) 上,Changwoo Min 主持了一场关于他在开发 “latency-criticality aware virtual deadline” (延迟关键性感知虚拟截止日期,简称 LAVD) 调度器过程中的经验分享。该调度器主要针对游戏负载。这次会议是 Gaming on Linux (Linux 游戏) 微型会议的一部分,这是 LPC 的一个新项目;组织者希望它能明年在布拉格回归,并以此延续。LAVD 使用了 extensible scheduler class (可扩展调度器类,简称 sched_ext),主要目标是减少游戏中的卡顿 (stuttering);它是使用 BPF 和 Rust 混合实现的。 

Min 表示,他一直在 Igalia 为 SteamOS 和 Steam Deck 开发 LAVD。虽然调度器的名字有点长,但它的核心目标是让 Windows 游戏在 Linux 上运行得更好。SteamOS (以及 Linux 版 Steam 应用) 使用 Wine 和 Proton 兼容层。LAVD 的大部分调度决策代码是用 BPF 编写的,另外包含一个轻量级的、基于 Rust 的用户态部分。 

关于 sched_ext 和 LAVD 的更多信息可以在去年 LPC 的一篇文章中找到。此外,今年的 sched_ext 微型会议中也有关于 LAVD 的议题,其中包括一篇关于将 LAVD 改编为 Meta 生产集群默认调度器的分享。 

塑造 LAVD 的大部分经验都源于 Windows 游戏及其在 Linux 上的需求。本次会议旨在提高人们对一些缺失工具的关注,这些工具可以帮助更好地支持 Linux 游戏。他希望能够启动一些关于如何从游戏中收集更好的性能信息并进行可靠基准测试以改进调度的讨论。 

游戏负载

他表示,针对游戏的调度器有两个目标:性能和能耗。游戏是独特的,因为它拥有 “一个被广泛接受的通用性能指标,即每秒帧数” (frames-per-second,简称 FPS)。FPS 测量有两种类型:平均 FPS 和 “最低 1%” 或最小 FPS。平均值衡量的是应用吞吐量,而最低 1% 衡量的是第 99 百分位延迟,这正是导致卡顿的原因。因此,目标是在提供高平均 FPS 的同时,尽可能保持最低 1% FPS 处于高位,以免让玩家感到不快——这是游戏体验中最重要的方面。 

许多游戏设备 (如 Steam Deck) 采用电池供电,因此能源效率至关重要。底层硬件通常使用的处理器混合了不同类型的核心 (大核、中核和小核),具有不同的能耗特性。对于游戏,通常有多个任务,但其中一些可以在速度较慢、能效更高的核心上运行。大多数任务运行时间较短,约为 1ms,不过也有少数任务会运行 2-3ms 或更长。还有一些运行时间少于 100µs 的任务,这意味着在任务放置方面有更大的灵活性。 

在他看来,调度器可以做出三个影响性能的独立决策。首先是选择哪个任务先运行;如果对延迟敏感的任务被推迟,可能会导致 “级联延迟、UI 卡顿或掉帧”,从而影响用户体验。调度器还决定任务应该运行多久;所选的时间片需要在 “运行足够长以从热缓存中获益” 与 “运行时间不过长以免独占处理器” 之间取得平衡。除此之外,调度器还为每个任务选择使用哪个 CPU;做出该决策的开销也会影响延迟和能效。快速决策可以减少调度器开销,但由于决策不佳可能会增加其他成本;如果调度器为了追求更好的决策而导致自身开销过高,也会产生问题。 

理解游戏负载对于开发针对游戏优化的调度策略至关重要。刚开始时,Min 并不确定自己能否想出一个针对游戏优化的调度器,因此他着手测量负载,看看是否存在一些可以被调度器利用的共同特征。于是他开发了 VaporMark (名字取自 Steam 的蒸汽寓意),用于分析使用 perf sched record 收集的数据。“在收集了大量数据并进行了一两个小时的后处理后,它会显示一些报告。” 

他展示了一个 VaporMark 报告示例 (见上图,摘自他的幻灯片)。他表示,这是一份非常有用的报告,显示了每个任务的典型运行持续时间等信息,并可以据此判断是否可以对即将到来的持续时间做出统计学上的有效预测。它提供了关于游戏任务为何以及如何被调度的洞察。 

他的分析得出的关键结论或许显而易见:单个高级动作 (例如在屏幕上移动角色并根据按键事件发出声音) 需要许多任务协作完成。其中一些任务是游戏进程中的线程,而另一些则不是,因为它们位于游戏引擎、内核和设备驱动程序中;通常有一个由 20 或 30 个任务组成的链条需要协同工作。寻找具有高唤醒频率的任务并优先处理它们,正是 LAVD 调度策略的基础。 

更多工具

VaporMark 对于理解游戏的高级属性很有帮助,但一旦他完成了 LAVD 的原型,就发现它不足以支持进一步的工作。他尝试了 Perfetto,它表现得更好,特别是对于 “通过微观分析发现病态调度行为”。Min 说,但这并没有解决他的分析问题,也许是因为他不是 Perfetto 专家。 

VaporMark 和 Perfetto 共同面临的一个问题是,他想要分析的问题很少发生。例如,游戏在大部分时间里可能运行流畅,但每五分钟左右会出现一次延迟峰值,导致 FPS 下降。“我该如何捕捉到这一点?” 他没能找到一种方法来触发该问题以便追踪导致它的原因;相反,他采用了每十秒采样一次的暴力方法,希望能撞大运捕捉到问题的发生。“工具集中缺失了高级视图与微观视图之间的关联。” 

会议组织者之一 David Vernet 指出,Perfetto 确实有方法追踪不仅仅是 CPU 时间的信息 (如内存使用情况),但它是基于采样的,因此可能无法提供 Min 所寻找的所有细节。另一位与会者询问了关于按键事件延迟追踪的问题,这对于某些类型的游戏 (尤其是职业玩家偏爱的游戏) 非常重要。这种分析可能需要比现有手段更深入地观察游戏引擎内部,但他想知道 LAVD 是否采取了任何措施来最小化这种延迟。Min 表示 LAVD 并没有专门关注这一点,但他认为其策略会自然地优先处理涉及按键处理的任务。 

Vernet 指出,某些游戏 (如《文明 VI》) 具有 CPU 密集型任务,可能需要不同处理。他工作的地方 (Meta) 的一些负载也具有类似特征,他想知道 Min 是否对从初始唤醒到最后一个任务完成工作的整个任务链进行过任何分析,并以此推导出截止日期和帧率。Min 表示他还没有做过,但这是一个他想要研究的领域;例如,可能可以利用来自 GPU 的信息来帮助做出更好的 CPU 调度决策。 

一位与会者提出了关于选择在哪个 CPU 上运行被唤醒任务的问题,以及根据任务之间的关系将任务移动到其他 CPU 是否有意义。Min 表示,做出这些决策是 “一件相当棘手的事情”。他一直在关注调度器的延迟管理方面,但还有其他资源需要考虑,例如缓存局部性和内存距离。需要一种工具来生成 “更全面的资源竞争视图”;也许可以使用 Perfetto 来实现,但这仍有待完成。 

以及基准测试

他在开发调度器时遇到的另一个问题是,游戏的基准测试 “超级困难”。为了证明新的调度策略优于旧策略,“可靠的可重复基准测试绝对是必要的”,但游戏在这方面有所缺失,不像数据库等其他领域拥有标准基准测试。幸运的是,一些游戏 (如《赛博朋克 2077》、《孤岛惊魂》和《极限竞速:地平线》) 拥有内置基准测试,这非常有用;其他游戏 (如《反恐精英》) 允许回放录制的序列,这也有帮助。 

不幸的是,目前尚不清楚这些游戏的测试结果对于其他缺乏此类能力的游戏有多少代表性;例如,一些用户抱怨 LAVD 在使用虚幻引擎 (Unreal engine) 的游戏中表现不佳。另一个问题是游戏更新频繁,因此收集到的任何数据都会很快过时;比较 2GB 游戏更新前后的结果 “没有任何意义”。内置基准测试有时也依赖于外部资源的性能,例如游戏服务器。 

即使有可靠的基准测试结果,也很难将观察到的 FPS 变化与导致这些变化的调度器更改关联起来。因此,微观基准测试同样令人感兴趣,但他发现的大多数针对调度器的微观基准测试 (例如 stress-ng 和 hackbench) 都专注于给调度器加压并测量调度开销。这很有用,但改进这些数字并不总能带来更好的游戏性能。 

有一些模拟特定负载的微观基准测试;一个例子是 schbench,它旨在重现生产环境 Web 服务器负载的调度特征。他说,需要类似的东西来模拟游戏负载。Vernet 询问如何构建这种基准测试;是使用现有的游戏引擎,还是以某种方式引入 AAA 游戏 (大作)?Min 表示他不确定该如何着手;一个问题是,最重要的游戏和引擎会根据市场份额而变化。 

一个基准测试套件可能会有所帮助。他指出,CloudSuite 提供了一组打包成基准测试套件的代表性云应用。或许可以将一组游戏转化为用于调度器测试的 “gamesuite”;它将补充一些运行时间短、反馈快的微观基准测试。内置基准测试通常只给出平均 FPS,“这很有用但并不理想”;它们缺乏真正需要的最低 1% 和最小 FPS 信息。 

另一位会议组织者 André Almeida 建议使用 MangoHud 来收集更多 FPS 数据;Min 表示赞同,但指出 MangoHud 需要仔细配置。在 “批量” 模式下使用时,MangoHud 的日志记录可能会干扰游戏,导致卡顿。一个 gamesuite 潜在地可以包含推荐的 MangoHud 配置以及一组用于运行的代表性游戏。 

锁

他的关注点很大程度上在于 Windows 游戏,这些游戏使用底层操作系统的同步原语。对于 Linux,这些原语是由 Wine 层使用 futex 模拟的,但仍有工作要做。Windows 游戏中的大多数任务都是短时间运行且计算密集的,因此避免因锁竞争导致任务无法快速完成的情况至关重要。这意味着要避免持锁者抢占 (lock-holder preemption,或称优先级反转 (priority inversion)) —— 即当锁持有者被调度出 CPU,而新调度的任务需要该锁从而无法继续执行的情况。Min 说,Almeida 一直在做的重构 futex API 的工作也将有助于解决优先级反转问题。 

在内核中,代理执行 (proxy execution) 在他看来是正确的方法,但它对用户态 futex 没有帮助。LAVD 尝试追踪任务和 futex,以决定何时为任务提供更长的时间片,以便让它有时间释放锁;然而,这并不是该问题的完整解决方案。与此同时,Wine 正在转向使用 ntsync 驱动程序,该驱动旨在更好地支持 Windows NT 同步原语。他认为,最终 ntsync 和代理执行应该有助于缓解这类问题。 

Almeida 指出,在快速路径上,内核并不知道哪个任务持有 futex,因此在做出调度决策时没有这些信息。他听说 FreeBSD 程序总是会告知内核 futex 的所有者,以便内核避免优先级反转。然而,系统调用的成本很高,因此强制要求这样做可能会有问题。会议还讨论了其他 Windows 锁类型以及 Linux 对它们的支持情况;结论似乎是这些锁是构建在 futex 接口之上的,因此修复 futex 应该能解决 Windows 锁的大部分问题——至少对于游戏来说是这样。 

一位与会者询问 LAVD 是否在 Steam Deck 上对所有游戏使用相同的调度器。Min 表示 LAVD 是一个单一的调度器,尽管可以通过命令行参数调整一些旋钮。该与会者想知道考虑类似 “配置文件引导的调度” (profile-guided scheduling) 是否有意义,即使用游戏的配置文件来设置调度器的参数。在大多数情况下,这些配置文件只需要针对特定引擎,因为大多数游戏使用现成的或内部的引擎,这些引擎决定了它们的性能特征。Min 同意这听起来是一个有趣的方法,但他尚未对此进行探索。 

在后续问题中,他询问了关于可重复的游戏测试;如果没有涉及网络服务器,除了随机数的生成外,还有哪些因素需要约束以重现游戏运行?Min 表示随机数是游戏确定性的主要障碍,但也有其他因素在起作用。如果游戏运行太快,可能会导致 CPU 过热并被降频;这显然也会改变其特征。 

会议最后讨论了使用 WF_SYNC (或 WF_CURRENT_CPU) 标志来标识那些在唤醒后会立即返回睡眠状态的任务。这可以帮助内核做出更好的调度决策,Android 系统就是这样使用的。感兴趣的读者可以参考会议的 YouTube 视频以了解更多细节。 

[ 感谢我们的差旅赞助商 Linux Foundation 为我前往东京参加 Linux Plumbers Conference 提供的资助。 ] 

LWN 评论概述

评论区围绕游戏负载的特殊性及内核工具的优化展开了深入讨论。有用户提出,FreeBSD 让用户态告知内核锁持有者的做法虽然增加了系统调用开销,但或许可以通过每个线程的共享内存来实现,从而让调度器在不进入内核的情况下获益,避免优先级反转。针对资源竞争分析,有评论推荐了 Josef Bacik 开发的 systing 工具,认为它能提供更全面的视角。 

此外,讨论还涉及了外部调度器(如 sched_ext)与内置调度器之间的权衡:一方面,外部调度器允许用户快速适配游戏引擎的频繁更新;另一方面,开发者担心这会削弱内核核心调度器的反馈回路。最后,针对难以捕捉的瞬间延迟峰值,评论者引用了“最大值即信号”的观点,建议在出现严重延迟时让内核像处理 panic 一样转储尽可能多的调试信息,而不是将其视为噪声忽略。 

  全文完
 LWN 文章遵循 CC BY-SA 4.0 许可协议。 

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

【Claude Code · VibeCoding】13|实战演示:水果消消乐 VibeCoding 用「水果消消乐」走一遍 VibeCoding:提示、生成、试玩、改需求、再生成。 阅读详情

相关推荐

记录一下本地部署Dify的坑

1. 截止2025-3-4为止,请注意,不要直接拉Dify的1.0.0版本。请先试用0.15.3版本。1.0.0有一个bug需要解决。3. 请使用docker-ce 新版本,docker-engine等老版本可能会有部分容器启动脚本执行莫名报错。2. 注意,请使用docker-compose V2版本,或者V1较高版本,否则会导致解析官方yml模板错误。

哈利路亚的收藏夹 5345

思考溯源完整性:一种基于学习的Linux调度器

摘要: Aegis是一种基于强化学习的Linux内核调度器,旨在解决溯源系统中的“超级生产者威胁”,确保溯源事件的完整性。该威胁指攻击者通过高负载事件使系统丢弃关键安全事件,破坏溯源数据的可靠性。Aegis通过多级队列设计和动态资源分配,结合深度Q网络(DQN)优化调度决策,实现了零事件丢失,同时保持系统性能。实验表明,Aegis在多种基准测试中显著优于现有调度器(如EEVDF、LAVD和Rusty),事件丢失率降至0%,且运行时间平均提升0.25%-3.42%。其轻量级内核实现通过eBPF和sched_e

hao_wujing的专栏 413

Outlook日历同步全攻略:Win10+安卓+iOS三端无缝衔接(附常见问题解决)

本文提供了一份详尽的Outlook日历同步指南,帮助用户在Windows 10、安卓和iOS三端实现无缝衔接。文章深入解析了Exchange ActiveSync等核心同步原理,并给出了从账户创建到各设备(特别是华为手机)的具体配置步骤、进阶管理技巧以及针对同步失败、事件重复等常见问题的实战解决方案,旨在彻底解决跨平台日程管理的痛点。

l3m4n的博客 551

【Rust日报】2024-04-22 Rust编写的LAVD内核调度器为Linux游戏带来了更多展望

Thunderbird 引入 RustThunderbird计划在2024年7月版本中原生支持Exchange邮件功能,并选择Rust语言开发新功能,这是由于 Rust 强调内存安全、性能和易维护性。原文链接 https://blog.thunderbird.net/2024/04/adventures-in-rust-bringing-exchange-support-to-thunderbir...

Rust语言学习交流 557

2019年数学建模美赛经验总结

北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 目录 1、基本情况 2、选题 3、分工合作 4、论文写作 5、建模 6、编程 7、入门资源 ...

Smallactive 7万+

基于Python的FAO农业数据高效爬取与分析实战:从Scrapy到异步爬虫的进阶之路

本文将详细介绍如何使用Python最新技术爬取联合国粮农组织(FAO)的农业数据,涵盖从基础爬虫到高级异步爬虫的完整实现过程。文章包含5000余字的技术解析,提供完整的代码示例,并探讨数据处理与存储的最佳实践。

2201_76125261的博客 240

LWN:为 sched_ext 引入子调度器

换句话说,父调度器控制给定工作负载(由控制组表示)何时可以运行,子调度器控制构成该工作负载的进程如何访问 CPU,而 CPU 控制器则负责它们运行可用的 CPU 时间总量。子调度器的工作扩展了这一理念,认为没有任何调度器——甚至是 sched_ext 调度器——能够为给定系统可能运行的每种工作负载都提供最优性能。然而,在拥有多个调度器的系统中,允许一个子调度器将进程抛入全局 FIFO 队列可能会干扰其他子调度器。因此,当使用子调度器时,如果存在父调度器,它将继承进入旁路模式的子调度器中的任务。

Linux News搬运工 100

基于非接触式微波雷达设计的睡眠监控系统_323

本项目设计了一种基于非接触式微波雷达的睡眠监控系统,通过高精度的生理信号采集与分析,帮助用户全面了解自身的睡眠状态和健康状况。系统采用60GHz频段的R60ABD1毫米波雷达模块,实现对人体呼吸频率、心率、活动状态、体动幅度等参数的非接触式测量;结合MLX90614红外体温传感器,能够实时监测人体体温。此外,系统通过蜂鸣器报警和数据上云功能,及时向用户反馈异常生理指标,确保健康风险早期预警。数据通过ESP8266-WIFI模块上传至华为云物联网平台,用户可通过Android手机APP和Windows上位机远

499

LWN: 2025 年回顾

帮助我们实现这一目标并普遍惠及 LWN 的最佳方式是务必订阅,或者更好的是,让您的雇主购买团体订阅。我们这边,我们将一如既往地做我们一直在做的事情:努力为我们的社区提供最好的报道。美国国内的变化,除其他外,几乎保证在一段时间内很少有重要的技术会议会在那里举行——而且许多在美国工作的人将因害怕无法返回而无法参加其他地方的活动。今年,我们的保险提供商通知我们,这项保险的费用将增加 14%——这只是连续两位数增长中的又一次。这一事件再次清楚地表明,除非付出明显的努力来保存,否则互联网上的历史是短暂的。

Linux News搬运工 141

索尼IMX316 标定_ToF模块相机校准

很多东西一开始给出去的并不是最优的方案,而是在客户端支持中,以及在持续不断的芯片验证中,发现还可以这么做,还能够再提升Sensor的性能,所以说这是一个持续的过程。曾经听说过一个故事,在某厂里ST产品一直作为第一供应商多年,然后近段时间即将被新兴公司的ToF产品所打败,性能报告已经出来,但是ST并没有更新产品,而是在原有产品更新了固件以及标定流程,此时产品的性能又是超越其他供应商的产品。相机矩阵不考虑镜头失真,因为理想的针孔相机没有镜头。为了准确地代表一个真实的相机,相机模型包括径向和切向的镜头畸变。

dream it possible 1153

OpenClaw 超级 AI 实战专栏【模型推理与实战】(二)官方预训练模型下载与使用

OpenClaw 预训练模型需按「固定目录结构」存放(模型文件夹包含权重 + 配置文件),否则会加载失败;核心流程:下载模型→验证文件完整性→加载模型→传入图片执行推理→可视化结果;常见问题集中在「路径错误」「显存不足」「文件缺失」,按文中方案可快速解决。

qq_36130719的博客 307

Ubuntu大佬神操作!Rust版Linux调度器秀麻了,性能远超C!

近日,一位Linux内核工程师出于兴趣用Rust编写了一个Linux调度器。这位来自Ubuntu制造商Canonical的工程师名叫Andrea Righi。他在X(推特)上发文谈到,他利用圣诞假期进行了这项实验。没想到这个只是“出于好玩”而进行的项目却带来了意外惊喜。初步结果显示:通过sched_ext实现并基于eBPF技术、能够在运行时加载的Rust调度器具有很大的潜力和希望。

IT界那些事儿 322

《MATLAB项目实战》,专栏目录和介绍

MATLAB 是一款强大且广泛应用的数值计算和数据可视化软件工具,它提供了一个高效、简洁的编程环境,使用户能够进行从简单的矩阵运算到复杂的多维数据分析的各种计算任务。无论是在人工智能、计算机视觉、图像处理还是其他领域,MATLAB 都能够提供精准、快速的解决方案,因此成为了全球科研人员、工程师以及数据分析师的得力工具。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6473

LWN:利用机器学习来更好地实现负载均衡!

它使用了一个相对简单的算法:系统中一半的 CPU 保留给延迟敏感的网络处理任务,而另一半则用于 CPU 密集型通用处理。为了特定用例,人们曾做出各种努力来编写 CFS 的替代品,其中值得注意的是 2009 年 Con Kolivas 提交的 BFS,以及 2016 年他提交的 MuQSS。调度器必须考虑任务的优先级、CPU 需求、其当前的虚拟运行时间,以及最近的 CPU 使用模式。当然,还有特定工作负载相关的因素。Huang 表示,所有这些的最终结果是,任何使用单一、固定算法的调度器都从根本上是失效的。

Linux News搬运工 2317

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LWN:再次推动 sched_ext!

关注了就能看到更多这么棒的文章哦~Another push for sched_extBy Jonathan CorbetMay 9, 2024ChatGLM translationhttps://lwn.net/Articles/972710/可扩展调度器类(extensible scheduler class,或称 "sched_ext")是一个综合性的框架,它可以支持将 CPU 调度器实现为...

Linux News搬运工 802

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

从0到1:5分钟本地跑起The Delegation 3D AI办公室的完整指南

The Delegation 是一款免代码(no-code)的 3D AI 办公室实验场,让 AI 爱好者、教育工作者和创意开发者无需写一行代码,就能在一个"活"的 3D 办公室里探索、设计并交互 Agentic AI(智能体)系统:由 LLM 驱动的角色会在共享的虚拟工作区里自主协作——它们自主导航到工位坐下、干活、互相讨论,而你只需通过节点式编辑器和看板界面来指挥整个 AI 团队。 [![T

gitblog_01091的博客 493

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux 内核 RCU 完全解析:从“读、复制、更新“思想到核心 API、玩具实现与生产级源码

RCU(Read-Copy-Update,读、复制、更新)是 Linux 内核中专为"读多写少"场景设计的同步机制,诞生于 2.5 内核开发周期。本文基于内核树中 [Documentation/RCU/whatisRCU.rst](https://link.gitcode.com/i/b66e239eb3bc40759780986b5191500f) 的完整内容,并结合 [include/linu

gitblog_00076的博客 551

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 412

我给 DeepSeek 大肥鱼做了一款马里奥式闯关游戏

当全网都在把大肥鱼做成直播虚拟主播的时候,我决定给她做一款横版闯关游戏。

2301_79028807的博客 886

节日小游戏活动快速落地与高效转化技巧

比如,把平时验证过的消消乐、大转盘、接红包等经典玩法作为底子,只需要针对特定的节日(像春节、中秋)或者门店庆典,快速替换一套应景的UI素材和文案,再植入专属的节日福利。这种“旧瓶装新酒”的方式,能把开发周期压缩到极致,确保活动能踩着流量的爆发点准时上线。特别是对于实体门店,游戏通关后的奖励最好能直接引导到线下核销,比如“满100减20”的优惠券,这样能把线上的流量精准地拽进店里,形成实实在在的成交。这种基于熟人关系的推荐,比硬广有效得多,能迅速在朋友圈和社群里铺开,实现低成本的流量获取。

Hxzyxkf2016的博客 181

Claude Code做Unity项目移植(三): 使用SKILL进行自动化Git提交

本文介绍基于ClaudeCodeSkill的Unity自动化Git提交助手——unity-git-commit,通过四大模块实现提交前的智能检查与安全修复:1)校验Git仓库状态;2)验证Unity项目文件(如排除Library/Temp,确保.meta文件完整);3)依据可配置的C#命名规范自动识别并安全修复命名问题(避免序列化、反射等高危场景误改);4)生成精准提交注释,但强制人工确认。全程仅本地commit,不自动推送或破坏性操作,保障安全。核心思想为“机械化工作交AI,关键决策留人工”,显著提升提交

Aman1984的博客 639

PyBox有什么好用的数织小游戏吗?

我们今天梳理了市面上主流的数织解谜工具,包括在线网站和本地应用,并且重点介绍了 PyBox 中的数织 Nonogram。在线解谜网站**适合快速上手、免费体验,但不适合长时间离线使用。本地解谜工具**提供了离线体验,方便专注解题,但可能会涉及安装和广告问题。PyBox的数织 Nonogram**则在绿色无广告、免安装、完全开源、及DIY定制等方面有着明显优势,非常适合想要一个干净、可控、无干扰的游戏环境的用户。如果你追求极致无干扰、注重隐私、喜欢轻量应用,那么数织 Nonogram 绝对值得一试。

Sanmsung的博客 123

Windows远程桌面实现之二十:实现 moonlight 游戏串流协议之(一)

本文介绍在xdisp_virt中集成Moonlight游戏串流协议的实现过程。基于开源项目Sunshine逆向的GameStream协议,作者从零研究并自研实现Moonlight服务端网络通信部分,涵盖mDNS设备发现、nvhttp/nvhttps加密通信、nvrtsp协议交互及三类UDP数据通道(视频、音频、控制)。重点解决多客户端并发问题,采用串行处理机制确保连接一致性。通过自定义证书验证与密钥管理,完成配对与安全通信,最终实现低延迟、高性能的游戏串流体验,显著优于WebRTC浏览器方案。

fanxiushu的专栏 164

二进制木马免杀-游戏嵌套与图标替换

二进制木马免杀-游戏嵌套与图标替换

2503_94637398的博客 233

Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解

UGUI 自动布局是一套的 C# 排版系统,和 Transform 原生锚点完全隔离;整套布局;最终输出只有对 RectTransform 的sizeDelta的赋值。

m0_63330263的博客 258

mark 黑塞《玻璃球游戏》

【最近在读黑塞的《玻璃球游戏》-“ai预言“ - 优快云 App】

2502_94306440的博客 188
上一篇: LWN:安全路径遍历的挑战
下一篇: LWN:高层级服务质量(QoS)接口
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值