Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Dedicated Server ile Matchmaking sistem
#1
Selam. Multiplayer bi projem var arkadaşlar 5v5 bi maç olacak şekilde.
Ana Menüden "Maç Bul" dediğimde Sunucu 10 kişi eşleştirip bu 10 kişi için bi kanal oluturup leveli baştatcak. (Tabi oyun aramayı bi 10k kişinin yaptığını da varayarsak) Bunun için neler yapmam gerek. Tam olarak detaylı bi açıklama istemiyorum sadece neler kullanılıyor nasıl bi yol izleniyor araç gereçler nedir onu merak ediyorum kabaca. 
(Yolun nereye gittiğini bilirsem çantamı ona göre doldurcam)
Ara
Cevapla
#2
1. Öncelikle oyuncuların bağlanabileceği bir server çözümüne ihtiyacın var. Bu azure vm olabilir aws vm olabilir ya da kendi serverını kurabilirsin. Bu servera yaptığın oyunun "dedicated server build" versionunu yükleyeceksin ki insanlar bağlanarak multiplayer oynayabilsinler.
2. Oyuncuların kendi bilgisayarlarına indirecekleri oyun uygulamasını dağıtacağın steam gibi ya da epic store vb gibi bir hizmet sağlayıcıya ihtiyacın var.
3. Bu iki sistemi birbirine bağlayacak bir SDK'e ona bağlı olarak ta bir  "Online Subsystem" a ve ihtiyacın var. Bunun için yine Steam SDK ya da Epic Online Services vb değişik seçenekleri seçebilirsin. Mesela Steam kullanacağını düşünürsek Steam SDK i kolay entegre etmeni sağlayacak Steam Online Subsystem kullanacaksın. Bu sistemlerin bir çok görevlerinden bir tanesi de  iki exe yi birbirile buluşturmak.
4. Kullanacağın SDK ve Online Subsystem içerisinde bir çok "Inteface" olduğunu göreceksin. Bu iterface ler içerisinde senin sorduğun konu ile ilgili olanı şu. "Sessions" diye bir interface var. Bunu interface kullanarak maç arama bulma oyuna girme işlemleri gerçekleşecek.
 Yukarıda sayıdığım işlemlerden Online Subsystem işini biraz daha kolaylaştırabilecek BP de yeni özelllikler ekleyecek bir çok sistem Marketplace te mevcut. Mesela benim şimdi aklıma gelen Advanced Sessions System. Tam olarak kolaylaştırıyor mu yoksa sadece ileri seviye özellikleri mi ekliyor şu an bilemiyorum ama böyle pluginleri incelemek faydalı olabilir.

 Son olarak bu işi tek başına yapacaksan, az çok virtual machine server açmayı işletmeyi bilmen, az çok steamde uygulama dağıtımı prosedürünü ve SDK içeriğini bilmen ve son olarak ta kullandığın steam ya da EOS session alt yapısını az çok biliyor olman gerektiğini düşünüyorum.

 Kolay gelsin.
Ara
Cevapla
#3
1. Anladığım kadarıyla buradaki anlattığın olay Oyunun server için olanını paketleyip Kiraladığım server üzerinden sunucu olarak çalıştırcam. doğru anladıysam bunu zaten biliyorum. Oyuncularn indireceğini Ayrı paketlicem o da tamam.
2. Dağıtım Steam Üzerinden zaten.
3. Burda "Online Subsystem Steam" Eklentisini yükleyip kodlama olayını bunula yapcam.
4. Henüz bakmadım

Şimdi. Bu durumda Ana Level'in Haricinde Bir level oluşturup (Main Menu) Kodlamayı bu level üzerinde gerçekleştircem. Yani Orda Maç Bul diye bi seçenek yapıp, Oyuncu ona tıkladığında. Create session - Yani bi kanal oluşturulacak. sonra 10 kişilik ekip tamamlandığında oyuncuları Join session yapıp bunları ana level'e yönlendircem yani Oyun haritası bla bla??. Mantık yürüttüm.

Son yaptığın açıklamadaki konuları araştırcam. MP olayına yeni yeni girdiğim için session mevzusunu da bildiğimi söyleyemem ama hızlı öğrenme becerim var.
Ara
Cevapla
#4
Neredeyse her şeyi doğru anlamışsın. Yanlız bir noktaya dikkat. Eğer birisi server oluşturup diğerleri onun oluşturduğu servera ve session a bağlanacaklarsa senin dediğin gibi olacak. Eğer soruda sorduğun gibi birisinin bir oyun kurmasını istemiyorsan eğer, o zaman oyun açıldığında server kendisi bir session oluşturacak açıldığında sonra senin kodlamana göre mesela diyeceksin ki burası 10 kişi oldu siz şu mapa gidin. Onlar gidince ya da daha gitmeden önce yeni gelecek 10 kişi için yeni bir session otomatik oluşturulacak ve onlar da toplanınca onlarda kendi maplerini travel uçuş yapacaklar. Yani ordaki mantığı kendin kurgulamak zorundasın eğer birisi oyun kurucu olup yeni session açmayacaksa.
Ara
Cevapla
#5
Onu iyi dedi valla. Yok kullanıcılar Host olmicak zaten. Session, Server tarafından oluşturulcak. Yani şöyle söylym Sunucu 10 kişiyi lobide toplaynca Session oluşturup. Bu kullanıcıları Sessiona join edip Levele yolcu edecek. doğru mudur. (Tabi lobi arka planda) örnek yani. 
Ve oyuncunun maç bul demesi lobi ye +1 player şeklinde geçecek. 
(Yani kodlama olarak baktığımızda. Server oyuncuları tutup Session'nu oluşturup sonra join edip Leveli yüklicek)


Edit: Denemeler yapıyorum. Normalde projemde oyun başladığında bi tuşa bastığımda karakter spawn oluyordu. 
Ama "Main menu" Leveli oluşturup  Widget ekledim widgeta bir tuşu "Create session" yaptım. Başka bir tuşu da "Find Session" yaptım. 
Client 1'den Create tuşunu seçip host olarak başlatıyorum ve Ana haritayı Open level ile açıyor. Client 2de de find session diyorum. Success olunca Join oluyor Ve hosta bağlanıyor level açılıyor. client 1 ve client 2 ortak oyunda buluşuyor. Ama Karakter spawn etme Tuşuna bastığımda karakter spawn olmuyor. Acaba Main Menu Game Modu mu aktif kalıyor halâ? Yani Açılan Level'in Game Modu'nu aktif etmiyor mu?
Ara
Cevapla
#6
Server travel ile ilgili bir kaç gün önce bir video yüklemiştim buraya. Game mode çalışmıyor manasında bir konu vardı. Oraya bakabilirsin belki. Gamemode un çalıştığını beginplay e bir pring string koyarak test edebilirsin. Normalde session sisteminin bu konularla ilgisi olmadığından bir alakası yoktur problemin session larla diye düşünüyorum.
Ara
Cevapla
#7
Evet Game mod'da sıkıntı yok enteresan. Baktım dediğin konuya ama benim mevzu faklı. Benim iyice bi anlamam lazım session konularını. Ama şöyle ufak bi create session ve find-join session örnek çalışması gelirse senden kıyak olur Smile işlerin varsa problem değil tabi

Edit: Tamam çözdüm
Ara
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Server travel ile game mode değiştirme zac 18 378 09-02-2021, Saat: 15:39
Son Yorum: erginegider
  Client tıkladığında server tetikleniyor. TR26SkyWalker26TR 8 606 17-04-2020, Saat: 21:09
Son Yorum: zoraki
  Dedicated Server ? Joseph_Micheal 10 1,824 07-01-2019, Saat: 11:42
Son Yorum: Joseph_Micheal
  Client Server Farkı sevanberkay 0 427 16-12-2018, Saat: 00:59
Son Yorum: sevanberkay
  Multiplayer Server ve client acemiunrealci 6 1,222 13-12-2018, Saat: 12:36
Son Yorum: Ozzy
  (Çözüldü) Sistem Resetleme alpery 2 726 16-09-2018, Saat: 19:25
Son Yorum: alpery
  Server-Client Widget Blueprint kinglord34 3 1,177 04-09-2017, Saat: 09:35
Son Yorum: Fatalitech
  Ayak IK'sinde kaliteli sistem tavsiyesi? furkanxdgs4 7 1,427 25-12-2016, Saat: 13:20
Son Yorum: furkanxdgs4

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi

Unreal Engine Türkiye

This forum is community driven and supported by voluntary community members. It has nothing to do with Epic Games.

Bu site sadece destek amaçlıdır. Epic Games ile bir ilgisi yoktur.