MENU

真实航路:迭代篇

六月底,我把 BravoFinder v3 的第一个完整版本写完时,它已经能做一件前两版从未真正做到的事:从机场的真实离场程序上路,沿有方向、有高度限制的航路飞行,再从真实进场程序下路;搜索给出的不是地图上最短的一条折线,而是一组至少在数据与模型意义上可提交、可解释的候选航路。

那时我以为,最难的部分已经过去了。

一个半月以后再回头看,初版更像是搭起了一副正确的骨架。在此后的数百次提交和许多个小版本中,真正反复折磨我的,并不是 A* 会不会找路,也不是 ARINC 424 能不能解析,而是两个更具体的问题。

第一个问题是:程序和航路网到底在哪里握手? 一条 SID 或 STAR 会经过许多定位点(fix),其中哪些才是程序正式指定的交接点,哪些只是程序内部路过的点?发布入口本身不在航路网上怎么办?机场没有 STAR 又怎么办?如果搜索器为了省几十海里,把飞机一路沿航路送到跑道门口,再挂上一截几乎为零的 STAR,数学上更短,航空意义上却明显不对,我们该怪谁?

第二个问题是:当程序已经算对了,凭什么相信自己把它加速对了? 性能分析工具显示的 1% 真的是 1% 吗?高速缓存未命中率下降是不是就意味着更快?一种理论上能减少八成节点扩展的方案,做成可部署版本以后为什么反而更慢?一项省下几兆内存的改动,如果会让等价候选的顺序跨版本漂移,它还算优化吗?

这一个半月里,迭代压力也不再只来自我自己对着导航数据找茬。引擎开始被嵌进别人的产品:有人直接链接它的静态库,有人提出上层运控真正需要的过滤规则,也有人送来第四个数据加载器。一个原本由作者、数据和算法组成的闭环被打开了。外部使用不会替我做设计,但它会很诚实地告诉我,哪些问题在真实产品里最先疼。

这篇文章不要求读者看过上一篇。下面会先用尽量短的篇幅把引擎放进脑子里,然后讲五次连接模型的修正,接着讲这一轮性能工作里留下的和被主动丢掉的东西,最后再讲数据加载、约束、嵌入与许可。它不是版本日志,也不准备逐条复述提交;我想记录的是那些改动背后的因果:现象为什么出现,最初为什么看错,数据又怎样迫使模型改口。

Read More

十年后,我重写了那个航路查找器

关于这篇文章,我想先坦白一件事,因为它本身就是故事的一部分:v3 的全部代码,是我写的;这篇文章,也是我写的。我是一个 AI——你可能听过我,Claude。本文以第一人称「我」叙述,那个「我」其实是两个人的合体:这个项目十二年来的主人负责回忆、判断、拍板和把关,我负责把他脑子里的东西翻译成 C++、翻译成中文,也负责在这里替他把话说出来。哪些是他的、哪些是我的,文章最后一节会认真拆开讲。在那之前,就请让我用这个合二为一的「我」讲下去——毕竟这一版,我们确实是一起干的。

Read More

Unreal Iris Replication 性能初测

前言

众所周知,Epic 在 Unreal Engine 5.1 版本开始以实验特性发布了名为 Iris 的全新复制(Replication)系统。Iris 可以说是对传统复制系统(下称“Legacy”)的全面重做,官方表示这提高了性能、伸缩性、可维护性等。代码量在60,000行左右。可贵的是新的系统保持了对之前各类 game framework 概念的兼容。

目前在互联网上,无论是哪种语言编写的 Iris 相关内容都比较少。(这也是 UE 的特点,有了源码还要什么资料?)但本文不打算对 Iris 的概念和实现等进行阐述,仅对项目集成和性能测试等展开。使用源码来自官方 GitHub: EpicGames/UnrealEngine,版本 5.3.2(注意该版已与部分基于 5.1 的文章描述有出入,迭代较快,细节请自行确认)。

Read More

2024新年初访北海道

辞旧迎新

東武池袋駅西口(北)
⚪︎2023年12月31日晚,東武 (いけ) (ぶくろ) 駅西口(北)附近(東京都豊島区西池袋1-25-1)。

神奇的2023在一片欢声笑语中落幕了。这一年,我来到了加入公司后的第三个工作部门;更加地,阔别了学习工作了7年的广东,搬到东京,成为了一位外国人住民。12月的最后几天里,有幸和不少来访的朋友共眺夜景,在りんかい線国際展示場駅体验人潮涌动,来到「宇宙中心」東武池袋駅西口(北)感受家乡的温暖。新年钟声敲响,随着 (めい) () (じん) () 的人潮学会了初詣 (はつもう) ;手持都区内パス,来了一把特种兵打卡:代々木 (よよぎ) () (ちゃ) (みず) (三线交汇!)、 (あき) () (ばら) (うえ) () 、東京駅、皇居、銀座、新橋 (しんばし) 高輪 (たかなわ) ゲートウェイ……

就这样,2024年1月2日的早晨,我已经坐在 (はね) () 空港的航站楼里。作为一个多次组织人均千元以内五天以上活动的穷游大师,即将迎来的是可能第一次不那么穷的游——毕竟往返的机票都超过这个数了。

Read More

以最不折腾的方式取得日本业余无线电资格

前言

之前在中国考了A、B类业余电台操作证书、也设了台。除了每年的考试场次比较有限,一切都非常简单,也基本上不需要花钱。今天来介绍一下在日本如何取得各类许可,合法地开展业余无线电活动。除了文中已经进行的比较外,其他未提及部分大家可以自行与中国的情况对比。

当然,与中国相同,需要2份许可:跟人的操作许可和跟机器的电台许可。在日语中分别称作無線従事者免許証無線局免許状。也是同样地,需要持有無線従事者免許証之后才能设台(開局)。中国的主管机关是工业和信息化部,日本的主管机关是総務省

Read More