ファミコンの驚くべき発想力 -限界を突破する技術に学べ- (PCポケットカルチャー)
- 技術評論社 (2010年10月29日発売)
- Amazon.co.jp ・本 (200ページ)
- / ISBN・EAN: 9784774144290
作品紹介・あらすじ
小さなコンピュータに詰まった緻密な設計思想。限られた資源を活用する驚異のプログラミング技術。ゲームの基本構造と同時に生まれたゲーム文化。これから全く新しいゲームを考えることは可能か?ゲームを考えるための原点回帰。
感想・レビュー・書評
-
数日前に、FC版初代ドラクエ1に喧嘩を売ったゲームプログラマが今も炎上しているけど、たまたま自分自身もこの本を読んでいたところだったので、タイミング的にもなるべく多くの人にこの本を読んで貰いたいと思って記事で紹介したくなった。
8bitのCPU、最大52色表示、2KBのワーキングRAMと2KBのビデオRAM、これがハード側のファミコン本体のスペック。
それに合計40〜64KBのROMカセットを挿すとゲームがプレイ出来る訳だけど、ファミコンに限らず、任天堂はつくづく不思議な会社だなと思う事がよくある。
以下、本書メモ。
【ファミコン本体のハード面のスペック】
・CPU: リコー製RP2A03(MOS 6502のカスタムチップ、8bit)
・クロック周波数: 1.79MHz
・ワーキングRAM:2kb
・スプライト(オブジェクト):サイズ8×8ドットまたは8×16ドット 1画面中に64枚表示可能(水平には8枚まで)
・今のPCのcpuは64bit 3〜5ghzで、約6000〜1万倍の性能差。ちなみにps5は可変3.5ghz
・CPUも低価格化のため機能がそぎ落とされている。そのため乗算・除算が苦手なので、なるべくシフト演算とかでがんばってる。
【費用削減の努力】
・ファミコンは、低価格におさえるため、機能を極力そぎ落としている。
・制限されたHWでいかに容量やCPUサイクルを節約し、資源を活用するかに心血が注がれている。
・コントローラがコネクタ接続ではなく本体直付け
・チップの仕様決めの際、色数を減らしたり、音源の性能を落としたりしたが、技術者的な発想で色数を絞り込むと、単純に色を表現するためのビット数を削減するといった結果になりがち。
ファミコンの場合には、実際のゲーム制作においてキャラクタのデザインに使える色のセットをつくろうという発想でデザイナーの協力のもとに色数を絞込んだ。
【スーパーマリオブラザーズ】
・マリオの走るグラフィックは、3パターンしかない。デザインを作りこむことにより、少ないパターン数でも滑らかな動きを実現している。対照的に、方向転換する動きにはわざわざ転換中のパターンが挿入されており、メリハリをつけることでキャラに躍動感のある動きをさせている。
・スプライトの表示は制限が存在するので、ファミコンの場合は8×8のスプライトは、64個までしか表示出来なかった。
よって、画面内のピクチャの表示に制限があったため、昔のシューティングゲームの弾は早かった。
・キャラクタROMは当時、8×8ピクセルを256パターンしか定義できなかった。
そのため、マリオなどのキャラクターに対しては2パターンを組み合わせた、16ピクセルで定義することが一般的だった。
そうするとピクセルの容量の256パターンを簡単に消費してしまう。
だから節約できるところは節約していた。
例えば、クリボーは歩いているように見えるので、立っている状態のピクセルと歩いている状態のピクセルが存在するように思えるが、実際は一つのピクセルを反転させているに過ぎない。
そのために一つのピクセルしか使用せずに済んでいる。
【ドラクエ】
・ドラクエのパーティが4人なのは、スプライトの水平表示枚数制限(水平には8枚まで)のため。
・使用頻度の高いカタカナ20文字を厳選した。
各呪文の「ギラ」「ホイミ」などはそこから採用されている。
・ファミコンはセーブデータをROMに入っている電池を回すことで実現していた。しかし、その方法だと電源がショートしてセーブデータが破壊されてしまうということもしばしばあった。
だから、ドラクエはパスワード方式を採用した。
パスワードは20文字で表され、1文字が6bitの情報を持った値だった。
つまり120bit= 15byte分の情報しかセーブデータとして必要ではなかった。
具体例の一部は以下
主人公の名前 6文字 * 4 = 24bit
装備
アイテムの数・種類
物語の進行 7bit
復活の場所 3bit
【ドルアーガの塔】
・マップデータをROMに持つのではなく、疑似乱数で毎回マップを作成している。ステージNo.を種にした疑似乱数だから、ステージによって決まった形のマップになる。だから、裏ドルアーガの61面~255面という膨大なステージ数も簡単に作ることができた。
・60面の「横一直線の壁が並ぶ規則的なマップ」は、疑似乱数の種を255にするとたまたまあの形になった。この60面の規則的なマップにより、「各ステージごとにマップ形状を作りこんでいる」と錯覚させる事に成功している。
現代のような人間がコンピュータに使われているのでなく、技術者側が完全にハードもソフトもコントロールしていた時代。
ハード側もソフト側も隅々まで知り尽くした人が、最大限の性能を引き出すという黎明期特有の経験の有無が、いわゆる「神の視座」を持ち続けて、現在も創作においてアイデアを促すのだろうなとは思う。詳細をみるコメント0件をすべて表示 -
普段は意識しないコンピュータ科学のお話
目次
<blockquote>◎序章 RPGのパーティはなぜ4人?
◎第1章 ファミコンのハードウェア
◎第2章 ファミコンに見るプログラム技術の基本
◎第3章 数字を自在に操る計算のテクニック
◎第4章 限界ギリギリに挑むワザと発想
◎第5章 ファミコンから現在へ
おわりに
参考文献
</blockquote>
初期のファミコンは安価にコンピュータゲームができ、かつ厳選されたコンテンツが多くて人気になった。
このあたりは今のiPhoneにもつながる商法だが、このファミコンの頃のゲーム開発テクニックに焦点が当たっている。
具体的な内容を明かしてしまうとさすがに本の価値がなくなるが、序章のドラクエのPTが四人だった件などは一番良いトリガーではないだろうか。ハードウェアを安くするために、スペックを下げ、かつゲームのためにグラフィックなどは良くした。その独特のスペック構成からくる制約を、ゲーム開発者がどうやって回避し、アイデアを形にしていったか。
なかなか面白い。
まず、第一章でファミコンのスペック紹介から。これだけでもハードウェアアーキテクチャの面白さが垣間見える。
更に、当然この頃はコンピュータの性能が今よりかなり低いので、一部のサーバないしはソフト開発を除き、皆アセンブラだった。これはコンピュータに対して、直に簡単な命令を打ち込む唯一のプログラム言語だ。ファミコンはこれを使っていた。今でも基本情報技術者試験ではアセンブラを選ぶことができるが、コンピュータの挙動を理解するにはベストなんだと思う。
さて、そのコンピュータを直に命令を下す方法を第2章〜第3章で説明している。
かなり数学的な内容なので、一番キツイポイントかも知れない。
そしてその次に、逆転の発想とは良く言ったもので、正攻法で前から攻めても、限界に直ぐ到達してしまい、表示もおぼつかないし、ゲームのアイデアを盛り込むことも難しい。
そこで出てきた、無理を可能にしてしまうテクニックを第四章で紹介。
ここの代表例は「ドルアーガの塔」。あの無限に作られたようなMAPをどうやって少ない容量で作ったのか。
容量を無駄遣いしてしまえば、他の要素がなくなり面白みが消える。減らせばMAPは少ないが、面白い敵やアイテムをたくさん出せる。しかし、この作品では両方のいいとこだけを取ったような作りになった。
その単純化のポイントが一番のこの本での妙趣ではないだろうか。
最後には現在の環境について語り、ゲーム制作の問題・課題という点でしめる。
ある程度技術を知っている点があるので、公平ではないかも知れないが、素直に読めて面白かったな。
最後のオブジェクト指向/ガーベッジコレクションの話と、フレームワークの害については、手作り料理がいいか、レストランの料理がいいかというような問題のような気もしている。
なかなかどうして。今でも8bitは魅力的なんだろうなぁ……。 -
斜め読みして、気になる所だけをピックアップして読み込み
RPGのパーティが4人である理由は雑学として、面白かった。 -
プログラムカウンタみたいなプログラミングの一般知識の説明や、
「掛け算するより足し算、シフト演算したほうが早い」みたいな汎用的な効率化技術の説明が結構多くを占めた。
ドラクエはカタカナを全種使わず、そうなるように名前をつけたとか、わりと有名なエピソードもあり、
本書ではじめて知った『へぇ』と唸るような発想は殆どなかった。
ファミコンのソフト作ったことがなくてもプログラマだったらわりと知ってるor容易に想像できるようなことしかなく、あまり得られたものがなかった。 -
ファミコンの底力がよくわかる。今この時代にファミコンと同じ技術でゲームを作れと言われできる会社があるのだろうか。
科学技術は常に進歩することに力を注ぐが、その根底には原点となる核を常に見つめなければあらぬ方向へと進んでしまうという気持ちも少なからず持たねばならない事だろう。 -
マシンスペックが無い時代だからこその「制限がアイディアを産む」が詰まっている。この自体の人の発想には感動する。
ただ、内容はネットに転がっているようなものが多いので、ちょっと薄っぺらい。 -
ファミコンにはたくさんの制約があって、それを工夫して開発されたからこそ面白い。
そんな秘話がたくさんと思いきや、技術書。
ソフトウェア設計者としては、読んでて理解はできるけど、あんまり面白くないかも。
でも、今とはくらべものにならないくらいの制約の中で、ドラクエ等のゲームが作られたのだと思うと、やっぱり発想力ってすごいなぁと思う。
そのためにも基礎技術を理解することが大事、ということかしら。 -
あれはまだコンピュータが電子計算機と呼ばれても通じていた1983年、それまでどちらかと言うと、花札やトランプの会社と言うイメージが強かった任天堂から、全国のおもちゃ屋さんにとんでもない忙しさを招く、画期的商品が産み落とされた。それがファミリーコンピュータ、のちにファミコンと略され、日本中の子供をトリコにし、教育界を困らせた商品である。画像や音声、文字を出すのも精いっぱいだった半導体(計算機)の処理能力の中、いかに限界まで性能を引き出すか、技術的側面から描き切った本である。制約と闘いながら、ゲームのためのプログラミングやハードとのかみ合わせなど、面白いゲームのために死力を尽くした人たちが、どんな作業を手掛けたり、アイデアを駆使してきたかが、この本でわかる。
ある経済系コメンテータの言葉を最後に。
「(規格面で制約が多い)軽自動車をちゃんと作れるメーカーは、リッターカーもちゃんと作れる」
制約が多い世界で闘うことは、案外いいことかもしれない。 -
制約こそが発想を育むのだ、と思っている。
そんな気持ちで、タイトルから、ビジネス系発想本かと思いきや、そこは技評の本で、ほとんどはファミコンというハードウェアと、その上で動かすプログラミングの制約と、その回避テクニック。
その結果生まれてきたソフトウェアの話は、そんなに多くない。でも、例えばドルアーガの塔は、迷路は乱数で発生させ、宝のロジックの方にリソースを割いたのだ、といわれると、ああタイトルっぽい話が聞けたなあと、懐かしくも嬉しいではないですか。
昨今はハードウェアパワーもあがっている上に、ミドルウェアが機種間の違いを吸収しちゃうし、移植前提でつくるからおもしろみがない、と。そうだそうだ!
太陽電池で発電しているから電気が使い放題、という考えと、ちょっと似てるかな。あれ、違うかな。しかしこの本、どんな人向けの本なんだろう。