DOOM's DNA - コード構造から系譜をたどるソフトウェア考古学
Show HN: The DNA of DOOM – How code structure survives across 44 ports

DOOM's DNAは、1997年に公開されたDOOMのソースコードから派生した43のプログラムを「形」だけで分析するインタラクティブな研究プロジェクトです。関数名やコメントをすべて取り除いても、関数の長さや分岐、呼び出し関係といった構造は指紋のように機能し、誰が誰をコピーしたかを87%の精度で見抜けます。GoやSchemeへの翻訳版でもDOOMの設計がどれだけ残ったかを可視化でき、家系図や配線図をタップしながら探索できます。コードの系譜を生物学の進化樹のように味わえる、遊べるソフトウェア考古学です。
すべての名前を隠しても、Go移植版の関数は60%の確率でDOOMの正しい部位に収まる。でたらめに当てた場合はわずか20%だ。
HNでの議論
13- barbariangrunge
興味深いプロジェクトですね。好奇心からお聞きしますが、エンジンについてさらに研究を進められたのでしょうか。例えば、アーキテクチャの分解やプログラミングパターンの分析などです。
- to11mtm
...これは楽しい実験だと思う。
そして、記事も好きだよ。「衝撃」を乗り越えた後はね。(スロップとは言わないよ、データをうまく見せるためにかなりの努力をしたのは分かるから。)
私はDoomが大好きで、その系譜も大好きだ。DoomのMOD制作やdehackedを扱ったのは、おそらく私が「プログラミング」という概念に初めて触れた経験だった(結局、dehackedでは「次のフレーム」などに関して面白いことができるし、それが時には奇妙な形で物事を変えることもあった)。
建設的なフィードバックをするとしたら:
1. 分析から得たマークダウンや出力を基に、自分で最初の骨組みを書くことを検討してみて。
2. 出力を必ず見直して調整して。
3. 最終結果を手作業で洗練させて。
AIを一部に使うなと言っているわけではない。そうしたほうがずっと良くなるよと言いたいだけ。なぜならこれは本当にクールだけど、もっと洗練されていると嬉しいからね。
- blinkbat
[flagged]