Multiplayer Çoklu Oyuncu Altyapısı İçin Neyi Bilmem Lazım?
-
Selamlar,
Mesela bir bilgi yarışması kodluyoruz. Soru iki ekrana da aynı anda düşmeli aynı anda süreler bitmeli vs.
Böyle bir realtime multplayer oyun yapmak için hangi altyapıyı bilmem lazım?
Tr/Eng bir eğitim video dokuman vs paylaşabilir misiniz?
-
Web içinse ve her ikiside browser üzerinden bağlanıyorsa, iki için ayrı bir session açıp aynı sayfaya login edersen çözülür. Bu durumda çoğu işleni clientta değil serverda yaptıracağından çözülür diye düşünüyorum.
Client tarafı içinde senkronize etmekle kasma bence latency olabilir ama client gerekli bilgileri toplayıp yollasın server kazananı seçsin.
mesela soruları aynı anda push etti ama A kullanıcısının client'ı daha yeni b'ye göre daha hızlı aldı ve gösterdi, bunu yönetemezsin ama A sorulara cevap verdiği anda bilgileri(cevap ve toplam süre) paketler sunucuya yollar, b yazar yollar ve cevabı sunucu döner( kazanan, doğru sayısı etc)
Varsa aranızda bir manyak mmo içinde smartfoxserver vardı. Unity felan uyumlu bir ara baya bakmıştım ilginç bir teknoloji
-
Yorumun için teşekkür ederim sorum web ile ilgili değil mobil ile ilgili.
Aşağıda sürekli oynadığım trt nin bi oyunu var senkronizasyon muazzam 10 kişi aynı anda oynayabiliyoruz. Bir odada dün 6 kişi oynadık sorular hepimize aynı anda geledi aynı anda süre bitti. Hiç bir delay yoktu altypısı ne oluyor bunların bilemiyorum.
https://apps.apple.com/tr/app/trt-bil-bakal%C4%B1m/id1506144252
-
Bunlarda bir kaç pattern oluyor diye biliyorum. Mesela hepsi paketlerini alınca ack mesajı yolluyorlar, sonra server hepsine aynı anda mesajları göstermesi için komut yolluyor. Bekletme, buffer felan ms cinsinden olunca tabii biz anlamıyoruz.
özel bir kütüphane veya yöntem var mı diye sordum arkadaşlarıma yazınca dönerim.
-
hocam farklı teknolojiler olur bu tarz işler için. ben olsam nodejs ile socket.io kullanarak çözerdim. Json formatlı server client event base calisir. udemy de bir suru chat odasi, agar.io tarzi oyun yapmasini anlatar ders var. boyle clone şeklinde git hubda da bulursun https://github.com/huytd/agar.io-clone
socketio üzerinde room mantiği vari. kişileri başlangıçta global havuzda tutup eşleyebilirsin. sonra havuzlara-odalara bölerek 2li 3lü vs gruplayi odalara alabilrisin. serverdan odayi başlati. sonlandırırsın. biz ingilizce ders, sinav ve chat sistemi yapmiştik. hem mobil hem webde sorun yaşamadik.
-
socketio ya bakabilirsin.
ya da aws api gateway kullanabilirsin işini kolaylaştırır : https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/