ခေတ်သစ်အင်တာနက်ဝန်းကျင်တွင် Multiplayer Online Strategy ဂိမ်းများသည်ကစားသမားများစွာအတွက်ရွေးချယ်စရာနည်းလမ်းများဖြစ်လာသည်။ PHP နှင့် Unity3D ကိုမည်သို့အသုံးပြုရမည်နည်း။ trackerman framework နှင့် Collecerer Interformation Multiplayer Game Game ကိုဖန်တီးရန်ဤဆောင်းပါး၏အဓိကအကြောင်းအရာများဖြစ်လာသည်။
Workerman သည်စွမ်းဆောင်ရည်မြင့်မားသော PHP Socket Framework ဖြစ်သည်။ ပထမ ဦး စွာကျွန်ုပ်တို့သည်ကစားသမားဆက်သွယ်မှုများနှင့်အချိန်မှန်ဒေတာအပြန်အလှန်ဆက်သွယ်မှုများကိုကိုင်တွယ်ရန် workerman server တစ်ခုတည်ဆောက်ရန်လိုအပ်သည်။
<?php require_once '/Workerman/Autoloader.php'; // မိတ်ဆက်ခဲ့သည်Workermanဖိုင်များကိုအလိုအလျောက်တင်နေသည် use Workerman\Worker; // aWebSocket Worker,စောင့်ရေှာက်2345သငေ်္ဘာဆိပ်ကမ်း $ws_worker = new Worker("websocket://0.0.0.0:2345"); // လုပ်ငန်းစဉ်အရေအတွက်ကိုသတ်မှတ်ပါ $ws_worker-> ရေတွက် = 4; // client ကိုဆက်သွယ်သည့်အခါ connection id ကိုဆက်သွယ်ပါ $ ws_wlowerker -> onConnect = function ကို ($ ဆက်သွယ်မှု) { $ ဆက်သွယ်မှု -> Send (JSONS_CENDODED ([ 'Type' => 'Connect', 'ID' => $ ဆက်သွယ်မှု -> ID )))))) }; // client သည်မက်ဆေ့ခ်ျတစ်ခုပေးသည့်အခါဆက်သွယ်ထားသော client များအားလုံးကိုဆက်သွယ်ထားသောဖောက်သည်များအားလုံးကိုထုတ်လွှင့်သည်။ $ WS_WAWEER -> onmessage = function ($ ဆက်သွယ်မှု, $ ဒေတာ) Foreach ($ ဆက်သွယ်မှု -> 0 န်ထမ်းများ> ဆက်သွယ်မှု $ client_conn အဖြစ်) $ client_conn-> Send ($ ဒေတာ); } }; // client ကို client ကိုအဆက်ပြတ်သောအခါချိတ်ဆက်ထားသောဖောက်သည်များအားလုံးကိုဒေါ်လာ WS_WAWEER -> Onclose = onclose = function ($ ဆက်သွယ်မှု) Foreach ($ ဆက်သွယ်မှု -> 0 န်ထမ်းများ> ဆက်သွယ်မှု $ client_conn အဖြစ်) $ client_conn-> Send (JSONS_CENDODED ([ 'Type' => 'disconnect', 'ID' => $ ဆက်သွယ်မှု -> ID )))))) } }; // အလုပ်သမားလုပ်ငန်းစဉ်ဝန်ထမ်း --: Runle (); >
အထက်ဖော်ပြပါကုဒ်သည် Port 2345 ကိုဖော်ပြသော websocket server တစ်ခုဖန်တီးသည်။ လုပ်ဆောင်ချက်များတွင် - client clunonnection တွင်ချိတ်ဆက်ခြင်း, မက်ဆေ့ခ်ျပို့ခြင်းနှင့်အသံလွှင့်ခြင်းနှင့်အသံလွှင့်ခြင်းနှင့်အသံလွှင့်ခြင်းနှင့်အသံလွှင့်ခြင်းသတိပေးချက်များ။
နောက်တဖန်ကျွန်ုပ်တို့သည် UNITITE3D မှတစ်ဆင့်ဂိမ်း client ကိုတီထွင်ပါ။ ဆာဗာနှင့်ချိတ်ဆက်ရန်နှင့်ဒေတာနှင့်အပြန်အလှန်ဆက်သွယ်ရန် WebSocket protocol ကိုသုံးပါ။
unityengine ကိုအသုံးပြုခြင်း; websocksarp ကိုအသုံးပြုခြင်း, Public Class GameClient: Monobehaviour { သီးသန့် websces websock, // ဆာဗာပျက်ပြယ် start ကိုဆက်သွယ်ပါ () { websocket = waids: "ws: //127.0.0.0.0.1 :11: 2345), // ဆာဗာ၏ IP နှင့် port websonopen + = (Sender, E) = >> Debug.Log ("ဆာဗာနှင့်ချိတ်ဆက်ထားသည်!"); }; websonmess.Onmessage + = (Sender, E) = >> Debug.Log ("+ e.data): }; websect.onclose + = (ပေးပို့သူ, E) => { Debug.Log ("ဆာဗာမှအဆက်ပြတ်!);); }; websconnect.Connect (); } // ဆာဗာပျက်ပြယ်အပ်ပုံစံကိုမက်ဆေ့ခ်ျပို့ပါ () { လျှင် (input.get.ygetkeydown (keycode.space)) websect.send ("မင်္ဂလာပါဆာဗာ!"); } } // connection ကိုပိတ်ပစ်ပိတ်ဆို့ခြင်း ondestroy () { websocket.close.Close (); } }
အထက်ပါကုဒ်သည် Websoint Server နှင့်ချိတ်ဆက်ထားသည့် server address သည် 127.0.0.1 ဖြစ်သည်။ 0 န်ဆောင်မှုခံယူသူသည် 2345 ဖြစ်သည်။
PHP နှင့် Unity3D မှတစ်ဆင့် Photerman နှင့်ပေါင်းစပ်ပြီး Multiplayer Online Interaction သည်အွန်လိုင်းအပြန်အလှန်ဆက်သွယ်မှုလုပ်ဆောင်မှုများကိုနားလည်ပြီးအချိန်နှင့်တပြေးညီတိုက်ခိုက်ရေး, developer များသည်ဂိမ်းယုတ္တိဗေဒကိုဤ အခြေခံ. ထပ်မံချဲ့ထွင်နိုင်ပြီးပိုမိုအပြန်အလှန်ဆက်သွယ်မှုနှင့်စိန်ခေါ်မှုများကိုထပ်ထည့်နိုင်သည်။
ဤဆောင်းပါးသည် PHP နှင့် Unity3D မှတဆင့် Multiplayer အွန်လိုင်းမဟာဗျူဟာဂိမ်းများကိုမည်သို့တည်ဆောက်ရမည်ကိုမိတ်ဆက်ပေးသည်။ workerman 0 ည်တ်စက်ဝိုင်းပေါ်တွင် Real-time conferencer မှတစ်ဆင့် client နှင့် ဆက်သွယ်. client နှင့် ဆက်သွယ်. client နှင့်ချိတ်ဆက်ခြင်း, clients နှင့်ဆက်သွယ်ခြင်း, Real-time interaction ပါသော Multiplayer ဂိမ်းစနစ်ကိုအလွယ်တကူတည်ဆောက်နိုင်သည်။ Multiplayer Online Stateady Games ၏ဖွံ့ဖြိုးတိုးတက်မှုအတွက်နည်းပညာဆိုင်ရာဖြေရှင်းနည်းများကိုအထောက်အကူပြုသည်။