unityの時間管理をサーバーでやりたい。

  • このエントリーをはてなブックマークに追加
  • LINEで送る
  1. ソシャゲとログイン時間のコントロール
  2. タイムスタンプの表示
  3. タイムゾーンを無理やり合わせる。
  4. タイムゾーンが異なる場所での時間管理。

ソシャゲとログイン時間のコントロール

例えば、時間を本体に保存した場合どうなるか?

30分に一回ゲームできるアプリだったとして、まず間違いなく不正が起きる。

(端末の時間変更で30分すすめると連続してゲームが可能など)

ましては、イベントタイマーなど設定していた場合はコントロールできない。

なので、基本はサーバーの時間を正として設定する。

 

 

Unixタイムスタンプ時間の表示

user_idのテーブルにログイン時間を記録し各問い合わせ操作時に最終操作時間として記述する。

もちろん時間については、サーバーの時間。

 

注意事項として、タイムスタンプはサーバーのタイムスタンプなので各サーバーによって厳密には、時間が正しくない場合、時差が含まれていない場合がある。

 

unity側では、タイムスタンプ文字列を変換してデートタイムにする

 

タイムゾーンを無理やり合わせる。

国内のレンタルサーバーを借りている場合は 32400秒たしておけば、時差を丸めることができる。

この辺タイムゾーンの設定とかあるけどこっちのほうがわかりやすい。

androidのタイムゾーンを信じてはいけない。

 

タイムゾーンが異なる場所での時間管理。

実際サービスを開始したとして 日曜日の0時丁度に新しくイベントを始めたい場合上記の時間設定では、まずい。

すべての地域のユーザーが東京の日曜日0時にイベントを開始できることになるためだ。

ただし、ソーシャルゲームという方向から見たら平等かもしれない。何時であれ相対的には同時にサービスを開始することができるから。

反面、負荷の分散という方向から見れば、個別にタイムゾーンを用意しておいて順次、該当地域のユーザーに対して新しいイベントを渡すほうがよい。ポケモンGoなどはこっちの方式だった。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*