Projemi derledim server ve client olarak 2 ayrı paketlemeyi yaptım sonra dedicated server olarak çalıştırdım ve client olarak da ayrıca çalıştırıp oyuna girip servera bağlanıyorum. buraya kadar hepsi tamam tek sıkıntım şu, "Ana menüde Oyuncu play tuşuna bastığında oyuncular eşleştirilip ilgili mapa gönderilecek". Bunu çözemedim gitti destek vercek birisi olursa sevinirim
Buraya kadar yapmış birisinin soracağı bir soru değil bu. Her şeyi hallediyorsun, paketleri alıyorsun ama eşleşmeyi mi yapamıyorsun?
Daha önce böyle bir şey denemedim ama biraz araştırmıştım. Amazon online services gibi dedicated serverlerde matchmaking sistemi var. Oyun arayanları kendi sistemi içinde bir havuzda toplayıp, koyduğun filtrelere göre eşleştirip sonra onları bir game sessiona atıyor. Bunun için aws panelinde de kodlama yapman gerekiyor oyun dışında. c++ gerektiriyor ve ne yaptığından emin değilsen bugları çözmek çok zor gibi görünüyor.
Ama mantık olarak şöyle. Oyun arayan herkesi sabit bir game sessiona bağlıyorsun. Genel lobi gibi maç arayan herkes oraya bağlanıyor. Sonra o game session içinde oyuncuların levelleri, pinglerine göre gruplar belirliyorsun. Belirlediğin gruplar örneğin 10'a ulaşınca o 10 kişi için asıl oyunun oynanacağı yeni bir game session açıp oraya bağlayıp transfer ediyorsun. Artık ondan sonrası kendi oyunları. İki ayrı lobi oluyor yani. Benim anladığım mantık buydu. Tek kişinin üstesinden gelmesi için fazla karmaşık bir sistem bence. Ne yaptığını çok iyi bilmesi gerek insanın.
Bahsettiğin şey daha basit bir şeyse steam subsystem gibi client-server tabanlı eşleştirmeler kolay. Dont starve together gibi oyunlar için ideal mesela. Lobi arama ve bulduğu lobiye bağlanma gibi.
Bir de beklentilerini ayarlaman için edindiğim birkaç istatistiği de söyleyeyim. Bir oyunu PC sine yüklemiş her 100 kişiden 1-3 tanesi aynı anda oyunda oluyor. Aynı anda oyunda olan kişiler de her 30 dakikada bir maç araya tıklayacağını düşünürsen kabaca (50(Anlık oyuncu)*30)/%2 = 75 bin. Yani sürekli aynı anda 50 kişinin oyun arıyor olması için oyunu bilgisayarına yüklemiş 75 bin kişi olması gerekiyor. Onun içinde 100 bin kişinin satın alması gerekiyor. Ve oyunun bu 75 bin yüklü oyun sayısını uzun vadede koruyabilmesi gerekiyor. Yani kabaca oyunun yüz binler satması gerekiyor. Steamde yüzbinler satan oyun %4 lük dilime giriyor. %4 lük dilime girecek bir oyun yapabilecek misin onu bir düşün. Yapabilirsen 50-100 milyon TL kazanmış olacaksın.
çevrimiçi pvp oyuncuların online olarak birbirleriyle rakip olduğu multiplayer oyunlar.
Çevrimiçi eşli oyuncuların online olarak aynı takımda oynadıkları multiplayer oyunlar.
LAN olanlar ise internet üzerinden değil de kablo ile de bağlanıp beraber oynayabildikleri versiyon.
Client-server multiplayer için dedicated server kurmana gerek yok o yüzden source dan build almana da gerek yok. Sadece steam değil başka client server olan pluginler vardır. Epic online services var mesela. Ayrıca bu pluginlerin de github da source buildleri vardır. Onları manuel olarak plugin dosyası içine yapıştırıp tekrardan build alman gerekiyor sanırım. Yani manuel olarak pluginleri kurman gerekiyor UE'yi source build alırsan.