5+5 gibi takımlı veya 10 kişi bağlanacağı bir oyun mu yapıyorsunuz? Dedicated veya listen olarak nasıl olacak. Kafamda canlanan birkaç yöntem söyleyebilirim.
127.0.0.1 ile bağlandığınız oyunda Open level fonksiyonu çağırırsanız playercontroller oyundan çıkar. GameInstance veya save dosyası kullanarak karakterleri sunucu tarafına set edin.
10 kişi oyuna bağlandı diyelim. Playerstate ye Enumeration"None,TeamA,TeamB" oluşturma gibi işlemler yapacaksınız. Yani server.exe başına 10 (5+5) kişi olacak. Yani farklı portta 2 server açarsan, 2 farklı oyun olacak. Lobi ekranı ve oyunu aynı level de yapacaksınız. Ana level boş olsun sadece (1 adet direction light) olabilir,persisdent diye geçer. Level Instance Actor kullanabilirsin. Level InstanceActor için Boş birtane EmptyLevel oluştur, içinde bir şey olmasın. Bp class sekmesinden Level değişkenini EmptyLevel adlı olan boş haritayı seç. (Daha sonra set edeceksin. Çünkü değişken null ise set edilmeme problemi var. Bu sebep ile empty lvl gösterdik.) Lobi Level Instance Actoru oyunda haritada hiç gelmeyecek bir yere taşı. Gözükür yerede koysan. Zaten haritayıda open world gibi yaparsan. Lobi 100x100 metre olsa. Load rangeyi 150-200 metre gibiyaparsın Lobi lvl içindeki worldsettingsten. Ana haritada gözükmez. Start deyince karakterler haritadaki x noktasına veya A,B noktası olacaksa ışınlarsın. (Teleport).
Başka yöntemde var. Open level deyince her oyuncunun bağlantısı kopacak zaten. Demeden önce game instanceye Player controller tarafından replication eventlerini kullanarak server tarafında bir txt,ini gibi dosyadan server port değerlerini okuyup ip, port gibi değişkenleri göndereceksin.
Ve default 7777 portunu C++ kullanarak değiştirebilirsin. Haritayı açarken options kısmına "?listen" yazıyorsun. 7777 olarak listen açıyor. Daha önce denemedim ama Ben c++ set ediyordum. Open level de otomatik olarak optionstring portu tanıyabilir belki. (?listen?port=6688) gibi . Ip ve port ile diğer oyuncular örnek 10 saniye sonra bağlansın diyebilirsin. O replication event bilgilerine lobiye bir token kod doğrulaması ekleyebilirsin. Başkası girmesin diye Lobi ve takımları doğrulamak gerekir. Hepsi bağlanınca değişken set edersin diğer bağlananları token kontrol etmeden bile otomatik atar. Yöntem çok.
Veya hazırda, daha önce açılmış lobi server, harita server gibi sunucular olacak. Lobi de iken "ClientTravel" gibi fonksiyonlar çalıştıracaksın. Servertravelde var fakat fazla denemedim.