9

私はリアルタイムシステムとそれらがどのように機能するかなどについて読んでいます。ウィキペディアの記事も見ていました。プログラムは計算する必要があるため、動きごとにタイマーを使用するチェスのゲームはリアルタイムシステムと見なすことができると述べていますその時の動き。他のゲームはどうですか?私たちが知っているように、ゲームは通常 25+ FPS で実行しようとしますが、それが 25 を下回った場合 (私は事前に定義されたしきい値として 25 を使用しています)、それはゲームの終わりではないため、ソフト リアルタイム システムと見なすことができます。世界、私たちが望んでいたパフォーマンスへのヒットですか?

また、ゲームには、処理しなければならないイベントもあります。ユーザーはキーボード/マウスを使用し、ゲームが「失敗」したと見なされる前に、システムは事前に定義された時間内に (再び) これらのイベントに応じて応答する必要があります。

ああ、私は今のところ、物事を単純にするためにシングルプレイヤーについて話しています.

ゲームはソフト リアルタイム システムの基準に適合しているように思えますが、不足しているものがあれば教えてください... ありがとうございます。

4

9 に答える 9

17

ウィキペディアから、

操作の全体的な正確性が、その論理的な正確性だけでなく、それが実行される時間にも依存する場合、システムはリアルタイムであると言われます。従来の概念では、ハード リアルタイム システムまたは即時リアルタイム システムでは、期限を過ぎた操作の完了は役に立たないと見なされます。最終的には、システム全体の重大な障害が発生する可能性があります。一方、ソフト リアルタイム システムは、このような遅延を許容し、サービス品質の低下に対応する場合があります (たとえば、ビデオの表示中にフレームを省略します)。

したがって、これらの FPS ゲームは間違いなくソフト リアルタイム システムの例であると言えます。いくつかのフレームがドロップされても問題ありません。とはいえ、ウィキペディアは、割り当てられた時間枠内に動きを与えないチェス エンジンは重大な障害と見なされることも指摘しており、したがって、それはハード リアルタイム システムです。

もう 1 つの考えは、FPS-es の AI についてです。AI が十分な時間内に結果を返すことができず、その結果フリーズしてしまう場合、AI を「失敗したシステム」と見なすことができます。

于 2010-04-26T18:12:31.403 に答える
5

はい。ただし、ソフトリアルタイムに重点が置かれています。

リアルタイムであるということは、実際には速いということではありません。単純に、「すぐに」結果を取得することが、その結果が正しいという定義の一部であるということです。

于 2010-04-26T18:11:20.140 に答える
1

そう呼んでもいいのです、それは「リアルタイム」の定義を広げていると思います。業界で理解されているように、「リアルタイム」とは通常、イベントが最大時間内に処理されることを意味します。この時間は通常、ミリ秒単位、場合によってはマイクロ秒単位です。それに比べて、チェスのプログラムは氷河のような速度で進行します (少なくとも相互作用に関する限り)。ハードリアルタイム制約を満たすために必要な特別なプログラミング制約は、このような「ゆっくり」インタラクティブなゲームのプログラミングには適用されません。

「インタラクティブ」が該当する言葉です。ビデオゲームに関して言えば、「FPS」は実際にはそのようなプログラムを分類するために使用される用語になり、グラフィックスの更新とゲームの仕組みの計算を繰り返すループが特徴です。

于 2010-04-26T18:11:01.207 に答える
1

ウィキペディアには次のように書かれています (これは私が大学で教わったことです):

操作の全体的な正確性が、その論理的な正確性だけでなく、それが実行される時間にも依存する場合、システムはリアルタイムであると言われます。リアルタイム システムとその締め切りは、締め切りに間に合わなかった場合の結果によって分類されます。

一般に、ほとんどのゲームはソフト リアルタイムです。これは、フレーム レートの目標 (30 fps など) によって期限が定義されているため、この期限に間に合わなくても、基礎となる計算が役に立たなくなるわけではないためです。失敗すると、ゲーム体験の質が低下するため、計算の有用性が低下します。

おっしゃる通り、チェスエンジンはリアルタイムシステムの一例です。ただし、時間制御を超えると自動的に損失が発生し、計算結果が役に立たないため、これは多くの場合、難しいリアルタイム アプリケーションです。

于 2013-11-02T21:26:30.493 に答える
0

実際、ゲームは真のリアルタイム システムではないと思います。実際、ほとんどの場合、特にロード時間中は、かなりスケジューリング不変です。

ローディング バーをじっと見つめていると、システムはキャッシュ ミスで行き詰まり、通常は I/O バウンドになります。そして、誰もがこれを完全に受け入れられると考えています。

確かに、実際に実行している間は、ゲームをリアルタイムと見なすことができます。しかし、新しいテクスチャをオンザフライでロードするためにゲームが I/O バウンドになった場合でも、まれにしか発生しない場合は、これを許容できると考える人もいます。コンピュータの順番を待っているときは、ターン制のゲームでも同じです。

マルチプレイヤー ゲームについて考えると、事態はさらに複雑になります。特に、遅延の問題を隠すために「過去に」実行される MMO です。ゲームが実際にどれほど非リアルタイムであるかを隠しているだけです。

編集: リアルタイム システムの私の定義は、すべての CPU サイクルを意味のある作業に使用するシステムです。たとえば、システムが I/O バウンドのためにスケジュールされている場合、それは実際にはリアルタイム システムではありません。

于 2010-04-26T18:11:34.607 に答える
0

x386 で実行されているプリンス オブ ペルシャは、目立った遅延なくリアルタイムに動作しているように見えました。ただし、条件が理想的でなかった場合、目に見える遅延が発生してパフォーマンスが確実に低下し、ゲームにはそのような場合のパフォーマンスが保証されませんでした.

ゲームが真にリアルタイムであるためには、単なるゲームであってはなりません。ハードウェア、OS、利用可能なリソースを制御し、これらの保証が有効になる条件を定義する必要があります。ここまで伸びるゲームはなかなかないと思います。

ソフトリアルタイムの定義には部分的に同意しますが。どのゲームもパフォーマンス SLA を公開しているとは思わないでください。ただし、ほとんどの場合、リアルタイムになるように最善を尽くします。それは彼らの最善の利益になります。とはいえ、定義は別として、ほとんどのゲーム コンソール (XBox、PS[x]、Wii など) はリアルタイム エクスペリエンス向けに高度に最適化されており、それを実現しています。室温が沸点に近づいたときのようにパフォーマンスが低下する例はほとんどないかもしれませんが、それはほとんどのいわゆるリアルタイム システムに当てはまります。リアルタイムで最適なパフォーマンスを発揮するには、特定の一連の条件が満たされている必要があります。

于 2010-04-26T18:20:47.517 に答える
0

「リアルタイム」はあいまいなカテゴリです。「難易度」の尺度でリアルタイム システムについて話す方が正確です。リアルタイム システムを難しくする特性は次のとおりです。

  • 限られた待ち時間 (期限)
  • 限られたジッター (つまり、応答時間の変動)
  • 締め切りに間に合わなかった場合の結果、および締め切りに間に合わなかったりシステムが完全に機能しなくなったりした場合にシステムが「フェールセーフ」する機能。
  • 締め切りの短さ。リアルタイム システムは通常、1 秒未満で応答する必要があり、多くの場合 100 ミリ秒以内です。

したがって、技術的に言えばチェス ゲームは「リアルタイム」の定義を満たしていますが、実際には非常にソフトであるため、この用語は実際には当てはまりません。もう 1 つの極端な例は、戦闘機の「フライ バイ ワイヤ」アビオニクスで、タイミング要件を満たさないと航空機が墜落する可能性があります。

于 2010-04-26T18:28:57.987 に答える
0

私はゲームをハード リアルタイム システムと表現します。射手を取る - 敵があなたを撃つ前に敵を撃たなければ、敵を撃つことができても意味がなく、あなたは負けます。他の多くの種類のゲームについても、同様の類推を行うことができます。プレイヤーがリアルタイムでプレイするゲームは、このように説明できます。

リアルタイムで実装するのは難しくないかもしれませんが、プレイするのは確かに困難です。

于 2010-04-26T18:35:16.550 に答える
0

私たちはシステムが (ソフト) リアルタイムであると信じたいと思っていますが、疑問に思っていることの 1 つは、作業のシミュレーションの忠実度の側面です。

すべてを 16.6 ミリ秒に収めるために、結果が変わらないと思われる場所で忠実度の低い作業を行うことがよくありますが、結果が得られます (「画面上で点滅する画像」で測定)。ショートカットを少なくした場合とは微妙に異なります。明らかなトップレベルのショートカットはアンチエイリアシングと被写界深度であり、より微妙で観察者には目立たないのは、画面に敵の知性がたくさんある場合に敵の知性を「ローファイ」にする変更です. たとえば、私が最初に取り組んだいくつかのゲームでは、全員の「世界観」を更新する時間がなかったので、敵を総当たりし、プレイヤー キャラクターと敵をインターリーブしました。敵が5体いたとして、全員を更新するには 10 フレームかかります (プレーヤーは 1 フレームおきに更新されるため)。ただし、適切なアニメーションを実行していたため、アニメーションが途切れたりすることはありませんでしたが、敵の意思決定は古いデータまたは現在無効なデータに基づいている可能性があります。

結局のところ、これには興味深い効果があり、敵は何が起こっているかを処理するのに時間がかかるかのように行動します。たとえば、プレイヤーが死んでいても撃ち続けたり、同胞が全員殺されたことに気付くまでに時間がかかり、逃げようと決心した瞬間からしばらくして恐怖の逃走状態を引き起こしたりする可能性があります。更新ごとに「フル」シムを実行します。

では、自分の時間に合わせて低解像度の計算を行うことは、リアルタイム モニカとのトレードオフとして許容できるのでしょうか?

于 2010-04-26T18:43:33.273 に答える