パスワードを忘れた? アカウント作成
15556384 story
ゲーム

ゲーム「スペースインベーダー」の緊張感はハードウェアの制約から生まれたものなのか 56

ストーリー by nagazou
偶然か必然か 部門より
IEEE Spectrumに1978年に発売されたタイトーのアーケードゲーム「スペースインベーダー」がヒットした要因に関する考察が掲載されている。内容はIEEE Spectrum、1982年12月号の特集記事の一部として掲載されていたものを最近になってWebに掲載したものであるそうだ。それによると、このゲームが多くのユーザーの心を掴んだ要素の一つがその音であったという。具体的な内容に関してはタレコミにあるとおりだがハードウェア処理の遅延の結果、音が変化する仕組みが起き、偶然なのか意図されたものかは分からないが、このゲームが成功する要因になったとしている(IEEE Spectrum)。

あるAnonymous Coward 曰く、

インベーダーゲームでは、インベーダーを撃ち落としていくにつれ、侵攻がスピードアップしていく。
繰り返される下降音(ド、シ、ラ、ソと繰り返される音)のテンポがどんどん早くなるにつれテンションが高まる。
この特徴は単にハードウェアのの処理能力が遅いためで、インベーダーが多く残っているときはゆっくりにしか動かせず、減って行くに従って処理が軽くなるので早くなるということが原因。
たまたまできたこの特徴はプラスに働いた。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by simon (1336) on 2022年02月03日 17時30分 (#4194645)

    「人を撃つゲームにしようとしたけど社長がそういうの嫌いだったのでやめた」
    「じゃあ戦車を撃つゲームにしようと思ってたけど横に移動しながら撃ち返してくるのはヘンだから宇宙人にした」

    みたいな面白い話が載ってます。

    インベーダーのキャラクターのドット絵を描くためにまずライトペンを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]

  • by Anonymous Coward on 2022年02月03日 7時01分 (#4194307)

    確かに描画がカクカクだったけど速度アップは普通に意図しての仕様だと思ってた

    • by Anonymous Coward

      特に最後の一機。

    • by Anonymous Coward

      まったく納得いかんな。
      単なる処理落ちだったらインベーダーの数が少なくなると砲台やビームの動きも速くなると思うがそうはなっていない。
      グラディウスの4面終盤は全部の動きが遅くなる。

      • by Anonymous Coward

        砲台やビームの動きは1秒間に何回かの割り込み処理で優先的に処理していると思いますよ。
        あるいは、別のハードに分担させているか。
        そうでもしないと、とてもゲームにはならないのでは。

        • by Anonymous Coward

          結果としては「秒間の割り込み」という解釈でもいいんですけど、どちらかといえば(数字は適当)
          「100stepを敵の動きに割り振り、10stepを砲台、3stepを自弾、2stepをその他」をループ、みたいな感じ
          外部に時間を管理するモノとかハードとかがあるんでなくて
          1stepが”十分遅い”ので、命令1つが何msecだからxx回stepで1秒、みたいな管理をする時代
          「タイミングを合わせる」ってのは割り込みを取得するんでなくて「ここでNOP(何もしない命令)を5つ挟む」とかでやる時代なのです

          • by Anonymous Coward

            NOPウェイトとかは昔は命令実行に必要なクロックが一定だったからこそ出来た話ですね

            • 「命令の実行クロック数がマニュアルに書いてあった」(そして互換プロセッサで変化することがあってハマる人がわずかながらいた)という時代ですね。現代でもARM-Mがこれに近かったりはします(ノーウエイト、キャッシュ無しが普通なのでわりと速度が見積れる)。
              // 割込みにするには速すぎ、ポーリングするにはちと遅い待ちというのはあって現代でもどーするか迷う
              親コメント
          • by Anonymous Coward

            外部に時間を管理するモノとかハードとかがあるんでなくて
            1stepが”十分遅い”ので、命令1つが何msecだからxx回stepで1秒、みたいな管理をする時代
            「タイミングを合わせる」ってのは割り込みを取得するんでなくて「ここでNOP(何もしない命令)を5つ挟む」とかでやる時代なのです

            何バカなこと言ってんの?
            この当時からまともな製品ならCRTの垂直同期でタイミング取ってるよ。

            • 「まともなゲーム製品なら」ですかね
              // 自分で穴開けてる感のあるコメントかと
              親コメント
              • by Anonymous Coward

                スペースインベーダー基板、画面に同期して割り込み発生してるけどね。

              • by Anonymous Coward
                当時や、その後のPCでのゲームでも、垂直同期割り込みを利用して、その間に一定の処理、というのは結構ありました。

                80系では、この「一定の処理」が終わったところでHALT命令(76H)で停止させているものがありました。停止しても割り込みは受け付けるので、いわゆる「割り込み待ち」です。
                で、80系の多くは割り込みにRST 7命令(0038H番地へのコール)を使っていて、その命令コードがFFHだったので、プログラム内で上記の76Hを見つけてFFHに書き換えるとゲームの動作が超高速になったり...というものがありました。
            • by Anonymous Coward

              えっと、つまりWindows95はまともな製品ではなかった [impress.co.jp]と。

              • by Anonymous Coward

                メーカーが修正出した時点で明らかじゃん

      • by Anonymous Coward
        例えば、インベーダーを「1匹」動かす→ビームや砲台を単位量動かす の繰り返しだったら、
        インベーダーが減ればインベーダーの移動速度は速くなるけど、ビームや砲台のスピードは変わりませんよね。

        実際によく見るとそうなっていたし。
        • by Anonymous Coward on 2022年02月03日 12時26分 (#4194467)

          インベーダー2の動画をコマ送りして見てみると、1フレームに2匹ずつ移動しているようだった。
          残数が減ってきても2匹ずつ動くので、1匹あたりの移動サイクルが短くなることにより
          動きが速くなっていくというロジックだな。

          砲台移動
          インベーダー1匹移動
          インベーダー1匹移動
          UFO移動
          自機ミサイル移動
          敵ミサイル移動
          Vブランク待ち

          をループしている感じ?

          処理落ちは見受けられないので、ハードウェアの処理能力の限界が出ているわけではなく、
          ハードウェアの能力に合わせたアルゴリズムになっているというのが正解だと思う。

          親コメント
          • インベーダーの存在するゲームロジックというか"盤面"の処理と、砲台とかスコアとかミサイルといういわば"筐体"の部分のリアルタイム処理が設計上分かれてる感じなのかな。あまり現代にはない感覚ですね。

            親コメント
            • by Anonymous Coward

              いやいや、すべてまとめて一定サイクルの繰り返しで処理しているってことですよ。
              そのサイクル内でインベーダーについては1サイクルで2匹しか処理しないというだけ。
              その結果インベーダーが50匹いれば25サイクルに一度しか移動しないから遅くなる。
              つまり処理落ちしているのではなく、処理落ちしないように(1サイクルが規定時間内で終わるように)するために1サイクルで動かすインベーダーの数を制限しているため、インベーダーの移動速度は画面内の数によって変化しているという話ですね。

              • 1回の割り込みで上下端と弾丸はすべて処理してしまい、その中でインベーダーは2状態進めるわけじゃないですか。その切り分けが"筐体"と"盤面"に見えて、すごく古いなと思ったわけです。

                親コメント
              • by Anonymous Coward on 2022年02月04日 4時05分 (#4194864)

                デュアルポートVRAMとかサイクルスチールCRTCとか積んでない場合、
                画面周りはVSYNCトリガーでVBLANK中に処理しないと画面が乱れますからね。

                この辺の技術とか、そのあとのギャラクシアンでのOBJ(ハードウェアスプライト)とか、
                「伝説のアーケードゲームを支えた技術」
                に詳しく出ていて面白く読めます。

                親コメント
  • by Anonymous Coward on 2022年02月03日 8時53分 (#4194339)

    子供の頃BASICでパチモン組んだけど敵が減るに従って動きが速くなり、最後は速すぎて捕らえきれなくなったので、画面外に見えない敵を配置してウェイトにする改良したっけ

  • by Anonymous Coward on 2022年02月03日 10時42分 (#4194403)

    処理で遅くなるなら、砲台やミサイルのスピードも最初から遅いだろ
    どう考えてもインベーダのスピードはプログラム的にコントロールしてる

    • by Anonymous Coward
      たとえば、
      インベーダーを一匹動かす→砲台を動かす→次のインベーダーを動かす→砲台を動かす
      みたいなやり方で、砲台を動かすのに十分な時間的余裕がある(途中何回か砲台を動かす処理が飛ばされる可能性あり)のであれば砲台の速度は変わらずインベーダーの速度が数に依存するという結果になるのでは。

      あるいは砲台は割込み処理で間に合うけどインベーダーは明らかに間に合わないので最速で動くようにしてあったとか。

      たとえ話なので真実は知りませんが。
    • by Anonymous Coward

      こういうゲームはフレームごとのイベントドリブンで、全ての処理を(当時の)1フレームに収まるように書かなければいけない。ボタン入力の読み取りとか発音とかは、毎フレームやってるはず。

      だから、残りの余った時間で敵機を動かしてると全部動かすのには足りないってことでしょ。1フレームに数匹、下手したら1匹しか動かせないってことじゃないかと。

  • by Anonymous Coward on 2022年02月03日 6時22分 (#4194301)

    自砲台の攻撃音も影響を受けてそうなので、意図してやっていたに一票

    • by Anonymous Coward on 2022年02月03日 6時35分 (#4194303)

      もう少し後の時代からゲーム業界に入ったけれど
      この時代は、思ったのと違う感じになった、でもいい感じ、仕様変更してブラッシュアップ。
      という流れは良くあった。
      制作中は、偶然でも完成時には意図したものになっていたと思う。
      バグも制約も面白ければそれを元にゲームを作り替えていくスタイルでした。

      親コメント
      • by Anonymous Coward

        > この時代は、思ったのと違う感じになった、でもいい感じ、仕様変更してブラッシュアップ。

        ゲームというものは今でもそうだと思ってました。
        今はつまらないと分かっていながらも仕様通りに作っていくことが増えてしまったのでしょか?

        • by Anonymous Coward on 2022年02月03日 7時24分 (#4194312)

          その昔は、基本設計から詳細設計、実装からテストまでをほぼ一人でこなしていましたが、
          今は設計以前の(一般的な開発案件では要件定義の)段階から徹底的に分業ですからねぇ。

          分業化のお陰で設計も仕様もきちんと文書化して残せるようになりましたが、
          前工程の修正を伴う変更が極端にやりにくくなったという点も大きく、
          それによって「バグだけど面白いからアリ」ができなりました。
          (同じ会社内のチームならまだしも、別部署だったり別会社だったりもしますし)

          親コメント
          • by Anonymous Coward on 2022年02月03日 8時26分 (#4194325)

            分業化は、おもしろそうに思えるのに遊んでみるとおもしろくないゲームが増えた原因のひとつなんでしょうね。

            親コメント
            • by Anonymous Coward

              人が多いとどうしても無難に転ぶからなぁ
              絵をきれいにするのが一番簡単確実なんだよな「やればできる」から
              だから絵ばっかりきれいになる

              • by Anonymous Coward

                グラフィックやムービーが綺麗になって想像の余地が少なくなりましたね

            • by Anonymous Coward

              エルミナージュではキャラクターのグラフィック、呪文名、BGMをプレイヤーに分業させていたな。

            • by Anonymous Coward

              そこまで徹底的な分業しているゲーム会社は珍しいのでは。
              だいたいはディレクター、ゲームデザイナーあたりが骨子をかためて、それを実現するためにプログラマとかモデラーとかの人が作り上げていく。
              作業は分業だけど工程まで完全分業ってゲーム分野ではそうそうない。
              なので面白くないゲームが増えたと思うのは、感性がついていけなくなったか、not for me なのか、ディレクター・ゲームデザイナーあたりのせいだと思いますよ。

              # コマンド式のRPGがほぼなくなったように、ゲームの潮流は変化し続けているので、感性が合わなくなってくると遊ぶのが段々難しくなってきている
              # ただ昔より明らかにゲームクオリティ(デザイン、システム、インタラクティブ性、ストーリー性など)は上がっている

        • by Anonymous Coward

          つまらない作品をリリースしてる会社はそうだろうねえ。
          常にレベルの高い作品をリリースしてる会社は、会社内部で作った試作が全て良くできているなんて事は無いと思う。

    • by Anonymous Coward
      攻撃音などの効果音はハード(76477)で作ってたので、音そのものは影響ない。
      そういう意味じゃない?
      • by Anonymous Coward

        そのハードを叩く周期が、残数に比例して短くなっていくという話。

        • by Anonymous Coward
          それは周期的なものでななく、ではなく、ビーム砲の発射などの不定期なタイミングだよね。
          • by Anonymous Coward
            失礼、「ではなく」がひとつ多かった。
    • by Anonymous Coward

      解析したわけでも検証したわけでもなく、てきとーに言ってみただけに一票

    • by Anonymous Coward

      音の高低じゃなく、テンポの速さの話だよ。
      インベーダーのBGM(と言えるかどうかわからんけど)って、最初

        ディ……ダ……ダ……ダ……ディ……ダ……ダ……ダ……

      だったのが、

        ディ…ダ…ダ…ダ…ディ…ダ…ダ…ダ…

      とだんだん早くなって、最後

        ダダダダダダダダ

      ってなるじゃん。あれのこと。

  • by Anonymous Coward on 2022年02月03日 10時22分 (#4194393)

    単位時間で敵を1匹動かす仕組みなので数が減ったら速くなるだけだぞ。

    • by Anonymous Coward

      単位時間あたりではなく動かせるようになったら動かす仕組みでしょう。
      単位時間あたりなら単位時間内に準備ができた場合HMIへの反映は単位時間が来るまで待つけどインベーダーゲームはそうせず準備できたら即実行。

      • by Anonymous Coward

        インベーダーゲームはそうせず準備できたら即実行。

        CRT表示にタイミング合わせてるんでそれは間違い

  • by Anonymous Coward on 2022年02月03日 11時13分 (#4194423)

    細かなことではありますが、タレコミにある「下降音(ド、シ、ラ、ソ)」は実機の音程ではなく、Youtubeにあるいくつかの動画を聴いた範囲では「レ♭、シ♭、ラ、ラ♭」であるようです。
    ※動画によっては全体のピッチが少し上がったりしてましたが

    なぜこの音程にしたのかはさすがに謎でしょうかね

    • by Anonymous Coward

      こういう単純な組み合わせは人によって違う音程(階名)に聞こえたりするものだよね(ファラドは別の調のドミソとか)。
      大概の人は絶対音感なんて持ってないから。
      ただ、「ドシラソ」も「レ♭シ♭ララ♭」も自分の記憶とはそれぞれの音の間隔が違う……。
      # 自分の記憶だと「ラソファミ」で、最初の音から全音、全音、半音下がる

    • by Anonymous Coward

      サウンドドライバとか無くて、BGMっぽく聞こえるSEを
      音階の概念ではなく周波数直打ちの試行錯誤で作ったとかかなあ。

    • by Anonymous Coward

      ショパンの英雄ポロネーズをパクっただけだぞ。

    • by Anonymous Coward

      パソコン(ベーシックマスターレベル3)でしかやったことがなくて、ハ長調のドシラソと思ってたけど
      実機のメロディだと印象が随分違いますね。
      まあ、パソコンでは小さいスピーカで低音を出して、ほとんどブザーみたいな感じだったので正しい音程は捉え辛いものでした。
      これに対してYoutubeでの実機は低音がきちんと出ていてちゃんと音程が分かる。
      エミュレータで、低音がちゃんと出るスピーカ使えばまた違って聞こえるのかも。
      #レベル3は音声出力端子が無かったので音声信号を取り出すには改造(というほどでもないが)が必要。

  • by Anonymous Coward on 2022年02月03日 19時43分 (#4194722)

    たいしてコメント数ないのに、「砲台が遅くなってないから嘘だ」って書き込みがいくつあるんだよw
    1フレームで1匹や2匹程度しか動かせなかったから数に比例した、って程度の考察で済む話だ。

    アラを見つけたつもりでドヤ顔してるんだろうけど、自分の理解力のなさを理解してないね。

    • by Anonymous Coward

      処理落ちの概念わかってない人は揚げ足取りもアサッテの方向だね

typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...