Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
サーバーとクライアントを使用して Java でゲームを作成しました。クライアントは、プレーヤー レベルの進行状況を計算します。この間、最後の更新があったときにサーバーから取得します。次に、時差を調べます。するとレベル+=時差。しかし、クライアントはレベル += 2 よりも 2 時間ほど遅れて自分の時間を設定することができます。
どうすればこれを解決できますか?
これは、すべての時刻が UTC で通信および保存されるように解決するのが最適です。(通常、長い値: 1.1.1970 からの秒数またはミリ秒数。Unix Time とも呼ばれます)。
Javaでは、今回は
long utcMillis = System.currentTimeMillis();
その価値を保存し、伝えます。それとの差を計算します。
ゲームでの不正行為を避けるために、いつでもサーバー時間を使用できます。