Pages

Monday, June 1, 2015

Online Unity Multiplayer Game 2 : Melakukan Koneksi sebagai Host Server Client Utama

  1. Lakukan persiapan, nyalakan server jika melakukan hosting Unity Master Server sendiri. Bisa membaca artikel sebelumnya jika belum : Online Unity Multiplayer Game 1 : Hosting Sendiri Unity Server dengan Unity Master Server
  2. Buat project unity baru, disini saya menggunakan 2D project
  3. Buat object kosong baru pada scene dengan nama "Network Manager", nama tidak harus sama boleh berbeda
  4. Buat folder baru pada Assets Explorer dengan nama "Script" untuk menyimpan dan mengumpulkan menjadi satu script-script yang akan kita buat nantinya
  5. Pada folder script, buat script c# baru dengan nama "NetworkManager", nama sebenarnya tidak harus sama dengan nama object, hanya saja untuk memudahkan waktu manajemen aset nantinya maka disini namanya saya samakan
  6. Tambahkan script tersebut ke object kosong yang telah kita buat
  7. Buka script "NetworkManager", dan tambahkan script berikut :
        private const string gameName = "MyOnlineGame";
        private const string roomName = "MyRoom";
        private const int maxPlayer = 4;
        private const int portNumber = 25000;
        private const string serverIP = "127.0.0.1";

        void Start () {
            MasterServer.ipAddress = serverIP;
        }

        private void StartServer()
        {
            Network.InitializeServer(maxPlayer, portNumber);
            MasterServer.RegisterHost(gameName, roomName);
        }
    Script ini digunakan untuk melakukan inisialisasi ke network dan me-registerkannya ke master server.
    notes :
    • gameName : nama unique game kita, jika kita menggunakan server yang telah disediakan unity tidak menggunakan master server yang kita hosting sendiri maka kita akan benar-benar memerlukan game name yang unique sebagai identifier game kita
    • roomName : nama room yang akan dibuat, dimana nanti beberapa client dapat terhubung bersama-sama dalam satu room permainan
    • maxPlayer : maximal jumlah player yang dapat masuk ke dalam room
    • portNumber : nomor port identifikasi client untuk terhubung ke server, ini bukan port server
    • serverIP : alamat ip dimana master server kita dipasang, jika kita menggunakan server yang disediakan unity maka kita tidak memerlukannya
  8. Pada saat server sudah sukses diinisialisasi maka otomatis fungsi OnServerInitialized() akan dipanggil. Tambahkan script fungsi sebagai berikut :
        void OnServerInitialized()
        {
            Debug.Log("Server been initialized");
        }
  9. Untuk testing, tambahkan tombol GUI yang mana nantinya hanya muncul jika kita belum teregistrasi sebagai server ataupun client
        void OnGUI()
        {
            if (!Network.isClient && !Network.isServer)
            {
                if (GUI.Button(new Rect(100, 100, 250, 100), "Start Server"))
                {
                    StartServer();
                }
            }
        }
  10. Jalankan, maka akan muncul sebagai berikut :
    Jika berhasil maka tombol "Start Server" akan menghilang ketika dipencet, dan muncul informasi pada console sesuai dengan tulisan yang kita masukkan pada fungsi OnServerInitialized().
File Project dapat didownload disini..
Selanjutnya Baca : "Online Unity Multiplayer Game 3 : ........." - Coming Soon

Terimakasi.. :)

2 comments: