ブラウザゲームを作ることを考えている間、私は気がかりな問題に遭遇しました。多くのゲームには、このように機能する「イベントキュー」と呼ばれるものがあります。私は「軍隊」を持っていて、それを敵に送ります。少し時間がかかります。私の「軍隊」が敵の「軍隊」の位置を取得すると、計算された戦いがあるので、私の「軍隊」は負けるか勝ちます。私または私の対戦相手がゲームに参加しているときは、すべてがうまくいきます。ある種のajax作業では、呼び出されるphpスクリプトを管理し、fightを計算して、その結果をデータベースに保存できます。しかし、戦闘が発生したときに私も対戦相手もログインしていない場合、どのように機能するのでしょうか?そのようなゲームの良い例は、あなたが別の惑星に船を送っているときのOgameであり、ログアウトしたときに目的地に会い、戦いを行い、敵の源を手に入れてカムバックすることができます、
私は、データベースの行で攻撃者と対戦相手の両方の攻撃の時間を節約し、いずれかのプレイヤーがゲームにログインしている間の戦いを計算できると考えていましたが、このソリューションには多くの欠点があります。たとえば、対戦相手を攻撃する前に攻撃するサードプレーヤーがいる場合、それは彼の軍の統計を変更し(彼は彼の軍の一部を殺すことができるため)、私は多くの結果をもたらします。また、プレイヤーの誰もが長時間ログアウトしない場合、彼らは戦っていなかったのでゲームに登場し、それは真実ではありません。
そのようなイベントキューを作成する方法を知っていますか?cronを使用することもお勧めできません。まれにしか使用されない場合があり、数千のプレーヤーが存在する場合、数千のcronインスタンスがパフォーマンスのキラーになる可能性があります。どんな概念でもありがたいです-私が私の問題を十分に説明したことを願っています:)