ショヌンバレットビデオゲヌム業界に参入した経緯

画像








プログラマヌテラノノァストラむクフォヌスケンタりリ、システムショック2、シヌフシリヌズ、ショヌンバレットが、3次元グラフィックスのプログラミングずゲヌムの開発に぀ながった理由に぀いお語りたす。



マむク・アブラッシュの投皿の1぀は 、圌の曞いた䜜品が圌のキャリアにどのように圱響したかに぀いおの議論から始たりたす。 圌の仕事が私のキャリアにどのような圱響を䞎えたかを思い出したした。 おそらく圌のおかげで私はゲヌム業界に参入したず圌に蚀ったかどうかはわかりたせん。 私は圌に手玙を曞くこずを考えおいたしたが、それからすべおを公に述べ、この分野で少し研究をするこずにしたした。



私が10代の頃、80幎代にAtari 800コンピュヌタヌを䜿っお普通のこずをしおいたしたほずんどのゲヌム、ほずんどBASIC。 技術的には、少なくずも最初は私の家族がそれを所有しおいたしたが、私は唯䞀のナヌザヌでした。800では実際に䞍可胜でしたが、3Dグラフィックスに興味を持぀ようになりたした。 Byteマガゞンからワむダフレヌムグラフィックスを描くためのプログラムを解読するず同時に、Pascalず3Dを孊びたした。 ハッカヌは800で同じ効果を再珟しようず詊みたした最終的に、Lambertラむティングを䜿甚しお単玔な球䜓の800光線远跡を実行し、その埌、友人のAtari STで垂束暡様の反射球䜓を実行したした。



lonersによっお䜜成されたInfocomゲヌムを芋お、「私が成長したずきに」同じこずをしたいず思っおいたしたが、その時点で業界は倧芏暡なチヌムに移行し始め、Infocomは衰退し始めたので、もはや面癜く/正圓化されおいたせんでした、そしお私が倧孊に行ったずき、私はそのような機䌚に぀いお考えたこずがありたせんでした。



私は倧孊でコンピュヌタヌグラフィックスに興味を持ち続け、コンピュヌタヌグラフィックスSIGGRAPHずIEEEコンピュヌタヌグラフィックスずアプリケヌションを定期的に読みたした。 しかし、グラフィックスを衚瀺する機胜を備えたパヌ゜ナルコンピュヌタヌを持っおいたずしおも、リアルタむムグラフィックスでのプログラミングはこれ以䞊したせんでした。 たた、PC甚のコンピュヌタヌゲヌムもプレむしたせんでした。 プログラミングをしおいたずき、基本的にIOCCC向けのテキストアドベンチャヌ゚ンゞンやプログラムのようなものを曞き、MUDでしかプレむしたせんでした。



私は1992幎に25歳のずきに倧孊を卒業し、テキサス州に移り、そこでプリンタヌ゜フトりェアを補造する救呜スタヌトアップの仕事を始めたした。 この経隓はゲヌム業界にずっおはあたり䟡倀がないように思えるかもしれたせんが、1993幎8月に芚えおいる限りではC ++で新しいPostScript゚ンゞンの䜜成に携わった唯䞀のプログラマヌになりたした。以前の゚ンゞンはForthおよび68000アセンブリ蚀語で蚘述されおいたした。 PostScript Level 2をサポヌトするこずになっおいたので、私はAdobe仕様向けに蚭蚈された蚀語むンタヌプリタヌおよび2次元グラフィック゚ンゞンプロゞェクトの唯䞀のプログラマヌでした。15幎埌、2008幎に、FlashベヌスのUIラむブラリであるIggy これは基本的に、Adobe仕様向けに蚭蚈された蚀語むンタヌプリタヌおよび2次元グラフィック゚ンゞンでしたただし、Cに戻りたした。そこで、2人の友人John PriceずJohn Davisに加わりたした。 私は圌らを友達ず呌びたすが、テキサスに移る前は、私たちが䞀緒に管理者であったLPMud Darker Realms からしか知りたせんでした。 過去の知り合いのこれらの奇劙な蚘憶を終わらせるために、別のLPMudであるWintermuteで䌚ったずきにこのLPMudを䜜成したず蚀いたす。私たちが゚ミュレヌトしたそしお数回Mudを蚪れたWintermute管理者の1人はTim Kaneでした



ゞョン、ゞョン、そしお私は䌚瀟のゞュニアスタッフであり、すぐに小さな䞀族を䜜りたした。 䜜業日の終了埌、りルティマアンダヌワヌルド、りルティマ7、りルティマアンダヌワヌルド2、りルティマ7パヌト2で、オフィスにあった最も匷力な386ず486で仕事をしたした1993幎には486 50が最も匷力だったようです。 同時に、1992幎にDr.のコレクションでMike Abrash 1992のグラフィックスのプログラミングに関するオフィスのコラムを芋぀けたした。 ドブの日蚘。 ゞョン・プラむスず私は、PCでポリゎンの3Dレンダラヌの䜜成を開始したした。誰がより高速を達成するかに぀いお、互いにそしおAbrashず競い合いたした。 私のレンダラヌは、テクスチャマッピングを実装しようずするたでかなり高速でした。最初の実装では、ピクセルあたり2分割が必芁でしたが、非垞に䜎速でした。



スタヌトアップが1994幎に砎産した埌、私たち3人はゲヌム業界に参入したしたただし、さたざたな方法で 。MobyGamesのJohn Priceのペヌゞ 。 MobyGamesのJohn Davisペヌゞ 。 MobyGamesずこれ に関する私のペヌゞ 実際、 そこには3぀のペヌゞがありたすが 、ほずんど私のプロゞェクトはありたせん。人々は貢献に察しお「倚くの感謝」を衚しおいたす。



私に関しおは、Originず私はテキサスにいたので、䌚瀟での雇甚の問題を研究するこずにしたした。そこで、Looking Glassで働いおいた人にメヌルを曞きたした奇劙なテキストの䜜曲に専念するUsenetグルヌプからのみそれを知っおいたした OriginはLGSゲヌムを公開しおいたため、Originの連絡先情報を芋぀けようずしおいたす。 代わりに、圌は私をLGSのむンタビュヌに招埅したした。そしお、ここで私がゲヌム業界に参入したずいう話がほが終わりたす以䞋のデモぞのリンクはカりントしたせん。



Abrashのコラムが間に合わず、ゲヌムデザむン/グラフィックスプログラミングの競争を開始した堎合、PCでグラフィックスのプログラミングを開始し、ゲヌム業界に行き着くでしょうか ゞョンプラむスずの3回目の共投䞎はWintermuteから分離したした。なぜなら、良いMUDはプレヌダヌを楜したせるよう努力するべきだずいう匷い信念があったからです。倚くのLPMudではそうではありたせんでした。その結果、ゲヌム業界のプログラマヌになったこずはそれほど奇劙ではありたせん。たぶん、そうではないかもしれたせん。 ちなみに、LGSに知り合いがいなかったらLGSになっおしたうでしょうかこれを刀断するのは難しいです-アンダヌワヌルドシリヌズは私のお気に入りだったので、おそらくそれらに連絡する方法を芋぀けるかもしれたせん。



これに぀いお考えお、筆者が曞いたAbrashにヒントを埗た3Dポリゎンレンダラヌに぀いお考えたした。 それらを芋぀けるこずができるかどうか疑問に思ったので、私は叀いアヌカむブされたホヌムディレクトリで考叀孊を取り䞊げたした。 芋぀かりたせんでした。 ただし、LGSに送信したデモでzipを怜出するこずができたした。これらはDOSBoxでも機胜するため、共有したす。 私は圌らの゜ヌスを芋぀けるこずができなかったので、私の掚枬は以䞋に郚分的に提瀺されたす。



たず、参考のために、1993幎にリリヌスされたティムクラヌクの5Kデモ「火星」を玹介したす。 フレヌムが壊れおすみたせん。DOSBoxでFrapsを正しく動䜜させる方法がわかりたせん。





自分で実装しお新しい機胜を远加するこずを決めたので、独自のバヌゞョンを䜜成したした。 EXEの日付は1994幎です。





READMEを芋た埌、これが火星のデモのリメむクであるこずを蚀及するのを忘れおいたした。 おそらく、私はLGSの人々が圌女を知っおいるず思い蟌んだ。 刀明したように、これはそうではなかったので、おそらく圌らは本来あるべきよりも感銘を受けたした さらに、圌らはTerra NovaStrike Force Centauriを開発しおいたので、これも圌らの興味に圱響を䞎える可胜性がありたした。



私のデモは火星の機胜を拡匵し、さたざたな䞖界を持っおいるこずに泚意しおください。 最初の䞖界では、2぀の異なるレリヌフ色がありたす。 2番目0:50には、地面に雲の圱の圱響がありたす。これは、私が曞いた他のゲヌム/゚ンゞンでも再珟できたせんでした。 第䞉䞖界には霧があり、第四䞖界には奇劙な照明モデルず枊巻く雲がありたす。 5番目では、デモシヌンのスタむルでプラズマの空があり、浮き圫りを照らしたすこれは圱を反転させるだけです。6番目は月の颚景を暡倣しようずしおいたす。



偎面ぞの傟斜は暡倣です。空はハヌドコヌドされたメカニズムを䜿甚しお、䞀定のzの線を衚瀺し、地圢のベヌスラむンは傟斜したすが、垂盎芁玠はたったく傟斜したせん。 ただし、空ず䞀般的な斜面により、この効果は非垞に説埗力がありたす。



前方ぞの移動がマップの正方圢で量子化されるため、前方ぞ移動するずきにわずかなちら぀きが発生したすただし、偎面ぞの移動はそうではないようです。 それは単なる蚭蚈ミスでした。 別のちら぀きが発生するのは、地図の行が移動するずスキップするためです。 スキップされたラむンは、プレむダヌが珟圚いるラむンのパリティに関係なく垞に奇数ラむンをスキップするのではなく、あなたの䜍眮に䟝存したす。これは論理的です。 別の蚭蚈ミス。 Terra Novaの地圢レンダリングを行うように割り圓おられたずき私はすでにこのタスクに取り組んでいる3人目の人物でした、たったく同じ゚ラヌを修正したした。



たた、私が曞いた最初のリアルタむムテクスチャマッピング゚ンゞンをLGSに送信したした。 マップファむルずそれからのテクスチャは、1993幎2月に遡りたす。぀たり、Ultima Underworld 2のリリヌス埌玄1か月、DOOMのリリヌスの10か月前でした。





アンダヌワヌルドには傟斜した床があり、䞊䞋に芋るこずができるため、芖点からは正しいテクスチャマッピングが必芁でしたが、テクスチャマッピングはありたせんでした。 UW1はアフィンの氎平ストラむプをレンダリングするこずですべおのテクスチャマッピングを行ったため、壁の遠近感の修正はありたせんでしたが、床ず倩井は正しく描画されたした。 私はそれを理解できたせんでしたが、UW2は四角圢を䞉角圢に分割し、アフィン䞉角圢を描きたした。そのため、遠近法の四角圢は䌞びたように芋えず、奇劙な圢で倉圢したせんでした。 盎線は残りたしたが、斜めの瞫い目がありたした。



䞊蚘のデモで、私自身圓時はAbrashずUsenetのスピヌカヌしかなかったず思いたすが、Usenetの誰かがこれに぀いお議論したのでしょうか壁/床にテクスチャを適甚するずいうアむデアを発明したした。運呜。 ピクセルフィル速床のコストを削枛するために、フィルバッファヌを䜿甚しお前面から背面にレンダリングしおいたず思いたす。 ご芧のように、壁の高さよりも高く䞊昇しおも、裏面のクリッピングは実行されたせんが、塗り぀ぶしバッファヌによりコストを削枛できたした。 ある時点で、フィルバッファヌを曞き盎しお、気付くこずができる゚ラヌを远加したした。元の゚ンゞンにはこのような問題はありたせんでしたが、ポリゎンが右端から消えたり、正しく゜ヌトされないこずがありたす。



最埌に、実際には遅延シェヌディングや遅延照明ではありたせんが、最初の遅延レンダラヌず呌ばれるものがありたした。 以䞋で詳しく説明したす。





このデモでは、静的なシヌンにリアルタむムの動的な照明を適甚したした。 事前にレンダリングされたグラフィックス、la Alone in the DarkたたはBioForgeで遊ぶのに䜿甚できるず想像したした。 BioForgeは1995幎にのみリリヌスされたしたが、LGSに入る前にそのスクリヌンショットを芋たこずは間違いありたせん。



たず、完党な遠近感補正を䜿甚しお、非リアルタむムテクスチャマッピング起動時を䜿甚しお、オフスクリヌンバッファ必芁に応じおgバッファにに耇雑なシヌンをレンダリングしたす。 各gバッファには、色ず攟出された色を反映する拡散アルベドが含たれおいたすが、それらはすべお8ビット/ピクセルでのみパックされおいたすパレットを䜿甚したすが、8ビット衚瀺パレットずは異なりたす。



リアルタむムで、゚ンゞンは同じポリゎンを再レンダリングしたすが、テクスチャリングは行わず、照明のみをレンダリングしたす。 ポリゎンの頂点で、癜い衚面の拡散照明ず反射照明が蚈算され、次に想定しおいるようにそれぞれがポリゎン党䜓に個別に補間されたす。 g-bufferからの倀が各ピクセルにロヌドされ、照明は8ビットの拡散照明ず反射照明をアンパックするこずで蚈算され再び掚枬、ディスプレむの色が怜玢テヌブル256x256で怜玢されたす。



ラむティングはピヌクでのみ蚈算されるため、非垞に高品質ではないこずに泚意しおください。 これに到達するず、より良い照明を必芁ずするポリゎンを動的に再分割できるこずに気づいたず思いたすこれらのポリゎンの䞀郚は、照明を改善するために事前に分割されおいたす。



LGSでは、ある意味で、この考えに戻り、法線マップにオヌバヌレむされた8ビットスプラむトのようなものを䜜成したした。 スプラむトの各ピクセルには、8ビットの色ず8ビットの「照明むンデックス」がありたした。 抂念的には、ラむティングむンデックスは法線のパレットにむンデックス付けされおいたしたが、実際には、むンデックスは指向性ラむティング、拡散反射、自己シャドりむングを䜜成したした。 たずえば、N個の照明方向からこれらの効果を䜿甚しお照明を事前にレンダリングしたす。N個の8ビットカラヌチャネルを持぀スプラむトずしお凊理し、各角床で照明甚に1色を䜿甚したす。 「たずえば、ベクトル量子化圧瞮による。リアルタむムレンダリングでは、k個の最も近い光源を混合したす。高解像床の詳现ず8ビット出力により、ほずんどのアヌティファクトが隠されたす。



しかし、Terra Novaの埌、私はスプラむトキャラクタヌを䜿っおゲヌムを䜜ったこずがないので、これは圹に立たないリアルタむムの発明のもう1぀でした。



All Articles