1. マリオの かおに のこる わけ
1. マリオの顔をよく見ると分かること ── ドット絵の工夫
1. マリオの顔に残る、ドット絵時代の制約
1981ねん、「ドンキーコング」と いう ゲームが うまれました。がめんの なかの マリオは、たて16、よこ16の ちいさな しかくの なかに かかれて います[2]。それだけの てんすうで、人らしい かおを かこうと すると、こまった ことが おきます。
かみのけを うごかして かくのは むずかしいです。だから、ぼうしを かぶせました。くちを かくと、はなと くちが かさなって わかりにくく なります。だから、くちの かわりに くちひげを かきました[1]。
ふくの いろも くふうです。うえと したで ちがう いろに すると、うでや あしが うごいて いるのが、はっきり わかります[1]。
ぼうしも、くちひげも、いろちがいの ふくも、ぜんぶ「すくない てんで、人らしく みせる」ための くふうでした。では、この すくない てんを、がめん ぜんぶで どう つかいまわして いたのでしょう。
1981年、アーケードゲーム「ドンキーコング」が生まれました。画面の中のマリオは、たて16、よこ16ピクセルという、小さな四角の中に描かれています[2]。これだけの点の数で、人間らしい顔を描こうとすると、困ったことが起こります。
髪の毛をアニメーションさせるのは大変です。そこで帽子をかぶせ、髪を描く手間をなくしました。鼻の下に口を描こうとすると、少ないピクセルでは鼻と口がくっついて見分けがつきません。そこで口の代わりに口ひげを描き、口を省きました[1]。服の色にも工夫があります。オーバーオールとシャツの色を変え、背景ともコントラストをつけたことで、腕を振って動いているようすがはっきり分かるようになりました[1]。
ドンキーコングの基板は、たて16×よこ16ピクセルのスプライト(動く絵)を128枚、たて8×よこ8ピクセルの背景タイルを256種類、記憶できる仕組みでした。マリオの絵は1枚のスプライト、恋人のポリーンは2枚、ドンキーコング自身は6枚のスプライトを組み合わせて動いています。この設計をもとに作られたゲーム全体のデータ量は、約20キロバイトほどだったといいます[2]。今のスマートフォンの写真1枚にも及ばない量です。
帽子、口ひげ、色分けされた服は、どれも「少ない点で、人間らしく見せる」ための工夫でした。では、この少ない点を、画面のあちこちでどうやって使い回していたのでしょうか。
1981年、任天堂のアーケードゲーム「ドンキーコング」が生まれた。画面の中のマリオ(当時の名前はジャンプマン)は、16×16ピクセルという小さな四角の中に描かれている[2]。これだけの点数で人間らしい顔を描こうとすると、限界にぶつかる。
記録によれば、「口ひげは口があることを示唆し、帽子は髪のアニメーションを不要にし、色を塗り分けたオーバーオールは腕の動きを見分けやすくする」[2]。別の記述では、「限られた画像表現能力で人間らしい顔の特徴を出すため、宮本茂は大きな鼻と口ひげを描いた。これは口を描く必要をなくし、限られたピクセル数で鼻と口をはっきり分ける問題も避けられた」と説明されている[1]。帽子は髪型・額・眉毛を描かずに済ませ、ジャンプ時の髪のアニメーションの問題も避けた[1]。服の色は、赤いオーバーオールと青いシャツを対比させ、背景とも区別することで、腕の動きを分かりやすくするために選ばれた[1]。
当時のドンキーコングの基板は、16×16ピクセルのスプライトを最大128枚、8×8ピクセルの背景タイルを256種類まで記憶できた。マリオは1枚、ヒロインのポリーンは2枚、ドンキーコングは6枚のスプライトで構成され、この設計にもとづくゲーム全体のデータ量はおよそ20キロバイトだったという[2]。
帽子、口ひげ、色分けされた服という「記号」は、技術的な制約を回避するための工夫として生まれ、今もマリオの見た目の一部として残っている。では、この少ない点数のグラフィックを、画面のあちこちでどう使い回していたのだろうか。
2. すくない ようりょうで、たくさんの えを うごかす
2. 少ない容量で、たくさんの絵を動かす工夫
2. 少ない容量で、たくさんの絵を動かす工夫
むかしの ゲームきの きおくは、いまの ゲームきや スマートフォンに くらべて、ずっと すくないです。ドンキーコングは、ゲーム ぜんぶを あわせても、やく20キロバイトしか つかって いません[2]。
くふうの ひとつは、「おなじ え を なんども つかう」ことです。うしろの けしきは、8×8の ちいさな しかくの え を、はんこの ように なんまいも しきつめて つくります。ちいさな え を ひとつ おぼえて おけば、それを くりかえし つかって、おおきな けしきが できます[3]。
キャラクターの え も つかいまわします。ファミコンの きかいには、ひだりむきの え を、そのまま みぎむきに ひっくりかえして だす きのうが ありました。ひだりと みぎ、りょうほうの え を べつべつに おぼえなくても すみます[4]。
「はんこの くりかえし」と「うつしかえ」の ふたつで、すくない きおくでも、おおきな がめんが つくれました。でも、え を へらせても、こまった ことが のこります。ボタンを おした しゅんかんに、キャラクターが うごかないと、あそびに なりません。てきに ぶつかったかどうかも、すぐに わからないと こまります。
昔のゲーム機の記憶容量は、今のゲーム機やスマートフォンに比べて、けたちがいに少ないものでした。ドンキーコングは、ゲーム全体を合わせても、約20キロバイトしか使っていません[2]。
工夫のひとつは、「同じ絵を何度も使い回す」ことです。背景の景色は、8×8ピクセルの小さな四角い絵(タイル)を、はんこのように何枚も敷きつめて作ります。ある資料は、こうしたタイル方式は、画面のすべての点の色を1つずつ記憶する方式に比べて、64分の1ほどの記憶量で済んだ場合がある、と報告しています[3]。小さな絵をいくつか覚えておくだけで、それを繰り返し並べ、広い景色を作れるのです。
キャラクターの絵も使い回します。ファミコンの映像を作る部品(PPU)には、記憶しているスプライト(動く絵)を、そのまま左右または上下にひっくり返して表示する機能がありました[4]。左向きの絵と右向きの絵を、別々に用意しなくても、1つの絵をひっくり返すだけで両方に使えます。
「タイルの繰り返し」と「絵の反転」という2つの工夫で、少ない記憶容量でも、広くにぎやかな画面が作れました。ただし、絵を節約できても、遊びやすさは別の問題です。ボタンを押した瞬間にキャラクターが動かなければ、遊びになりません。敵にぶつかったかどうかも、すぐに分からなければ困ります。
昔のゲーム機の記憶容量は、今のゲーム機やスマートフォンとはけたちがいに少ない。ドンキーコングは、ゲーム全体を合わせても、約20キロバイトしか使っていない[2]。
工夫のひとつは、同じ絵を繰り返し使うタイル方式である。背景は、8×8ピクセルの小さな正方形の絵(タイル)を並べて作る。ある研究は、8×8のタイルマップは、画面の全ピクセルを1つずつ記憶する方式(フレームバッファ)に比べて、必要な記憶量と処理時間が64分の1で済んだ、と報告している[3]。少数の絵を1回だけ記憶し、あとは「どのマスにどのタイルを置くか」という配置の情報だけを持てばよいため、記憶量が大きく減る。
キャラクターの絵にも使い回しの工夫がある。ファミコンの映像処理部品(PPU)のスプライト属性には、絵を水平方向・垂直方向に反転して表示するためのビットがある。反転しても、スプライトが画面上で占める位置(当たり判定の枠)は変わらず、絵の中の点の並びだけが逆になる[4]。そのおかげで、左向きと右向きの絵を別々に用意しなくても、1つの絵を反転させるだけで両方に使い回せる。
タイルの再利用と、スプライトの反転。この2つによって、限られた記憶容量でも、広く変化に富んだ画面を作ることができた。しかし、絵を節約できても、遊びやすさの問題は別に残る。ボタンを押した瞬間にキャラクターが反応しなければゲームにならず、敵に当たったかどうかを即座に判定できなければ、遊びが成立しない。
3. ボタンを おすと、なぜ すぐ うごくの?
3. ボタンを押すと、なぜすぐ動くのか ── 当たり判定と反応の速さ
3. ボタンを押すと、なぜすぐ動くのか ── 当たり判定と入力の反応
むかしから いまの ゲームまで、1びょうかんに 60かい、がめんを かきかえて いる ものが おおいです。60ぶんの1びょう、つまり やく0.017びょうごとに、ボタンの じょうたいを よみとって、がめんを つくりなおして います[6]。だから、おした しゅんかんに うごいた ように かんじます。
はんのうが おそすぎると、あそびに くさが します。がめんが かわるまでの じかんが ながく なるほど、そうさは しにくく かんじられると いわれます[7]。
てきに ぶつかったかどうかは、キャラクターの まわりに みえない しかくい わくを おいて、わくどうしが かさなったかを しらべます。まる い かたちや、ほそかい かたちを ひとつずつ しらべるより、しかくの わくで しらべる ほうが けいさんが かんたんで はやいです[5]。では、でんげんを きっても、あそんだ きろくが きえないのは なぜなのでしょう。
昔から今のゲームまで、1秒間に60回、画面を描きかえているものが多くあります。ゲームの世界では、長いあいだ「60fps(1秒60コマ)」が、なめらかに感じられる目安のひとつとされてきました[6]。1コマごとにコントローラーの状態を読み取り、その情報をもとにキャラクターの位置を計算しなおして、次の画面を作ります。1コマは約0.017秒ですから、ボタンを押した瞬間に動いたように感じられるのです。
反応が遅すぎると、遊びづらくなります。ボタンを押してから画面に反映されるまでの時間(入力の遅れ)が長いほど、遊びにくく感じられると言われます[7]。画面の書きかえの速さそのものも、この遅れの一部になります[7]。
敵にぶつかったかどうかの判定にも、速さの工夫があります。多くの2Dゲームでは、キャラクターの見た目の輪郭ではなく、キャラクターを囲む見えない四角い枠(バウンディングボックス)どうしが重なっているかどうかで判定します。四角形の重なりを調べる計算は単純で、それだけで「じゅうぶん正確」と見なされています[5]。まず大まかに近い相手だけをしぼりこみ、そのあと必要なものだけ詳しく調べる、という2段階の方法がとられることもあります[5]。では、電源を切っても、遊んだ記録が消えずに残るのはなぜでしょうか。
昔から今のゲームまで、1秒間に60回画面を描きかえるものが多い。長いあいだ、60フレーム毎秒(60fps)が、なめらかな動きに感じられる目安のひとつとされてきた[6]。1フレーム(約16.7ミリ秒)ごとにコントローラーの入力を読み取り、その入力をもとにキャラクターの位置と状態を計算しなおして、次の画面を描く。フレームレートを上げると、入力が次のフレームに反映されるまでの時間を短くできる場合があるとされる[6]。
遅れが大きすぎると、操作がしにくくなる。ボタンを押してから画面に反映されるまでの遅れ(入力レイテンシー)が長いほど、遊びにくく感じられることがある。感じ方はゲームの種類や人によって異なる[7]。ディスプレイのリフレッシュレート(1秒間に画面を更新する回数)も、この遅れを構成する要素のひとつである[7]。
当たり判定にも、速さのための単純化がある。衝突を調べる処理は、まず「衝突する可能性がある組み合わせ」を大まかにしぼりこむ広域段階(ブロードフェーズ)と、そのあと正確に調べる狭域段階(ナローフェーズ)の2段階に分けられることが多い[5]。多くの2Dゲームでは、キャラクターの正確な輪郭ではなく、軸に沿った四角い枠(軸並行バウンディングボックス、AABB)で近似して囲み、枠どうしの重なりだけを調べる方法が「単純さと交差判定の速さ」から広く使われている[5]。輪郭の形をそのまま毎フレーム計算するより、四角形の位置と大きさを比べるだけのほうが、計算の量がずっと少ない。では、電源を切っても遊んだ記録が消えずに残るのは、どういう仕組みによるのだろうか。
4. セーブは どこに きろくされて いるの?
4. ゲームの「セーブ」は、どこに記録されているのか
4. ゲームの「セーブ」は、どこに記録されてきたのか
むかしの ゲームきや コンピューターには、でんげんを きっても きえない きおくの ばしょが ありませんでした。だから、ゲームの とちゅうを、「もじの れつ」に かえて、かみに かきうつす ほうほうが つかわれました。これが「パスワード」の セーブです[8]。
そのあと、カートリッジの なかに、でんちで うごきつづける ちいさな きおくを いれる ほうほうが うまれました。1987ねんの あるゲームは、アメリカばんで、はじめて この でんちの きおくを つかった ゲームの ひとつだったと されます[9]。でんげんを きっても、でんちが きえるまでは、きろくが のこります。
そのあとも、メモリーカード、ほんたいの なかの きおく、そして いまは インターネットの さきの きかいに きろくする「クラウド」と、セーブの ばしょは かわって きました[8]。では、とおくに いる 人と、おなじ しあいで あそべるのは、なぜなのでしょう。
昔のゲーム機やコンピューターには、電源を切っても消えない記憶の場所がありませんでした。そこで、ゲームの続きを「文字の並び」に置きかえて、紙に書き写しておく方法が使われました。これがパスワード方式のセーブです[8]。
そのあと、カートリッジの中に、電池で動きつづける小さな記憶(バッテリーバックアップRAM)を入れる方法が生まれました。日本で1986年に発売されたあるゲームは、翌1987年にアメリカ版が出ましたが、そのアメリカ版のカートリッジは、ファミコン(NES)向けとして、内蔵電池でのセーブを取り入れた最初期の作品のひとつだったとされます[9]。電源を切っても、電池が切れるまでは記録が残ります。
その後は、ゲーム機とは別に持ち運べるメモリーカード(1990年のネオジオが早い例とされます)、本体に内蔵されたハードディスクやSSD、そしてオンラインゲームでは、インターネットの先にあるサーバーに記録を残す「クラウドセーブ」へと、セーブの置き場所が移り変わってきました[8]。では、遠くにいる人と、同じ試合で遊べるのは、なぜでしょうか。
初期のゲーム機やホームコンピューターには、電源を切っても消えない不揮発性の記憶装置がなかった。そこで、ゲームの状態を再現するために必要な情報をすべて、画面に表示された文字列としてエンコードし、プレイヤーがそれを書き写して、あとで入力しなおす方法が使われた。これがパスワード方式である[8]。
そのあと、カートリッジ自体に電池で保持するRAM(バッテリーバックアップSRAM)を内蔵し、そこにセーブデータを書きこむ方法が生まれた。日本で1986年に発売されたあるゲームは、翌1987年に出た米国版のカートリッジが、「NES向けとして、データ保存用の内蔵電池を備えた最初期のゲームのひとつ」だったとされる。この米国版は、バンク切り替えでより大きなゲームを扱えるようにするMMC1というチップを使っており、その構成の一部として、電池式RAMによるセーブも、このハードで初めて扱えるようにしたと説明されている[9]。
その後、ゲーム機本体とは別に持ち運べるメモリーカードが登場する。SNKのアーケード・家庭用システム「ネオジオ」が、1990年の早い例とされる。2000年代以降は、本体内蔵のハードディスクやSSDが主流になった。オンラインゲームでは、進行状況を手元の機械ではなく、遠くのサーバー側に保持する「クラウドセーブ」の形も一般的になっている[8]。
パスワード、電池式のカートリッジ内蔵メモリ、メモリーカード、本体内蔵ストレージ、サーバー上のクラウド。セーブの置き場所は、そのときどきの記憶装置の限界に合わせて移り変わってきた。では、1人で遊ぶ記録の保存とはちがい、遠くにいる別のプレイヤーと同じ試合を成立させるには、何が必要なのだろうか。
5. とおくの 人と、おなじ しあいで あそべる わけ
5. 遠くの人と、同じ試合で遊べる理由
5. 遠くの人と、同じ試合を成立させる通信の工夫
とおくに いる 人と いっしょに あそぶ とき、じぶんの がめんと あいての がめんは、はなれた ばしょに あります。じぶんが ボタンを おした じょうほうは、でんぱや かいせんを つうじて、あいての きかいに とどくまでに、すこし じかんが かかります[10]。
この「じかんの ずれ」を どう あつかうかで、やりかたが わかれます。ひとつは、あいての じょうほうが とどくまで まつ やりかたです。でも、これだと はんのうが おそく かんじます[10]。
もうひとつは、まだ とどいて いない あいての うごきを「たぶん こう うごく」と よそくして、さきに がめんを うごかして しまう やりかたです。あとで ほんとうの じょうほうが とどいたとき、よそくが はずれて いたら、すこし まえの じょうたいまで「まきもどして」、やりなおします[11]。よそくが あたる ことが おおいので、たいてい は なめらかに あそべます[11]。とおくの 人と おなじ がめんで あそぶ くふうを みてきましたが、たいらな がめんに おくゆきを つくる くふうも あります。
遠くにいる人といっしょに遊ぶとき、自分の画面と相手の画面は、離れた場所にあります。自分がボタンを押した情報は、通信回線を通って相手の機械に届くまで、少し時間がかかります。それぞれの機械は、自分の入力はすぐに反映できても、相手の入力は遅れて届くという状況の中で、同時に計算を進めています[10]。
この「時間のずれ」をどう扱うかで、やり方が分かれます。ひとつは、相手の情報が届くまで自分の操作の反映も待つ、遅延ベースのやり方です。安全ですが、操作してから反応するまでが遅く感じられます[10]。
もうひとつが、格闘ゲームなどで広まった「ロールバック」という方式です。まだ届いていない相手の入力を「たぶんこう動く」と予測し、自分の操作はすぐに画面へ反映してしまいます。あとから本当の入力が届いたとき、予測が外れていたら、少し前の正しい状態まで巻きもどして、届いた入力で計算をやりなおします[11]。予測が当たることが多いので、たいていは急なとぎれを感じずに、なめらかに遊べます[11]。通信だけでなく、平らな画面を立体に見せる工夫も、ゲームの見た目を大きく変えてきました。
遠くにいる人といっしょに遊ぶとき、自分の画面と相手の画面は、離れた場所で別々に動いている。それぞれのプレイヤーの機械は並行してシミュレーションを実行し、自分の入力はすぐに実行できるが、相手の入力は通信の遅れの分だけ遅れて届く[10]。
この時間差の扱い方には、大きく2つの考え方がある。ひとつは遅延ベース方式で、自分の入力を、遠い相手の入力が届くタイミングに合わせて遅らせてから反映する。確実だが、操作への反応が遅く感じられる[10]。
もうひとつがロールバック方式である。ローカル(自分側)の入力はすぐに実行し、まだ届いていない相手の入力は予測して、先に次のフレームを計算してしまう[11]。実際の入力が届いたとき、予測とちがっていれば、ゲームの状態を最後に正しかった時点まで巻きもどし、全員の修正済みの入力で計算をやりなおす[11]。予測が外れたときは、その分だけ見た目に小さな補正が入るが、予測が正しいことが多ければ、急な状態の変化を感じにくく、遊びやすさが保たれる、という考え方である[11]。この方式は、ピアツーピア(プレイヤー同士が直接つながる形)の格闘ゲームでよく使われてきたが、クライアントサーバー方式でも使うことができる[10]。通信の遅れをごまかす工夫を見てきたが、平らな画面を立体に見せる工夫にも、似たような「ごまかし」がある。
6. たいらな がめんに、おくゆきを つくる
6. 平らな画面に、奥行きを作る方法
6. 平らな画面に、奥行きを作る方法 ── 疑似3Dから、ゆがみが生まれる理由まで
ゲームの がめんは、ほんとうは たいらな ばんぐみです。それなのに、みちが とおくまで つづいて みえたり、たてものが おくに ならんで いるように みえたり します。
むかしの きかいには、いちまいの え を、おおきく したり ちいさく したり できる きのうが ありました。1ぎょうずつ ちがう おおきさに して かさねると、がめんの うえの ほうが ちいさく、したの ほうが おおきく なり、とおくの みちが、すこしずつ ちいさく なって みえます[12]。
もっと あとの きかいでは、りったいの けいさんを して、どちらの え が てまえに あるかを、てん ひとつずつ くらべて きめる やりかたが つかわれました[13]。
ただし、はやい けいさんの ために、おくゆきを かんたんに はぶいて もようを はりつけると、もようが すこし ゆがんで みえる ことも ありました[14]。
ゲームの画面は、本当は平らな1枚の映像です。それなのに、道が奥まで続いて見えたり、建物が奥のほうに小さく並んで見えたりします。
スーパーファミコンなどには、「モード7」と呼ばれる仕組みがありました。1枚の背景の絵を、回転させたり、拡大・縮小したりできる機能です。さらに、画面の1行を描くたびに倍率の設定を書きかえる工夫を組み合わせると、遠くを小さく、近くを大きく見せる疑似的な遠近感を作れました[12]。レースゲームの「F-ZERO」や「スーパーマリオカート」、RPGの世界地図画面などで使われています[12]。
もっと本格的な3Dでは、絵は平面の板(ポリゴン)を立体的に組み合わせて作られます。どちらが手前にあるかは、画面の点ひとつひとつについて、カメラからの深さを表す値(奥行きの値)を記憶しておき、新しく描こうとする点の値と比べて、より手前を示すほうだけを実際に描く、という計算で決めています[13]。
ただし、初代プレイステーションのような当時のハードは、計算を軽くするため、奥行きを考えずに模様をまっすぐ引きのばしてはりつける簡単な方法を使うことがありました。ポリゴンが画面に対して斜めのとき、奥にある部分と手前にある部分の縮み方が正しく計算されず、模様がぐにゃりとゆがんで見えることがありました[14]。
ゲームの画面は、本来は平らな1枚の映像である。それなのに、道が奥まで続いて見えたり、建物が奥に向かって小さく並んで見えたりする。
スーパーファミコンには「モード7」と呼ばれる表示モードがあった。背景レイヤーを回転・拡大縮小できる機能を持ち、走査線(画面の横1行)ごとに変換の倍率を書きかえる仕組み(HDMA)と組み合わせることで、疑似的な遠近感や、曲面・ゆがみの効果を作ることができた[12]。走査線ごとに縮尺を変え、高さの方向を奥行きに置きかえるようにすると、立体感の印象を作り出せる[12]。レースゲームの「F-ZERO」、「スーパーマリオカート」、RPG「ファイナルファンタジーVI」の世界地図画面など、幅広く使われた[12]。
より本格的な3Dグラフィックスでは、立体をポリゴン(多角形の板)の組み合わせで表現し、Z値(カメラからの深さを表す値)を画面の点(ピクセル)ごとに記憶するZバッファという仕組みで、手前と奥を判定する。物体を描画するとき、新しく生成される点のZ値を、すでに記憶されている値と比較し、より手前を示す値なら、その色を画面に書きこみ、そうでなければ描かずに捨てる。この処理により、近い物体が遠い物体を隠す、自然な奥行きが再現される[13]。
ただし、初代プレイステーションの世代のハードウェアの多くは、計算量を抑えるため、ポリゴンの各頂点の奥行きの情報を考慮せずに模様(テクスチャ)を貼るアフィンテクスチャマッピングという方法を使うことがあった。頂点を画面の座標に変換したあと、模様の座標を画面上でまっすぐに補間する(透視の補正をしない)ため、ポリゴンが視点に対して斜めになっている場所では、奥にある部分と手前にある部分の縮尺の変化が正しく計算されず、模様がゆがんで(wobbleして)見える現象が起きた。ポリゴンをより小さく分割すると、1枚あたりの奥行きの変化が小さくなるため、このゆがみを目立ちにくくできた[14]。
疑似的な奥行き、点ごとの奥行きの比較、奥行きを簡略化したことで生まれるゆがみ。どれも、平らな画面と限られた計算力の中で、立体らしさをどう再現するかという工夫の跡である。
7. じぶんで しらべて みよう
7. 自分でも、画面の裏側をのぞいてみる
7. 自分でも、画面の裏側にある工夫を確かめてみる
おうちに ふるい ゲームきや、ゲームの しゃしんが あれば、がめんを よく みて みましょう。
- キャラクターが みぎむきと ひだりむきで、まったく おなじ かたちを ひっくりかえした だけに なって いないか、さがして みましょう。
- うしろの けしきに、おなじ もようが なんども でて きて いないか、さがして みましょう。
- おうちの人に、むかし あそんだ ゲームの「セーブ」が、パスワードだったか、カートリッジの きおくだったかを きいて みましょう。
がめんを みるだけに しましょう。かったり、ダウンロードしたり しません。おうちの 人と いっしょに みましょう。
このメモで見た工夫は、今のゲームの画面にも残っています。手元にある画面や資料で、確かめてみましょう。
- ゲームのスクリーンショットや実際の画面で、左右対称のキャラクターや、同じ形をひっくり返しただけの敵がいないか、探してみます。
- ゲーム機の説明書やパッケージに、セーブの方法(パスワード、電池、メモリーカード、ダウンロードなど)がどう書かれているか、家族と確認してみます。
- もっと知りたくなったら、ドンキーコングのゲーム内容を記したWikipediaのページ[2]や、Zバッファの仕組みを説明したページ[13]を読んでみましょう。英語のページでも、図や数字だけ追うと分かることがあります。
ゲームの画面や説明書を見るときは、見るだけにします。買ったり、ダウンロードしたりはしません。家の人といっしょに見ましょう。
このメモで見た工夫は、今のゲームの画面にも形を変えて残っている。手元の資料で、自分でも確かめてみる。
- 手元のゲームの画面やスクリーンショットで、敵キャラクターに左右対称のものや、同じ形を反転させただけのものがないか探してみる。
- 家族に、初めて遊んだゲーム機のセーブ方式(パスワード、電池、メモリーカード、ダウンロードなど)を聞き、このメモの年代の並びと照らし合わせてみる。
- 原典にあたる。NESdev(ファミコンの開発者コミュニティが作る技術資料)のPPU OAMのページ[4]には、反転ビットの仕様が具体的に書かれている。GGPOのロールバックの仕組みを紹介した記事[11]や、Zバッファの説明[13]も、図とあわせて読むと分かりやすい。
ゲームの画面や説明書を調べるときは、見るだけにする。買ったり、ダウンロードしたりしない。家の人といっしょに見る。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
このメモは、下にあげた公開情報をもとに書いています。文章や図を無断で転載してはいません。もっと正確に知りたいときは、必ず下の出典にあたってください。リンク先の内容や、リンク先で起きたことについて、当サイトは責任を負いません。英語のページは、何のページかを日本語で添えました。
- Wikipedia(英語)「Mario」。 https://en.wikipedia.org/wiki/Mario (ネット百科事典。マリオの帽子・口ひげ・服の色が、当時のグラフィック技術の制約から生まれた経緯)
- Wikipedia(英語)「Donkey Kong (1981 video game)」。 https://en.wikipedia.org/wiki/Donkey_Kong_(1981_video_game) (ネット百科事典。基板のスプライト・タイルの記憶容量、マリオのデザインの技術的な理由)
- Wikipedia(英語)「Tile-based video game」。 https://en.wikipedia.org/wiki/Tile-based_video_game (ネット百科事典。タイル方式のグラフィックスが記憶容量を節約するしくみ)
- NESdev Wiki「PPU OAM」(ファミコン/NESの開発者コミュニティによる技術資料)。 https://www.nesdev.org/wiki/PPU_OAM (スプライトを左右・上下に反転して表示するビットの仕様)
- Wikipedia(英語)「Collision detection」。 https://en.wikipedia.org/wiki/Collision_detection (ネット百科事典。バウンディングボックスによる当たり判定、広域段階と狭域段階の考え方)
- Wikipedia(英語)「Frame rate」。 https://en.wikipedia.org/wiki/Frame_rate (ネット百科事典。60fpsとなめらかさ、フレームレートと入力の遅れの関係)
- Wikipedia(英語)「Input lag」。 https://en.wikipedia.org/wiki/Input_lag (ネット百科事典。入力の遅れと遊びやすさの目安、リフレッシュレートとの関係)
- Wikipedia(英語)「Saved game」。 https://en.wikipedia.org/wiki/Saved_game (ネット百科事典。パスワード方式、電池式カートリッジ、メモリーカード、クラウドセーブの歴史)
- Wikipedia(英語)「The Legend of Zelda (video game)」。 https://en.wikipedia.org/wiki/The_Legend_of_Zelda_(video_game) (ネット百科事典。米国版NESで内蔵電池のセーブを取り入れた最初期の例、MMC1チップ)
- Wikipedia(英語)「Netcode」。 https://en.wikipedia.org/wiki/Netcode (ネット百科事典。遅延ベース方式とロールバック方式のちがい)
- Wikipedia(英語)「GGPO」。 https://en.wikipedia.org/wiki/GGPO (ネット百科事典。ロールバックネットコードの予測・巻きもどし・再計算のしくみ)
- Wikipedia(英語)「Mode 7」。 https://en.wikipedia.org/wiki/Mode_7 (ネット百科事典。スーパーファミコンの疑似3D表示のしくみと使用例)
- Wikipedia(英語)「Z-buffering」。 https://en.wikipedia.org/wiki/Z-buffering (ネット百科事典。奥行きの値を点ごとに比べて手前・奥を判定するしくみ)
- Wikipedia(英語)「Affine texture mapping」。 https://en.wikipedia.org/wiki/Affine_texture_mapping (ネット百科事典。奥行きを考えないテクスチャの貼り方と、模様がゆがむ理由)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。