ogame や travian などのブラウザ ベースのゲームが舞台裏でどのように機能しているかについて質問があります。これらのゲームのそれぞれで、すべてのプレイヤーは、鉄、木、石などのリソースを持つ独自の惑星または都市を持っています。各惑星/都市には、その資源を生産する適切な建物もあります。そして今、私のトピックのポイントは、サーバー上でゲームがどのように機能しているのか? オンラインのプレイヤーが 100 人しかいない場合でも、毎秒 10000 人のプレイヤーの都市の状態を更新する計算がサーバー上で実行されるかどうかは想像できませんでした。むしろ、引数として与えられた時間の後に都市の状態を計算する関数があると思います:
City calculateCityState(City databaseCity, long msTime);
最初の引数としてデータベースから都市の状態をタイムスタンプとともに渡し、2 番目の引数として、時間とともに変化するリソースやその他のものを都市に持たせたい後に時間を渡します。たとえば、データベースから現在の木材の量、Luberjack の生産量がわかっていれば、msTime の後にすべてのリソースを簡単に計算できます。これについてあなたはどう思いますか ?私は正しいですか?