現代のインターネット環境では、マルチプレイヤーオンライン戦略ゲームが多くのプレイヤーにとって好ましいタイプの選択肢となっています。 PHPとUnity3Dを使用する方法とWorkerman Frameworkと組み合わせて、リアルタイムのインタラクティブなマルチプレイヤーオンライン戦略ゲームを作成することが、この記事のコアコンテンツになりました。
Workermanは、高性能のPHPソケットフレームワークで、高い並行性リアルタイム通信をサポートしています。まず、プレーヤーの接続とリアルタイムのデータインタラクションを処理するために、Workermanサーバーを構築する必要があります。
<?php require_once '/Workerman/Autoloader.php'; // 紹介されたWorkermanファイルを自動的にロードします use Workerman\Worker; // aを作成しますWebSocket Worker,モニター2345ポート $ws_worker = new Worker("websocket://0.0.0.0:2345"); // プロセス数を設定します $ws_worker-> count = 4; //クライアントが接続したら、接続IDを送信します $ ws_worker-> onconnect = function($ connection){ $ connection-> send(json_encode([) 'type' => 'connect'、 'id' => $ connection-> id ])); }; //クライアントがメッセージを送信する場合、すべての接続されたクライアントにブロードキャスト$ ws_worker-> onmessage = function($ connection、$ data){ foreach($ connection-> worker-> connections as $ client_conn){ $ client_conn-> send($ data); } }; //クライアントが切断されると、すべての接続されたクライアントに通知しますされます$ ws_worker-> onclose = function($ connection){ foreach($ connection-> worker-> connections as $ client_conn){ $ client_conn-> send(json_encode([) 'type' => '切断'、 'id' => $ connection-> id ])); } }; //ワーカープロセスワーカー:: ranall(); ?>
上記のコードは、ポート2345に耳を傾けるWebSocketサーバーを作成します。関数には、接続時にIDの送信、メッセージ転送、およびクライアントの切断時に通知をブロードキャストすることが含まれます。
次に、Unity3Dを介してゲームクライアントを開発し、WebSocketプロトコルを使用してサーバーに接続してデータと対話します。
UnityEngineの使用。 WebSocketSharpを使用しています。 パブリッククラスのGameClient:Monobehaviour { プライベートWebSocket WebSocket; //サーバーに接続void start() { webSocket = new WebSocket( "ws://127.0.0.1:2345"); //サーバーのIPおよびポートWebSocket.Onopen +=(送信者、E)=> {にセットき変化えます。 debug.log( "サーバーに接続!"); }; websocket.onmessage +=(sender、e)=> { debug.log( "受信メッセージ:" + e.data); }; websocket.onclose +=(sender、e)=> { debug.log( "サーバーから切断!"); }; websocket.connect(); } //サーバーにメッセージを送信しますvoid update() { if(input.getKeyDown(keycode.space)){ websocket.send( "hello、server!"); } } //接続を近いじるvoid ondestroy() { websocket.close(); } }
上記のコードはWebSocketサーバーに接続し、サーバーアドレスは127.0.0.1、ポートは2345です。クライアントは、接続、メッセージ受信、送信、接続の閉鎖の基本機能を実装します。
Workermanと組み合わせたPHPおよびUnity3Dを通じて、マルチプレイヤーオンラインインタラクション機能を実現し、リアルタイムの戦闘、チャット、チームなどのさまざまなゲームメカニズムをサポートできます。開発者は、これに基づいてゲームロジックをさらに拡大し、より多くのインタラクションと課題を追加できます。
この記事では、PHPとUnity3Dを通じてマルチプレイヤーオンライン戦略ゲームのインフラストラクチャを構築する方法を紹介します。 Workermanを通じて、サーバー側でのリアルタイム通信、Websocketプロトコルを使用してクライアントと接続すると、開発者はリアルタイムのインタラクションでマルチプレイヤーゲームシステムを簡単に構築できます。これにより、マルチプレイヤーオンライン戦略ゲームの開発のための実行可能な技術的ソリューションが提供され、開発者が迅速に開始され、ゲームのリアルタイム機能を実装するのに役立ちます。