PCポケットカルチャー ファミコンの驚くべき発想力 ―限界を突破する技術に学べ―
- 松浦健一郎,司ゆき 著
- 定価
- 1,518円(本体1,380円+税10%)
- 発売日
- 2010.10.29 2012.8.22
- 判型
- 四六
- 頁数
- 200ページ
- ISBN
- 978-4-7741-4429-0 978-4-7741-5280-6
サポート情報
概要
ファミコンはコンピュータ・ゲームの原点として一大文化を築いたと言われますが、今なおレトロゲームとして熱心なファンに親しまれています。ファミコンは現在のコンピュータと比較するととても低スペックのマシンに見えますが、どのようにゲームの表現を可能にしていたのでしょうか。また、当時のプログラマーは限られたリソースを最大限に活用したプログラミングでゲームを開発していたとされますが、実際にはどのようなものだったのでしょうか。ファミコンのハードウェア/ソフトウェアに込められた数々の技術と発想に迫ります。
こんな方にオススメ
- ゲームプログラミングの初心者
- ゲームプログラマを目指している人
- ゲーム好きの人
目次
- はじめに
序章 RPGのパーティはなぜ4人?
ファミコンの特性がゲーム内容を決める!?
- キャラクタを表示する「スプライト」機能
- パーティの制限を超える工夫
- そして現在へ
第1章 ファミコンのハードウェア
CPU
- 8ビットCPU
- 8ビットを超える値の扱い
- クロック周波数
グラフィックス
- ゲーム用パソコンから現在へ
- スプライト
- BG
- 解像度
- 色数の削減
- パレット
- パターン数
メモリ
- RAMの容量が少ない理由
- RAMの使い方
- スタック
- ビデオRAMとスクロール
- ROMの使い方
サウンド
コントローラ
ROMカートリッジの拡張
- いろいろな機能の拡張
ファミコンの性能
- 当時のパソコンとの比較
- 現在のゲーム機との比較
第2章 ファミコンに見るプログラム技術の基本
ゲームは60分の1秒を周期にして動く
- 画面を更新できる時間はわずか
- VBlankの検出と割り込み
- わずかな垂直帰線期間の活用
- ダブルバッファ
- ファミコンの時代と比べて
ゲームプログラムの処理
6502アセンブリプログラミング
- レジスタ
- 絞り込まれたアキュムレータ(Aレジスタ)の命令
- わずか8ビット幅のインデックスレジスタ(X,Y)
- スタックポインタ(S)も8ビット
- 数少ない16ビット幅のプログラムカウンタ(PC)
メモリアクセス
- 高速なゼロページ
第3章 数字を自在に操る計算のテクニック
乗算と除算
- できるだけ使わない
- シフト演算を使う
- シフト演算と加算を組み合わせる
- テーブルを使う
- まじめに乗算する
- まじめに除算する
- 結局,乗算と除算はどうすべきか
実数を使いたいとき
- 弾を飛ばす角度を限定する
- DDAを使う
- 固定小数点数を使う
第4章 限界ギリギリに挑むワザと発想
データを小さくするための工夫
- 乱数を使ったステージ生成
- 迷路生成のアルゴリズム
- ファミコン版のステージが違うわけ
- もしもステージをデータで持つとしたら
パターンの節約
- スーパーマリオに見るパターン数の節約
- ドラクエに見るパターン数の節約
- スーパーマリオに見るパレット数の節約
60分の1秒未満の表現に挑む
- サイクル数を制御する
- サイクル数を削減するには
- ラスタースクロールの難しさ
セーブデータの保存
- バッテリーバックアップ
- 復活の呪文
- 保存されない情報
- 現在のセーブデータ事情
- 現在の復活の呪文事情
第5章 ファミコンから現在へ
現代プログラミングの功罪
- オブジェクト指向プログラミングの功罪
- ガベージコレクションの功罪
ゲームの既成概念を打ち砕く
- 軽量安価なファミコン
- 現在の複雑なプログラミング事情
- ミドルウェアという諸刃の剣
- ファミコンを超えて
- おわりに
- 参考文献
プロフィール
松浦健一郎
東京大学工学系研究科電子工学専攻修士課程修了。研究所勤務を経て、現在はフリーのプログラマ&ライター&講師として活動中。プログラミング言語作りとゲーム作りに強い関心を持つ。
著書(いずれも共著):『弾幕 最強のシューティングゲームを作る!』『シューティングゲーム アルゴリズム マニアックス』『アクションゲーム アルゴリズム マニアックス』『パズルゲーム アルゴリズム マニアックス』『シューティングゲーム プログラミング』『3D格闘ゲーム プログラミング』『ゲームアルゴリズムレシピ for JavaScript』『ゲームエフェクト マニアックス』他多数。
司ゆき
東京大学理学系研究科情報科学専攻修士課程修了。学部生時代からライターおよびプログラマの仕事を続けている。書籍の執筆や翻訳のほか、ソフトウェアの受注設計開発も行う。
著書(いずれも共著):『弾幕 最強のシューティングゲームを作る!』『シューティングゲーム アルゴリズム マニアックス』『アクションゲーム アルゴリズム マニアックス』『パズルゲーム アルゴリズム マニアックス』『シューティングゲーム プログラミング』『3D格闘ゲーム プログラミング』『ゲームアルゴリズムレシピ for JavaScript』『ゲームエフェクト マニアックス』他多数。