0

私はブラウザ ベースのゲームの世界に足を踏み入れています。最初のゲームをベータ段階に入れています。これはターン制のゲームであり、PHP スクリプト バックエンドで非常に簡単に実行できますが、楽しみにしていると、よりリアルタイムなゲームを開発するための選択肢に少し圧倒されます。

次のプロジェクトの正確な詳細を公開サイトで公開するのは気が進まないので、ここで探しているものをもっとあいまいな言葉で説明しようと思います。基本的に私が必要としているのは、ユーザーからの着信データを処理しながら、1 秒間に何度も発生する可能性のあるバックグラウンド計算を行う方法です。このような状況では、スクリプトが常に呼び出され、データベースに対して多くの書き込みが行われるような PHP スクリプトをセットアップするのはばかげているように思えます。代わりに、C++ プログラムのようなものをサーバー上で実行し、リクエストを処理し、値をローカル メモリに保存する方がはるかに理にかなっているように思えます (ユーザーがログオフするまで)。

自分が何をしたいのかよくわかっているように見えるかもしれませんが、サーバー バックエンドに関しては、自分が何をしているのかわかりません。私は Javascript を PHP スクリプトと対話させる方法を知っており、それが私の知識の範囲です。C++ プログラムはこれを行うための最良の方法ですか? もしそうなら、私は何を始める必要がありますか? (私は基本的な C++ をいくつか知っていますが、要求を受け取るサーバーからプログラムを実行できるようになる方法がわかりません)。この状況で得られる最も理想的なことは、javascriptがサーバー上のプログラムにリクエストを送信し、受信したデータで何かを行う簡単なやり取りを行う方法についてのガイダンスだと思います. 私は通常、どこかから始めると、物事を理解するのが非常に得意です。

助けてくれてありがとう。

4

1 に答える 1

0

私のアドバイス:実際にそのリアルタイムゲームを作成しようとしていて、C ++を学習するプロジェクトを探しているだけでなく(これは同じように価値がありますが、非常に異なる目標です)、実際に問題が発生するまでPHPを使い続けてください。あなたは解決することはできません。注意深く設計すれば、必要に応じて調整が必要なシステムの部分を置き換えることができます。

バックエンドの要件として特定した2つの特性:

  1. データベースから遠ざけたい高度にインタラクティブなセッション状態
  2. バックグラウンドプロセス(つまり、HTTPを介したプレーヤーイベントによってトリガーされないプロセス

これらの要件には、ゲームのビジネスロジックのテーブルからPHPを取り除くものは何もありません。

1)Redisのようなものを検討てください(人気のあるPHPクライアントであるPredis経由)。これは、高性能のメモリ内データストアです。

2)の場合、他のクライアントと同じようにメインサーバーと通信する完全に別個のPHPプログラムを作成できます。redisを使用している場合は、redisと直接通信している可能性があります。覚えておいてください:PHPがWebページのリクエストを処理しなければならないということは何もありません。

最後に、これを調査しているときにもう1つのリンクが見つかりました。古いですが、コードはまだ利用可能であり、非常に有益な場合があります。phpsocketdaemonは、「大量のクライアントおよびサーバー接続を処理できるPHPでデーモンを作成するためのライブラリ」です。

于 2012-04-23T09:33:04.687 に答える