HTML在AI时代的复兴

软件不只是最终产品,也可以是过程产物。AI 让我们重新拥有了为一次性问题制作一次性软件工具的自由。 Simon Willison 最近转发并评论了 Thariq Shihipar 的一篇文章:Using Claude Code: The Unreasonable Effectiveness of HTML。Thariq 的核心判断可以概括成几句话:HTML 的信息密度更高,可读性更好,还能把文档变成交互界面,并且支持多媒体数据嵌入到一个文件中,因此更容易用一个链接分享。 ...

May 14, 2026 · 4 min

GDC2026见闻与思考

三月出差去了在旧金山一年一度的 GDC2026,感触很大。成千上万的来自全世界的游戏开发者聚集在这里,仿佛形成了一个巨大的游戏场,给每一个游戏开发者能量。另外旧金山也是一座美丽的城市,依山傍海。这里的人们大多友好而自信,希望以后还有机会去。 ...

April 1, 2026 · 8 min

强化学习可能还不是AI的未来

Andrej Karpathy 和 Ilya Sutskever 几乎在同一时间,把目光从“堆算力、堆数据”的规模化竞赛,转向了更根本的问题:我们真的找到了让机器像人一样学习、反思和泛化的道路吗?当前围绕强化学习打造的 LLM,已经暴露出一系列深层缺陷:泛化能力和学习机制。如果说过去十年是“参数上亿”的工程时代,那么他们描述的,是一个重新回到研究时代的契机。 ...

November 29, 2025 · 10 min

Quaternion.FromToRotation的细节

这篇记录实际项目中对Quaternion.FromToRotation(fromVector, toVector) 的实现思路,重点讨论当 fromVector 与 toVector 夹角为 180°(反向)时的稳健处理。主要参考 Stan Melax 的“最短弧四元数”(Shortest Arc Quaternion)思路。 ...

August 26, 2025 · 2 min

奇妙的Pairing Function

在实际项目里,我们经常需要把二维坐标 (x, y)、或两个整型键合成一个“唯一”的整型键,方便做哈希表/数组索引;又希望能在需要时还原回原来的两个键。这样一个反直觉的需求真的有解决方案吗?“配对函数”(Pairing Function)隆重登场。 ...

August 20, 2025 · 2 min

软件的未来

近期看了一些大佬对AI时代软件形态的探讨,记录一些感悟。 编写软件不再只是程序员可以做的酷酷的事。 过去几十年的发展,“机器”的形态发生了巨大变化,现在,LLM本身也变成了“机器”。 ...

June 30, 2025 · 3 min

Quality Design 🍎

本文源自对Apple WWDC 2018 的一次公开分享的记录提炼。什么是优秀的设计,它为什么重要,如何追求品质感……这些话题不仅是设计师需要考虑的专业问题,也是每个人打造自己的生活需要知道的内在规律。Video ...

May 5, 2025 · 2 min

WebGL平台的性能限制和解决方案(以微信小游戏为例)

前几日参加了Unite上海2024,受益颇多。本篇先就相对感兴趣的小游戏平台WebGL技术方案为引子,引出一些关于WebAssembly, IL2CPP, 以及.NET 8对Web平台支持等话题。 ...

July 28, 2024 · 8 min

带物理交互的CharacterController设计与实现

本文也是PhysX物理引擎系列的番外篇。介绍了笔者基于CharacterController(CCT)设计的一个新的角色控制器,在修补Unity/PhysX的CCT的缺陷外,还增添了若干和物理交互相关的有趣特性。代码已经过实际项目验证,这里仅保留和具体业务无关的部分。 背景和需求 前文结尾处提到一些PhysX自带的CCT(Unity也是基于此二次封装出CharacterController组件)在实际游戏开发中的缺点,这里再次总结: CCT不参与碰撞系统的检测。仅当CCT自身移动时会判断是否被其他刚体或CCT阻挡。这就造成一个BUG:CCT自身静止时,其他运动物体会穿过CCT且没有事件触发。官方论坛上有苦主持续8年向Unity反馈这个问题但无法解决,目前已知的唯一绕过方式是每帧给CCT附加一个微小的位移(下文中的SlightMove)。 Unity提供的接口CharacterController.isGrounded效果很不稳定。其内部只是判断CCT上次运动后底部是否触碰物体。即collisionFlags & eCOLLISION_DOWN::eCOLLISION_DOWN。但在上下坡或崎岖地形时,很容易出现侧面触碰或短暂浮空。如果用该接口驱动动画表现甚至跑跳逻辑,效果很差。需要自行基于SceneQuery封装出更加稳定的判定着地的函数。 Unity没有暴露CCT.upVector,角色总是竖直向上的。要实现反重力鞋在任意斜面上行走或像马里奥银河那样在曲面上跑跳穿梭,只能放弃使用CCT但也放弃了其在操作手感上的改善。其实拿到Unity的源码后,只用了十分钟将底层字段暴露到C#层就解决了该问题。 新的角色控制器需要增加的物理交互特性有: ...

March 18, 2024 · 8 min

深入 LossyScale

本文是PhysX物理引擎系列的番外篇,其实要弄明白一个3D数学问题:如何处理父节点带有非均匀缩放、子节点带有旋转时,子节点的最终大小和形态。 问题源自笔者在修改物理引擎为其添加scale属性时遇到的一个bug。解决后对WorldScale为什么叫做LossyScale、空间变换和基变换有了更深的理解。 ...

July 19, 2023 · 7 min