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

「カルドセプトサーガ」にダイス目が偶数と奇数を繰り返すバグ 165

ストーリー by yoosee
ざわ…ざわ… 部門より

ゴリアス 曰く、

株式会社バンダイナムコゲームス発売のXbox360向けゲームソフト「カルドセプトサーガ」に「次のダイス目が偶数か奇数か推測できる」という致命的バグが見つかりました。ちなみに「カルドセプト」はモノポリーに侵略要素を加えたようなボードゲームで、このようなバグはゲームの根幹に関わるものです。
カルドセプトサーガ不具合情報によりますと、「最大ダイス目が偶数のマップでの非AI戦において、ダイスによって導かれる数値は奇数と偶数を交互に繰り返す」とのこと。Youtubeに検証動画があります。 また最大ダイス目が奇数のマップでのダイス目に関しても法則性らしきものが見つかっています。

双六やモノポリーでダイス目が偏っていれば、ゲームとして成立しなくなります。 どういう事情があればボードゲームのダイス目に偏りがあるまま発売されたりするのでしょうか。 ボードゲームとしての価値を自分で全否定しているようなものです。 セガサターンから続いた名作ボードゲームの最新作がこんなことになってしまって、本当に悲しい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 擬似乱数 (スコア:4, 興味深い)

    by Anonymous Coward on 2006年12月06日 13時48分 (#1070427)
    質の悪い擬似乱数の下位ビットを切り取らずに使っちゃったんだろうね。
    線形合同法みたいな擬似乱数の最下位ビットは0と1を繰り返したりする性質
    があるから、そのままサイコロの目に合わそうとして6で割ったあまりを求め
    たりすると奇数と偶数を繰り返してしまうんだよね(奇数か偶数かは最下位ビット
    が決めるので)。
    • Re:擬似乱数 (スコア:4, 興味深い)

      by Dotechin (20570) on 2006年12月06日 18時40分 (#1070663)
      以前にCの標準関数rand()のソース(VC++6.0)を調べたら、
      こんな感じのコードになっていて少し見直した覚えがあります。

      int rand()
      {
              static unsigned long _hold; <-どこかで初期化してる
              return ((_hold = _hold * 214013L + 2531011L) >> 16) & 0x7fff;
      }

      つまり、rand()の戻り値の範囲は[0,2^15)ですが、内部ではunsigned long変数を
      使っているので周期は32768でなく、もっと長く(最良の場合2^32)になっていて、
      しかも戻り値は上位ビットを使っているので元記事にあるような規則性を生み出す確率が
      非常に小さいものになっています。C標準のrand()は悪いといろんなところで言われている
      (Numerical Recipes in Cとか)ようですが、それほど悪くもないんじゃないかな、と。
      どうやら、記事になった乱数発生のバグは、C標準のrand()を使うだけで避けられるんでは?
      親コメント
    • Re:擬似乱数 (スコア:2, 興味深い)

      by Anonymous Coward on 2006年12月06日 14時04分 (#1070442)
      一般論として、擬似乱数は下位bitの質が悪いから、余りをとっちゃいかんというのは基本ですよね。こういうミスを見ると、「理屈も分からずにコピペすればOK」「動いているからいいじゃないか」という風潮には疑問を持たざるを得ません。

      それでもお偉いさんには理解できないんですよね。
      親コメント
      • Re:擬似乱数 (スコア:1, すばらしい洞察)

        by Anonymous Coward on 2006年12月06日 15時21分 (#1070504)
        いや、さすがにお偉いさんには関係ないレイヤの話だと思うぞ・・・
        親コメント
        • Re:擬似乱数 (スコア:2, すばらしい洞察)

          by Anonymous Coward on 2006年12月06日 17時20分 (#1070596)
          いや、各種の疑似乱数の仕組みを正しく理解してるプログラマ(まぁ普通ですが)をグビにして、単に人月単価が安いという理由だけでコピペプログラマを雇うからこういうことになるんでしょ。
          親コメント
  • by Anonymous Coward on 2006年12月06日 14時32分 (#1070464)
    サターンからのファンだったので、ボーナス日に本体とあわせて買いました。

    前作と比べると戦闘中のエフェクトがかかると一瞬動きが止まって全体のテンポが悪くなっています。
    2chをみるとダイスのバグ以外にも、いろいろと不具合があがっている模様。
    不具合情報・改善要望サイトがあるみたいですね。

    ・カルドセプトサーガ不具合情報 [bugfix.jp]
    ・CuldceptSagaWiki(改善要望) [atwiki.jp]

    12月のアップデートで修正されるという話です。
    テンポが改善されるまでは、ランブルローズでもやってます。
  • # 実際にゲームをプレイしたことはない(xbox360もってないし)ので、間違いだったらご指摘ください。
    どういう条件で偶数奇数の割り振りが決まるのかわかりませんが、1ゲームを通じて、さいころ振ると偶数奇数が交互にでるようですね。各プレイヤーが振るさいころが偶数奇数ならまだ傷は浅かったのですが。
    偶数プレイヤーでのプレイの場合、偶数を引いた人は少なくとも1ゲーム終わるまで延々偶数引いたままなわけですよね。となると、仮にさいころが1D6(6面ダイス1個のこと)ならば奇数に当たった人は1,3,5の中から一つ引き、偶数に当たった人は2,4,6から一つ引くことになる。となると、偶数の人は奇数の人に比べて常に+1の出目アドバンテージがあることになり、さいころを振れば振るほどその累積の有意差は広がっていくことになる。
    特定プレイヤーがさいころを振れない状態にならないかぎり…
    --
    # rm -rf ./.
  • ハードウェアサポート (スコア:3, すばらしい洞察)

    by Anonymous Coward on 2006年12月06日 14時11分 (#1070447)
    いろんなハードウェアを相手にしないといけないPC用ソフトではなく、決まったハードウェア相手なのだから、逆にむしろ、乱数くらいハードウェアサポートにしてしまえばよかったのに。

    ゲームに乱数なんてつきものなんだから。
    • Re:ハードウェアサポート (スコア:2, おもしろおかしい)

      by Anonymous Coward on 2006年12月06日 14時25分 (#1070457)
      ハードウェアサポートと聞いて、付録にさいころがついてくるのを想像した。

      ゲームをしてると「さいころを振って出た数を入力してください」と要求される。
      「6面体さいころを12個振ってその合計値を入力してください」とか。
      「お手元のカードを一枚引いてください」でも可。

      個人で遊ぶゲームでズルをしてつまらなくするのはプレイヤーの勝手だし、
      複数で遊ぶ場合は目をごまかせばケンカになるだけだから相互抑止が働く。
      従って、ズルは意味をなさない。

      コンピュータゲームである必然性が皆無になる以外は、良いアイデアかもしれない。
      親コメント
    • by yohata (11299) on 2006年12月06日 14時22分 (#1070452)
      暗号・セキュリティが一般に浸透し始めた時代、Pentium4に付くような話がありましたな。
      アレってなんで立ち消えたんだっけ?

      #20年ぐらい昔、rand()の返値が「今のミリ秒」って恐ろしい物がありましたな。
      親コメント
      • Re:ハードウェアサポート (スコア:1, おもしろおかしい)

        by Anonymous Coward on 2006年12月06日 14時34分 (#1070465)
        > #20年ぐらい昔、rand()の返値が「今のミリ秒」って恐ろしい物がありましたな。

         そんなに恐ろしかったですか?
         実用的だったと思いますが。

         ハードウェア乱数発生器ってのをみて、Z80のRレジスタ思い出しましたよ。
         乱数レジスタと教えられて信じてました、純真だったな。
        親コメント
        • by Anonymous Coward on 2006年12月06日 14時51分 (#1070483)
          >> #20年ぐらい昔、rand()の返値が「今のミリ秒」って恐ろしい物がありましたな。

          >そんなに恐ろしかったですか?
          >実用的だったと思いますが。

          乱数を発生させるタイミングが周期的だったら、乱数にならないですよ。
          親コメント
          • 乱数というより、人の介入する時間(さいころ振り指示とか)はミリ秒単位だと制御しきれないので
            まぁそれでも良いかって感じですから、確かに純粋に乱数じゃないですね
            人の代わりにコンピューターが制御すればその値は予測出来るかな?

            まぁコンピュータつかってインチキしようと考える人の居なかったのどかな時代の方法ですね
            親コメント
      • チップセットに付いてるような気がする。CPU内蔵の方が楽なんだけどね。

        >今のミリ秒
        pen4くらいで「今のクロックカウント」を疑似乱数に混ぜると結構いける気がする。
        親コメント
  • こんな規則あって当然ですよ(笑)
    キャラパラメータによってダイスをいじったり、いかにも乱数に見せかけたりとか
    で、そんなに「きれいな」乱数じゃないはずですよ。

    実際、過去につくったやつでは if文で範囲せばめるけど同じ値がつづきすぎたら
    わざと外すとかって関数いれてました。
    # ふつうに「中心値5.4で範囲が0.6」とかって結果を
    # だしますからね>内部

    なので、これはほぼ確実に仕様の積みかさねですね。

    # どうせどの作品かバれないので名前出し
  • Google八分 (スコア:2, 参考になる)

    by Anonymous Coward on 2006年12月06日 15時31分 (#1070511)
    タレコミのリンク先にもありますが、このゲームについてはこのバグ以外にもゲーム進行が不可能になるものを含めて相当数のバグがあります。
    また、これらの不具合情報(を含むファンページの多く?)がGoogle八分と思われる状況にあった時期がありました。
    これがメーカー側が行った対応によるものだとしたら相当問題のある行動だと思います。
    公式に不具合の存在を告知すらしていないようですし。
  • by Shankar (13961) on 2006年12月06日 15時19分 (#1070503)
    ダイスの目が偶数・奇数を繰り返すのはゲームとしてどうかとも思いながらも メーカーとしては「仕様」として言い切ることも可能な気がします。 その時は、この仕様では致命的なのでメーカーそのものを見限る必要がありそうですが。 不具合修正して改版したものを再発売でもして欲しいですね。
    --
    Yuzam
    • 某ローグライクゲームで、起動後の初回のプレイでは、アイテムの不確定名が常に同じになってしまうという現象があり、メーカーに電話してきいてみましたが、「仕様であり、修正の予定はない」という趣旨の回答をいただきました。
      乱数に関連する現象で、プレイ不能とまではいかないが、「興をそぐ」「気になる」程度のことは、結構いろいろなゲームにあるようですね。
      親コメント
  • by Anonymous Coward on 2006年12月06日 15時44分 (#1070521)
    たしかこれまでのシリーズはすべて大宮ソフト自身が制作していたのが、サーガは外部からプロデューサーを迎え下請けのソフトハウス数社が開発(下請けメーカの名前が明記されるのは、流石下請け時代の長い大宮ソフト)、大宮ソフトは監修に過ぎないので、同じ質を期待すること自体が間違いなのでしょうね。
    監修責任について考えるところはあるものの、販売権はバンダイナムコ保有だし、デバッグより発売時期厳守が優先されてしまったのでは。

    ファンとしてはXbox360版は黒歴史と認識して、Wiiあたりでの「カルドセプト サード」リリースに期待します。
    • by eyoru (32711) on 2006年12月06日 18時59分 (#1070670) ホームページ
      > 大宮ソフトは監修に過ぎないので、同じ質を期待すること自体が間違いなのでしょうね。

      ユーザーには何ら責任はないでしょう。
      ですから、期待をかけることが間違いとは思いません。

      批判を浴びるようなゲームをリリースしてしまった
      メーカーが、その責任を負うのは当然だと思います。

      これだけバグに関する情報が出てきているのにも関わらず、
      メーカーから何らの公式見解もない、というその姿勢も
      批判に拍車を掛ける要因になっていると思います。

      一刻も早くメーカーは今後の対応を示すべきです。
      親コメント
    • by Anonymous Coward on 2006年12月07日 0時50分 (#1070882)
      微妙に中の人に近い人ですが。

      監修だからって罪が減じられるわけではないですよ。仮にも自社の看板を掲げてる以上、そのクソゲーっぷりは
      その会社の責任でもあります。
      まあ今回はなぜかでしゃばってきたジャムズワークスの手抜きっぷりとバンダイナムコゲームスの体質に
      問題の根があるように思いますが。

      …たまたま耳にした噂話によると、バンダイナムコゲームスは『品質優先営業ナニソレ』なナムコ体質が
      『販売機会優先品質二の次』なバンダイクオリティに汚染されているそうです。
      (ナムコは社員の頭数が多いのに利益率が低いから社内発言力がない。……まあ開発部隊を社内に抱えたナムコと
      基本的にプロデューサしかいないバンダイゲーム事業部の違いなんですが、それでも売れてるほうが
      大きな顔をするのは当然といえば当然なわけで。旧ナムコ副社長の石川氏がバンナムゲーの社長なのですが、
      実権を握っているのは旧バンダイのゲーム事業部の鵜之澤氏(ピピン@の悪夢の)だったりする)

      ここからは推測なのですが、今年5月にバンダイナムコゲームスは開発中のXBOX360用ゲームを一本
      お蔵入りにしました。
      フレームシティ [impress.co.jp]とゆー
      アンリアルエンジン3を使ったゲームで、それなのになぜか秒間数フレームの速度(fps)でしか動かず
      「1フレームシティ」との汚名を社内で頂いていたというのも風の噂)

      マイクロソフトと「年間にn本ソフトを出すから開発予算を一部出資してくれ」という契約をしていた
      バンナムとしては是が非でも今年中にXBOX360のソフトを一本多く出す必要があったわけです。
      そのために多少品質がアレであっても違約金を払うよりはマシ、とバンナムは判断したのではないかな、というのが
      僕の推測であります。
      (まあ、それにしてももともとこのゲームは2006年夏発売予定(2006年5月発表時)→2006年秋(2006年7月当時)
      という程度の発売予定だったので「納期をムリに早められて結果未完成のまま発売された」というよりは
      「開発が遅れて本来ならば発売できるクオリティではないのに無理に発売させられた」という程度なのでしょうが)

      で、A級戦犯は誰かって言ったら(順不同)
      ・プロデュース会社のジャムズワークス [jamsworks.com]
       プロデュースといえば聞こえはいいが山師。こいつらたまにヒットは打つけど今回はどーしようもない。
      ・販売会社のバンダイナムコゲームス [bandainamcogames.co.jp]
       お前の会社に品質管理部はないのか。ていうか、五月以降ナニをしてたおまいら。
      ・ゲームデザイン・監修の大宮ソフト [omiyasoft.com]
       ろくに監修してねえじゃん!おまいらこのゲームしかネタ持ってないのに!
      ・プログラムを手がけたロケットスタジオ [rocketstd.co.jp]
       乱数のプログラムも書けねえのにスタジオ気取りか、おい。

      多少罪は減じられるが厳重注意B級戦犯
      ・ゲームバランス・チューニング猿楽庁 [sarugakucho.jp]
       どこをどうチューニングしたんだ、言ってみろ。

      と、そんな風に思ったりもします。
      親コメント
typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...