ビット/バイト
目標
- 数の2進表現の話は,ここではあえてしない
- ビット列は,コンピュータの中ではあくまで「0と1の羅列」でしかないことを強調
- ビット列に意味をもたせるのは,プログラムであり,ゲームであればゲームソフトの作成者のお仕事.
- 同じビット列でも,それが使う場所によって数値だったり文字だったり,色だったりする.
- 重要なのは,特定の長さのビット列で表現できる組み合わせの数.
授業の流れ
- 2のべき乗を求める問題
- 2の1〜8,16乗
- とりあえず数字を覚えておいてもらう.この後の講義で出てくるので.
- ゲーム中の数字や,数字以外の「情報」を考えてみる
- スーパーマリオブラザーズ
- とりあえず説明がいらないくらい有名なところを例に
- スーパーマリオブラザーズ
- 2のべき乗(-1)の数値が登場する画面
- ドラゴンクエスト (1986, エニックス)
- パラメータ最大値に255, 65535
- 桃太郎伝説 (1987, ハドソン)
- パラメータの最大値が255, 65535
- MAG (2010, SCE)
- 同時プレイ可能人数: 64〜256人
- 最大256人対戦 (128人x128人)可能
- パッケージイラストにでかでかと"256"の文字が
- NINTENDO64 (任天堂)
- 実はここでの"64"はゲーム中の数値とは意味合いが異なるのだが,詳細はコンピュータアーキテクチャの項目にて説明.
- 2のべき乗に関係する数がやたら登場するのは,実はコンピュータが「情報」を管理する方法に大いに関係ある
- ドラゴンクエスト (1986, エニックス)
- bitの概念の説明
- まずbitとは何か
- 実例
- 40kBで作成されたゲームの例→スーパーマリオブラザーズ
- bitを用いた整数表現
- x個のビットの列で表現できるのは何通り?
- ここでビットで表現できる組み合わせの計算方法について,その概念を説明
- 最大が2のべき乗だったり,2のべき乗-1だったりするのは?
- 最小値に着目すればわかる.最大256となっている数値は,最小は1(例:MAG)
- 6桁のスコアを表現するのに必要なビット数は?
→実は20ビット確保しなくてもよい(なぜ?)- スコアの増減が50点単位.一番下の桁の数字は全く動かず,下から2桁目は0か5しかない
- つまり20000通りの表現ができれば,このスコアの表現は可能
- ということを,スーパーマリオのプレイ画面で,スコアだけズームアップして観察
- x個のビットの列で表現できるのは何通り?
- フラグの話
- 1bitで表現するデータ
- フラグの組み合わせで状態表現
- 「チビファイアマリオ」
使用素材
スーパーマリオブラザーズ (1985, 任天堂)
- http://www.nintendo.co.jp/ngc/sms/history/sm1/
- 単純明快,誰でも知ってる(今の大学生でもプレイ体験ある人が多い),ということで非常にネタとして使いやすい
- 実際授業に使えるネタも豊富.
- 8ワールドx4エリアの計32ステージで構成
- 参照記事: http://www.itmedia.co.jp/games/articles/0710/30/news004.html (ゲイムマンの「レトロゲームが大好きだ」:レトロゲーム・アワード受賞! 「スーパーマリオブラザーズ」 (1/3))
- データサイズは40kB
- http://www.youtube.com/watch?v=xIgTFfsL9OA Small fire mario
ドラゴンクエスト (1986, エニックス)
桃太郎伝説 (1987, ハドソン)
- (小ネタ)このゲームのシナリオ担当が,ドラクエのシナリオ作者と友達.作成時は電話で「どう作るの?」と相談したりしてたらしい
Massive Action Game (MAG) (2010, SCE)
- http://www.jp.playstation.com/scej/title/mag/
- 紹介記事(4Gamer.net) http://www.4gamer.net/games/093/G009301/20100219070/
- メインモードの対戦人数が,それぞれ 32人 vs. 32人, 64人 vs. 64人, 128人 vs. 128人 とわかりやすい数字がたくさん登場
- 2014年オンラインサービス終了 (→ネットワークの回で話題)
がんばれゴエモン からくり道中 (1986, コナミ)
- ゲーム紹介(リンク先はVirtual Console版) http://www.nintendo.co.jp/wii/vc/vc_ggk/
- データサイズ自体が宣伝文句として使われた時代
- 参考画像: http://gamedic.jpn.org/museum/tirasi/fc_act/index6.html (ゲームチラシコレクション)
- ファミコン初の2Mbit(256kB)搭載のゲーム
METAL GEAR SOLID 4 (2008, コナミ)
- 公式:http://www.konami.jp/mgs4/
- データサイズの対比として使用.開発者が「50GBのメディアでも足りない」と発言
TETRIS
- ビット/バイトの回では,いわゆる1kBテトリスを紹介
- Javascriptで書かれたソースコード
- http://zapanet.info/blog/item/1125 (わずか565バイトテトリスのプログラミング解説 - ZAPAブログ)
その他提供情報
モンスターハンターポータブル
- (キャラクターメイキング:RGB24bitカラーで色指定)
ドラゴンクエスト7 (ニンテンドー3DS版)
- 「最大ダメージ数」の記録が,実際に記録できるのは65535まで.それ以上をたたき出しても記録されない
- 参照: http://mypage.member.jp.square-enix.com/1668036/blog/detail/55379/ (ダメージカンスト確認!)
- 1ターンで敵に与えたダメージ数が,実績として記録に残る
- しかし,65536以上のダメージを与えることができても,それが実績として記録として残らず
- 65535だと記録に残る
- → 16bitで管理してて,桁あふれを起こした?
ネタ検索のコツ
- 2の8,16,32乗が最大値の基準になっているゲームは多い
- 最大値に256, 65536