1760363798
2025-10-13 11:00:00
ジェットコースター・タイクーン は、1999 年当時、最もファッショナブルなコンピューター ゲームではありませんでした。しかし、ピクセルの下を覗いてみると、ガタガタする乗り物、お腹を空かせ、喉が渇き、バーフィングする人々の群衆 (そして彼らの後を拭き掃除する用務員) が、ゲームのレベルの奥深くにありました。 コード、狂気に近いほど執拗な職人技を目にしました。ゲームの唯一の開発者である Chris Sawyer は、すべてをアセンブリで作成しました。
特定のプログラミング言語のような パイソン Go や C++ は「高レベル」と呼ばれます。なぜなら、これらは人間の言語のように機能し、詩のスラムに収まりそうなコマンドやイディオムで書かれているからです。一般的に言えば、コンパイラのようなソフトウェアは、これをマシンが実際に読み取るもの、つまり実際のトランジスタに動作を指示する 1 と 0 のブロック (または 16 進数) に変換します。 「低レベル」言語の中で最も下位のアセンブリは、マシンの母国語とほぼ 1 対 1 で対応します。メタルに直接コーディングしています。複雑なコンピューター ゲームを組み立てから構築することは、抜け落ちた猫の毛皮でタペストリーを織ることに似ています。
なぜこんなことをする人がいるのでしょうか?私は最近、故郷スコットランドに住むソーヤーに尋ねました。彼は効率が理由の一つだと私に言いました。 1990 年代には、高レベル プログラミングのためのツールがすべて揃っていたわけではありません。コンパイラは非常に遅かったです。デバッガーは最低だった。 Sawyer は、共通言語である x86 アセンブリで独自のことを行うことで、それらを回避できました。 インテル チップス。
しかし、それが本当の理由ではないことは私たち二人とも分かっていました。本当の理由は愛でした。ジェットコースターに転向する前に、ソーヤーはアセンブリで別のゲームを作成していました。 交通大物。プレイヤーは都市の道路、鉄道駅、滑走路、港を担当します。私はソーヤーを鉄道模型の愛好家として想像しました。線路の各区間に敷設し、人工芝を手縫いし、細部に至るまで選択と雑用を行っていました。これらの慎重に作成されたピクセルをビットマップから表示に移動するには、Sawyer はチップの潜在能力を最大限に引き出す必要がありました。 「ジェットコースター タイクーン それは私が可能なことの限界をよく知っていたからこそ実現したのです」と彼は私に語った。
制限内で作業していますか?おそらく、デジタルが豊かなこの時代において、単一の関数を呼び出すという異質なアイデアです。 AI トレーニング アルゴリズムは 100 万個の GPU を使用できます。アセンブリでは、得られるものは 1 つだけであり、それが求めるものです。たとえそれが間違っていたとしても、多くのプログラマーが苦労して学んだとしてもです。アセンブリはそのように残酷で美しいです。自分の言いたいことを正確に言うことが求められます。
組み立てもやりました クリエイターにとっては不利益だ。彼らは物事を難しくするのではなく、簡単にすることを望んでいました。彼らはパンチカードを積み込んだり、スチームパンクなリヴァイアサンのスイッチを切り替えるのにうんざりしていたと思います。おそらく彼らは、コンピューターが最小限の指示で多くのことを実行できる、私たちのような世界を夢見ていたのでしょう。
#アセンブリでのプログラミングは残酷で美しくそしておそらくより優れた #への道でもあります