タグ付けされた質問 「replays」

9
浮動小数点の非決定論に直面して決定論的ゲームはどのように可能ですか?
ネットワーク化されたRTSのようなゲームを作成するために、ここでゲームを完全に決定論的にすることを提案する多くの回答を見ました。次に、ユーザーのアクションを相互に転送するだけで、次のフレームがレンダリングされる前にすべてのユーザーの入力を「ロック」するために、表示されているものを少し遅らせるだけで済みます。その場合、ユニットの位置、ヘルスなどのようなものは、ネットワーク上で常に更新される必要はありません。すべてのプレイヤーのシミュレーションはまったく同じだからです。また、リプレイを行うために提案された同じことを聞いたことがあります。 ただし、浮動小数点の計算はマシン間、または同じマシン上の同じプログラムの異なるコンパイル間でも非決定的であるため、これは本当に可能ですか?その事実が、ゲーム全体に波及するプレイヤー(またはリプレイ)間の小さな違いを引き起こすのをどのように防ぐのでしょうか? 一部の人々は、浮動小数点数を完全に避けint、分数の商を表すために使用することを提案することを聞いたことがありますが、それは私には実用的ではありません-たとえば、角度の余弦を取る必要がある場合はどうなりますか?数学ライブラリ全体を真剣に書き直す必要がありますか? 私は主にC#に興味があることに注意してください。私が知る限り、この点ではC ++とまったく同じ問題があります。

2
ゴーストの再生-ストレージとタイミング
私はカーレースゲームに取り組んでおり、過去のレースを再生するためのゴーストスプライトを実装しました。私は物理エンジンを使用していて、多くの資料を読んだ後、再生のためにゴーストデータを保存する最良の方法は、たとえばhttps:// gamedevで説明されているように、特定の時点での車の位置と回転を記録することであるという結論に達しました。 stackexchange.com/a/8380/26261。 しかし、リプレイ中にそれらのタイムポイントを見つけるための良い方法は何でしょうか?例は、次のデータを持つレコードです。 time: +3.19932 (seconds since race start) position: 180,40 (position at that time) rotation: 30.4 (rotation at that time) しかし、それにはいくつかの問題があります。 再生すると、3.19932の正確なタイムポイントに再び到達する可能性は低くなります。おそらく、3.1前後のタイムポイントがあり、最も近いレコードを見つける必要があります。補間する場合は、上下の最も近い一致でも。これは非常に非効率的で時間がかかるように思えますか? 後で再生するために、これらのレコードをどのリスト構造に保存できますか?配列?これは、特定の時間に一致するレコードの検索時間が、レースが長くなるほど長くなることを意味しませんか? タイムポイントにはどの頻度を使用する必要がありますか?各フレームは-おそらく-やりすぎです。むしろ、n番目のフレームごとに保存して、その間に補間する必要があります。これにより、2のストレージの質問がさらに難しくなります。 それで、このアイデアは正しいアプローチですか?はいの場合、どのようにしてデータを効率的に保存および取得できますか?私は通常、確定的なゲーム状態やユーザー入力の記録などではなく、上記のデータ構造を使用したいと思います。 助けてくれてありがとう! 編集:私が使用する環境を説明する必要があることを理解しています:Cocos2D for iPhone。方法がありupdate:(ccTime)deltaます。理想的には、このメソッドは1/60秒ごとに呼び出されますが、保証はありません。これはdelta、最後のゲームティックから経過した実際の時間であり、1/60よりもはるかに長い場合と少ない場合があります。このメソッドで、現在のゲーム状態を保存します。

2
再生システム:入力またはイベントを記録しますか?
私はこれを読みました:再生システムを設計する方法しかし、それは私の質問に実際には答えません。 私のゲームは、サーバーの「モデル」および「コントローラー」とは別のプログラムとして、ゲームのクライアントの「ビュー」で構築されています。(mmoのように、またはこの方法で構築されたマルチプレイヤーゲーム)。サーバー側は常にゲームの「真実」であり、クライアントからの入力としてアクション要求を受け入れ、イベントと「現在の状態」メッセージを出力するだけです。 ゲームモデルとルールは固定の「ティック」更新サイクルで完全に決定的であるため、サーバー側では、クライアントビューに送信されたイベントとアクションリクエストの両方を記録できます。どちらも特定のサイクル番号に関連付けられています。 問題は、この場合、再生システムをセットアップするには、入力、またはユーザーアクション要求(そこで提案されている)またはイベントを使用する必要があるかどうかです。 どちらもまったく同じ出力を生成するように思えます。私が見ることができる唯一の違いは: イベントは実際の出力を提供しますが、イベントを発生させるにはアクション要求を処理する必要があります。 アクションリクエストは、記録するデータがはるかに少ない場合があります。 他に考慮すべきことはありますか?

3
.sc2replayファイルの解析[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 4年前休業。 StarCraft 2リプレイファイル(.sc2replay)を解析するにはどうすればよいですか?APIはありますか? 私はSc2gearsを知っていますが、それは私のニーズを完全には満たしていません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.