クリス・ソーヤーがアセンブラーでジェットコースターの大部分を書くのにどのくらいの時間とどのような複雑さが関与していたでしょうか?


14

この質問から、別の質問があります...
クリス・ソーヤーがアセンブラーでジェットコースターの大部分を書くのにどのくらいの時間とどのような複雑さが関係していたでしょうか?

この質問を特定して分類するために、私は興味があります。

  1. クリスが自分でゲームを書くのにかかったと推定されるおおよその工数(推測)または、アセンブラーのコーディング時間の比率のおよその割合を指定して、C / C ++ですべてを記述します。

  2. アセンブラーをよく知っているプログラマーは、これをこのような低レベルの言語抽象化のための過度に複雑なタスクと考えていますか?パフォーマンス上のメリットは別として、これはChrisが持っている異常な自然の能力なのでしょうか、それともその程度の学習に値するスキルセットなのでしょうか?複雑さ/パフォーマンスのことはアセンブラーを習得する価値があると(書くために)考えているのか、それともアセンブラーで自然に発達したスキルをたくさん持っている場合(おそらくハードウェアの操作から) / hardware drivers / electronics / etc)。


1
彼はそれをCで書くことから始めて、パフォーマンスの必要に応じてその一部をアセンブラーに変更できたでしょうか?
ジョンオンストット

1
ハ、ハ、ハ、これは私の古いコメントを読んでいる人からの質問のようなものです。
マークC

回答:


12

彼の大まかな経歴を読むと、2年(1997年前半から1998年後半)のように見えます。彼は「一度に1つのプロジェクト」の人のようで、ツールセットと時間枠が「チーム開発」には向いていないことを考えると、24か月のプログラマーを想定します。

その時点で、彼は1983年からアセンブリで働いているプロのゲームプログラマーだったので、「2クリスの年」を「2私の年」の仕事とは見なしませんでした。

ほとんどのプロのゲームは、チームの開発に約25人年かかることを考えると、業界をリードするゲームの2人年は驚くべき成果であり、格言に信念を与えています。

したがって、この場合、ChrisがCまたはJavaまたはJavascriptを使用した場合、Rollercoaster Tycoonはどれくらい速く書かれますか?おそらく、彼が14年の経験がなかった高レベルの言語を使用すると少し遅くなったという事実以外は重要ではなかったでしょう...


素晴らしい点は、そうかもしれないと思った。
匿名タイプ

4

Cを「高レベル」アセンブラーにすぎないと考えており、Chrisがすべてのルーチンでアセンブリーコードに狂気の最適化を行っていないと仮定すると、%時間という点で長くなると思います。熟練したアセンブリプログラマにとってはそれほど多くないかもしれません。

狂った最適化(ベクトル化、特別な命令セット(SSEなど)の使用、ビット調整など)をすべて実行すると、アセンブリが複雑になります。これは、Cからはできないことです。時間は、実際のコーディングではなく、「このビットを調整、組み立て、測定...このビットを調整、組み立て、測定...」ループに実際にあります。優れたマクロアセンブラーと熟練したプログラマーがいれば、アセンブリを書くことはCコードを書くことから大きなステップダウンではありません。

それでも、私はそれをすることができなかったでしょう!アセンブリでDirectXを直接初期化しようとすることを考えるとぞっとします!(編集: ウィキペディアは、彼がCで「Windowsオペレーティングシステムとのインターフェース」のためにいくつかの部分を書いたので、アセンブリでDirectXを初期化していないと思います...)


ええ、それは最初私が理解できなかったビットでした。しかし、その後、DirectXにCを使用することについて少し読みました。最適化に関する非常に興味深い情報をありがとう。
匿名タイプ

3

アセンブラーで多くのWindowsプログラムを作成することで知られる別の人物は、SpinRiteの作者であるShieldsUp!のSteve Gibsonです。およびその他のユーティリティ。彼はここでアセンブリ言語への愛について議論します

Randy Hyde(私が2人ともApple IIの6502アセンブリコードを書いていたときに知っていた)には、Windows Programming in Assembly Languageという新しいオンラインブックがあります。彼は、高級プログラミング言語(ループ構造を含む)を使用して、アセンブリプログラミングを高級言語を使用するようにすることを強く支持しています。Sawyerはおそらく生産性を高めるために同様のアプローチを使用しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.