2016-08-16 9 views
0

サーバーのデルタタイムを使用すると、すべてのコンピュータ/電話で異なるため、どのマシンでもサーバーサイドのゲームを同じように実行できます。デルタタイムサーバー側の問題

「固定タイムステップ」と呼ばれるものが私を助けますか?

+0

は、[高精度時間をチェックしてくださいプロトコル](https://en.wikipedia.org/wiki/Precision_Time_Protocol)をご覧ください。 – Dan

答えて

0

はい固定のタイムステップがお手伝いできます。しかし、デルタで単純な動きもあなたを助けることができます。 ゲームのレンダリング方法よりも頻繁に物理(120-200hz)を更新する必要がある場合があるため、物理的に一般的に使用されるタイムステップを修正しました。

ただし、物理なしで固定のタイムステップを使用することはできます。 あなたは自分の場合

lerp(oldValue, newValue, accumulator/timestep); 

と、おそらく小さなフレームレートの違いを、あなたのゲームオブジェクトを補間する必要がある予期しない結果が発生します。

動きを避けるには、デルタに依存する必要があります。

player.x+=5*60*delta;//I assume your game is 60 fps 

代わりの

player.x+=5; 

60と58 fpsの間のデルタ差のみであるため、だから、最後のデルタが無視できるmachines.Andの唯一の違いになります〜0.0005秒

+0

私はサーバーとクライアントで+ = 5 * 60 *デルタを実行しようとしましたが、それはうまくいかなくなってしまいました。 – IgnasR

+0

も60 fpsで動作しているサーバーですか? –

+0

いいえ、すべてがnfpsで動作しているわけではありません。秒間にフレーム数が制限されているわけではありません。サーバfpsを制限するのが良いかどうかわかりません。 – IgnasR

関連する問題