ゲーム「スペースインベーダー」の緊張感はハードウェアの制約から生まれたものなのか 56
ストーリー by nagazou
偶然か必然か 部門より
偶然か必然か 部門より
IEEE Spectrumに1978年に発売されたタイトーのアーケードゲーム「スペースインベーダー」がヒットした要因に関する考察が掲載されている。内容はIEEE Spectrum、1982年12月号の特集記事の一部として掲載されていたものを最近になってWebに掲載したものであるそうだ。それによると、このゲームが多くのユーザーの心を掴んだ要素の一つがその音であったという。具体的な内容に関してはタレコミにあるとおりだがハードウェア処理の遅延の結果、音が変化する仕組みが起き、偶然なのか意図されたものかは分からないが、このゲームが成功する要因になったとしている(IEEE Spectrum)。
あるAnonymous Coward 曰く、
あるAnonymous Coward 曰く、
インベーダーゲームでは、インベーダーを撃ち落としていくにつれ、侵攻がスピードアップしていく。
繰り返される下降音(ド、シ、ラ、ソと繰り返される音)のテンポがどんどん早くなるにつれテンションが高まる。
この特徴は単にハードウェアのの処理能力が遅いためで、インベーダーが多く残っているときはゆっくりにしか動かせず、減って行くに従って処理が軽くなるので早くなるということが原因。
たまたまできたこの特徴はプラスに働いた。
実際に開発してた西角さんへのインタビュー (スコア:5, 参考になる)
「人を撃つゲームにしようとしたけど社長がそういうの嫌いだったのでやめた」
「じゃあ戦車を撃つゲームにしようと思ってたけど横に移動しながら撃ち返してくるのはヘンだから宇宙人にした」
みたいな面白い話が載ってます。
インベーダーのキャラクターのドット絵を描くためにまずライトペンを2か月で開発したとかスゴイ……
https://hermes-ir.lib.hit-u.ac.jp/hermes/ir/re/29184/070iirWP18-26.pdf [hit-u.ac.jp]
https://hermes-ir.lib.hit-u.ac.jp/hermes/ir/re/29185/070iirWP18-27.pdf [hit-u.ac.jp]
あれ処理落ちやったんか (スコア:1)
確かに描画がカクカクだったけど速度アップは普通に意図しての仕様だと思ってた
Re: (スコア:0)
特に最後の一機。
Re: (スコア:0)
まったく納得いかんな。
単なる処理落ちだったらインベーダーの数が少なくなると砲台やビームの動きも速くなると思うがそうはなっていない。
グラディウスの4面終盤は全部の動きが遅くなる。
Re: (スコア:0)
砲台やビームの動きは1秒間に何回かの割り込み処理で優先的に処理していると思いますよ。
あるいは、別のハードに分担させているか。
そうでもしないと、とてもゲームにはならないのでは。
Re: (スコア:0)
結果としては「秒間の割り込み」という解釈でもいいんですけど、どちらかといえば(数字は適当)
「100stepを敵の動きに割り振り、10stepを砲台、3stepを自弾、2stepをその他」をループ、みたいな感じ
外部に時間を管理するモノとかハードとかがあるんでなくて
1stepが”十分遅い”ので、命令1つが何msecだからxx回stepで1秒、みたいな管理をする時代
「タイミングを合わせる」ってのは割り込みを取得するんでなくて「ここでNOP(何もしない命令)を5つ挟む」とかでやる時代なのです
Re: (スコア:0)
NOPウェイトとかは昔は命令実行に必要なクロックが一定だったからこそ出来た話ですね
Re:あれ処理落ちやったんか (スコア:1)
// 割込みにするには速すぎ、ポーリングするにはちと遅い待ちというのはあって現代でもどーするか迷う
Re: (スコア:0)
外部に時間を管理するモノとかハードとかがあるんでなくて
1stepが”十分遅い”ので、命令1つが何msecだからxx回stepで1秒、みたいな管理をする時代
「タイミングを合わせる」ってのは割り込みを取得するんでなくて「ここでNOP(何もしない命令)を5つ挟む」とかでやる時代なのです
何バカなこと言ってんの?
この当時からまともな製品ならCRTの垂直同期でタイミング取ってるよ。
Re:あれ処理落ちやったんか (スコア:1)
// 自分で穴開けてる感のあるコメントかと
Re: (スコア:0)
スペースインベーダー基板、画面に同期して割り込み発生してるけどね。
Re: (スコア:0)
80系では、この「一定の処理」が終わったところでHALT命令(76H)で停止させているものがありました。停止しても割り込みは受け付けるので、いわゆる「割り込み待ち」です。
で、80系の多くは割り込みにRST 7命令(0038H番地へのコール)を使っていて、その命令コードがFFHだったので、プログラム内で上記の76Hを見つけてFFHに書き換えるとゲームの動作が超高速になったり...というものがありました。
Re: (スコア:0)
えっと、つまりWindows95はまともな製品ではなかった [impress.co.jp]と。
Re: (スコア:0)
メーカーが修正出した時点で明らかじゃん
Re: (スコア:0)
インベーダーが減ればインベーダーの移動速度は速くなるけど、ビームや砲台のスピードは変わりませんよね。
実際によく見るとそうなっていたし。
Re:あれ処理落ちやったんか (スコア:4, すばらしい洞察)
インベーダー2の動画をコマ送りして見てみると、1フレームに2匹ずつ移動しているようだった。
残数が減ってきても2匹ずつ動くので、1匹あたりの移動サイクルが短くなることにより
動きが速くなっていくというロジックだな。
砲台移動
インベーダー1匹移動
インベーダー1匹移動
UFO移動
自機ミサイル移動
敵ミサイル移動
Vブランク待ち
をループしている感じ?
処理落ちは見受けられないので、ハードウェアの処理能力の限界が出ているわけではなく、
ハードウェアの能力に合わせたアルゴリズムになっているというのが正解だと思う。
Re:あれ処理落ちやったんか (スコア:2)
インベーダーの存在するゲームロジックというか"盤面"の処理と、砲台とかスコアとかミサイルといういわば"筐体"の部分のリアルタイム処理が設計上分かれてる感じなのかな。あまり現代にはない感覚ですね。
Re: (スコア:0)
いやいや、すべてまとめて一定サイクルの繰り返しで処理しているってことですよ。
そのサイクル内でインベーダーについては1サイクルで2匹しか処理しないというだけ。
その結果インベーダーが50匹いれば25サイクルに一度しか移動しないから遅くなる。
つまり処理落ちしているのではなく、処理落ちしないように(1サイクルが規定時間内で終わるように)するために1サイクルで動かすインベーダーの数を制限しているため、インベーダーの移動速度は画面内の数によって変化しているという話ですね。
Re:あれ処理落ちやったんか (スコア:2)
1回の割り込みで上下端と弾丸はすべて処理してしまい、その中でインベーダーは2状態進めるわけじゃないですか。その切り分けが"筐体"と"盤面"に見えて、すごく古いなと思ったわけです。
Re:あれ処理落ちやったんか (スコア:1)
デュアルポートVRAMとかサイクルスチールCRTCとか積んでない場合、
画面周りはVSYNCトリガーでVBLANK中に処理しないと画面が乱れますからね。
この辺の技術とか、そのあとのギャラクシアンでのOBJ(ハードウェアスプライト)とか、
「伝説のアーケードゲームを支えた技術」
に詳しく出ていて面白く読めます。
そうだろうな (スコア:1)
子供の頃BASICでパチモン組んだけど敵が減るに従って動きが速くなり、最後は速すぎて捕らえきれなくなったので、画面外に見えない敵を配置してウェイトにする改良したっけ
それはおかしい考察 (スコア:1)
処理で遅くなるなら、砲台やミサイルのスピードも最初から遅いだろ
どう考えてもインベーダのスピードはプログラム的にコントロールしてる
Re: (スコア:0)
インベーダーを一匹動かす→砲台を動かす→次のインベーダーを動かす→砲台を動かす
みたいなやり方で、砲台を動かすのに十分な時間的余裕がある(途中何回か砲台を動かす処理が飛ばされる可能性あり)のであれば砲台の速度は変わらずインベーダーの速度が数に依存するという結果になるのでは。
あるいは砲台は割込み処理で間に合うけどインベーダーは明らかに間に合わないので最速で動くようにしてあったとか。
たとえ話なので真実は知りませんが。
Re: (スコア:0)
こういうゲームはフレームごとのイベントドリブンで、全ての処理を(当時の)1フレームに収まるように書かなければいけない。ボタン入力の読み取りとか発音とかは、毎フレームやってるはず。
だから、残りの余った時間で敵機を動かしてると全部動かすのには足りないってことでしょ。1フレームに数匹、下手したら1匹しか動かせないってことじゃないかと。
ハードウェア処理の遅延なら (スコア:0)
自砲台の攻撃音も影響を受けてそうなので、意図してやっていたに一票
Re:ハードウェア処理の遅延なら (スコア:4, 興味深い)
もう少し後の時代からゲーム業界に入ったけれど
この時代は、思ったのと違う感じになった、でもいい感じ、仕様変更してブラッシュアップ。
という流れは良くあった。
制作中は、偶然でも完成時には意図したものになっていたと思う。
バグも制約も面白ければそれを元にゲームを作り替えていくスタイルでした。
Re: (スコア:0)
> この時代は、思ったのと違う感じになった、でもいい感じ、仕様変更してブラッシュアップ。
ゲームというものは今でもそうだと思ってました。
今はつまらないと分かっていながらも仕様通りに作っていくことが増えてしまったのでしょか?
Re:ハードウェア処理の遅延なら (スコア:3, 興味深い)
その昔は、基本設計から詳細設計、実装からテストまでをほぼ一人でこなしていましたが、
今は設計以前の(一般的な開発案件では要件定義の)段階から徹底的に分業ですからねぇ。
分業化のお陰で設計も仕様もきちんと文書化して残せるようになりましたが、
前工程の修正を伴う変更が極端にやりにくくなったという点も大きく、
それによって「バグだけど面白いからアリ」ができなりました。
(同じ会社内のチームならまだしも、別部署だったり別会社だったりもしますし)
分業化の弊害 (スコア:1)
分業化は、おもしろそうに思えるのに遊んでみるとおもしろくないゲームが増えた原因のひとつなんでしょうね。
Re: (スコア:0)
人が多いとどうしても無難に転ぶからなぁ
絵をきれいにするのが一番簡単確実なんだよな「やればできる」から
だから絵ばっかりきれいになる
Re: (スコア:0)
グラフィックやムービーが綺麗になって想像の余地が少なくなりましたね
Re: (スコア:0)
エルミナージュではキャラクターのグラフィック、呪文名、BGMをプレイヤーに分業させていたな。
Re: (スコア:0)
そこまで徹底的な分業しているゲーム会社は珍しいのでは。
だいたいはディレクター、ゲームデザイナーあたりが骨子をかためて、それを実現するためにプログラマとかモデラーとかの人が作り上げていく。
作業は分業だけど工程まで完全分業ってゲーム分野ではそうそうない。
なので面白くないゲームが増えたと思うのは、感性がついていけなくなったか、not for me なのか、ディレクター・ゲームデザイナーあたりのせいだと思いますよ。
# コマンド式のRPGがほぼなくなったように、ゲームの潮流は変化し続けているので、感性が合わなくなってくると遊ぶのが段々難しくなってきている
# ただ昔より明らかにゲームクオリティ(デザイン、システム、インタラクティブ性、ストーリー性など)は上がっている
Re: (スコア:0)
つまらない作品をリリースしてる会社はそうだろうねえ。
常にレベルの高い作品をリリースしてる会社は、会社内部で作った試作が全て良くできているなんて事は無いと思う。
Re: (スコア:0)
そういう意味じゃない?
Re: (スコア:0)
そのハードを叩く周期が、残数に比例して短くなっていくという話。
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:0)
解析したわけでも検証したわけでもなく、てきとーに言ってみただけに一票
Re: (スコア:0)
音の高低じゃなく、テンポの速さの話だよ。
インベーダーのBGM(と言えるかどうかわからんけど)って、最初
ディ……ダ……ダ……ダ……ディ……ダ……ダ……ダ……
だったのが、
ディ…ダ…ダ…ダ…ディ…ダ…ダ…ダ…
とだんだん早くなって、最後
ダダダダダダダダ
ってなるじゃん。あれのこと。
処理落ちちゃうぞ (スコア:0)
単位時間で敵を1匹動かす仕組みなので数が減ったら速くなるだけだぞ。
Re: (スコア:0)
単位時間あたりではなく動かせるようになったら動かす仕組みでしょう。
単位時間あたりなら単位時間内に準備ができた場合HMIへの反映は単位時間が来るまで待つけどインベーダーゲームはそうせず準備できたら即実行。
Re: (スコア:0)
インベーダーゲームはそうせず準備できたら即実行。
CRT表示にタイミング合わせてるんでそれは間違い
実際の音程 (スコア:0)
細かなことではありますが、タレコミにある「下降音(ド、シ、ラ、ソ)」は実機の音程ではなく、Youtubeにあるいくつかの動画を聴いた範囲では「レ♭、シ♭、ラ、ラ♭」であるようです。
※動画によっては全体のピッチが少し上がったりしてましたが
なぜこの音程にしたのかはさすがに謎でしょうかね
Re: (スコア:0)
こういう単純な組み合わせは人によって違う音程(階名)に聞こえたりするものだよね(ファラドは別の調のドミソとか)。
大概の人は絶対音感なんて持ってないから。
ただ、「ドシラソ」も「レ♭シ♭ララ♭」も自分の記憶とはそれぞれの音の間隔が違う……。
# 自分の記憶だと「ラソファミ」で、最初の音から全音、全音、半音下がる
Re: (スコア:0)
サウンドドライバとか無くて、BGMっぽく聞こえるSEを
音階の概念ではなく周波数直打ちの試行錯誤で作ったとかかなあ。
Re: (スコア:0)
ショパンの英雄ポロネーズをパクっただけだぞ。
Re: (スコア:0)
パソコン(ベーシックマスターレベル3)でしかやったことがなくて、ハ長調のドシラソと思ってたけど
実機のメロディだと印象が随分違いますね。
まあ、パソコンでは小さいスピーカで低音を出して、ほとんどブザーみたいな感じだったので正しい音程は捉え辛いものでした。
これに対してYoutubeでの実機は低音がきちんと出ていてちゃんと音程が分かる。
エミュレータで、低音がちゃんと出るスピーカ使えばまた違って聞こえるのかも。
#レベル3は音声出力端子が無かったので音声信号を取り出すには改造(というほどでもないが)が必要。
おかしい考察、というおかしい書き込み (スコア:0)
たいしてコメント数ないのに、「砲台が遅くなってないから嘘だ」って書き込みがいくつあるんだよw
1フレームで1匹や2匹程度しか動かせなかったから数に比例した、って程度の考察で済む話だ。
アラを見つけたつもりでドヤ顔してるんだろうけど、自分の理解力のなさを理解してないね。
Re: (スコア:0)
処理落ちの概念わかってない人は揚げ足取りもアサッテの方向だね