ゲームの開始時に、サーバーに ping を送信し、サーバーにサーバー時間をセッションまたはその他の永続化方法に保存させます。完了時に完了時間をサーバーに送信します。サーバーでは、開始時間リクエストと終了時間リクエストの時間差と、ゲームから送信された時間を比較します。時間の多少の不一致は許容しますが、ベルギが言うように、それは多くの作業であり、それでも 100% になることはありません.
フロー図:
Game start -> send command to server.
Server saves time: (2:53pm)
Game end -> send players time to server (3mins).
Server gets current time (2:56pm)
Server compares start time (2:53pm) with current time (2:56pm) which is 3mins.
IF the difference == 3mins +/- 30sec then assume time is valid.
どれだけ厳密にする必要があるか、どのような許容範囲を受け入れるかによって、詳細を調整します。- クライアントがゲームをプレイしていない可能性があることを忘れないでください...どんなリクエストでもなりすましの可能性があります。これが良い出発点になることを願っています。