Thread overview
Oyunlarda Multiplayer veya Online Sistemler
May 29, 2016
İbrahim
May 29, 2016
İbrahim
May 29, 2016

Selamün Aleyküm;

İlk sorum: Multiplayer veya online olan oyunların çalışma mantığının sunucu-istemci olduğunu biliyoruz ama benim bildiğim iki çeşit protokol var: TCP/IP ve UDP protokolleri. Acaba oyunlarda UDP protokolü mü kullanılıyor? Çünkü bildiğimiz üzere UDP TCP'den daha hızlı çalışıyor. Yoksa başka bir sistem mi var?

İkinci sorum: Bu multiplayer veya online olan oyunlarda veya uygulamalarda sonuçta bir sunucu oluşturuluyor ve port dinlenerek işlemler yapılıyor. Peki biz bu sunucuyu internet üzerinden değil de bluetooth ile kurabilir miyiz? Yani bir uygulama bu sunucu-istemci alışverişini internet üzerinden yapıyor, biz sadece bu interneti bluetooth ile değiştirebilir miyiz? Yani arkaplanda bu iş nasıl çalışıyor ve bu duruma müdahale etme şansımız var mı? Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 29, 2016

Cevabınız için teşekkür ederim. Aslında ben de ilk başta google'da arama yapıyorum ama bazı konuları ne diye aratmam gerektiğini bilemiyorum. :). Bluetooth ile bağlantı kurulabildiğini biliyorum, aslında tam olarak sormam gereken mesela bir oyun var diyelim ve bu oyun internet ile multiplayer oynanabiliyor ama kullanıcı arkadaşıyla yan yana oldukları zaman internet olmadan bu oyunu birlikte oynamak istiyorlar. Acaba bunu bluetooth veya internetsiz başka bir sistemle yapabilir miyiz? Buradaki asıl durum oyunu veya uygulamayı bizim yapmış olmamamız ve haliyle kodları da elimizde mevcut değil. Bu arada suallerime çok yardımcı oluyorsunuz. Bunun için de ayrıca teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 29, 2016

Alıntı (İbrahim):

>

oyunlarda UDP protokolü mü kullanılıyor?

Ben de öyle duymuştum.

Alıntı:

>

bu sunucuyu internet üzerinden değil de bluetooth ile kurabilir miyiz?

"ip over bluetooth" diye aratınca öyle olduğunu görüyorum. (Soruların bazen çok özel konularla ilgili olduğundan hepsini bilen kişi bulman zor. Ben çoğu durumda senin yerine Google'luyorum. ;) )

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 29, 2016

Ben bu tür oyunları hiç bilmiyorum; tahmin ederek: Oyunun sunucuya bağlanma nedenine bağlı olarak değişir. Eğer yalnızca oyuncuların birbirine bağlanmaları için gerekiyorsa ve ondan sonra oyun programları (istemciler) artık hep birbirleri ile konuşuyorlarsa o zaman burada BlueTooth'tan ilgisiz olarak, örneğin evdeki router üzerinden de konuşulur.

Ama soruyu daha iyi anlıyorum: Eğer BlueTooth zaten IP bağlantısı sağlıyorsa ve iki oyuncunun routing table'ları o bağlantıyı tercih edecek biçimde ayarlanmışlarsa, herhalde ikisi doğrudan yerel olarak konuşurlar.

Birinci paragrafa dönersek, eğer oyun programları belirli aralıklarla veya sürekli olarak sunucuyla konuşmak istiyorlarsa o zaman zaten yapacak bir şey yok; verinin internet üzerinden gitmesi şart.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 01, 2016

Eğer oynamak istediğin oyun LAN üzerinden oynanabiliyorsa;

Bluetooth'a gerek yok. Ayrıca bluetooth kullanmak çok verimsiz olur. Bluetooth 2.0 ile veri aktarım hızı oldukça zayıf. FPS oyunlarında çok fazla takılma yaşarsın.

Counter Strike oynayacağını varsayıyorum. Eğer bilgisayarda kablosuz özelliği var ise (bluetooth olduğuna göre laptop olduğunu varsayıyorum ve bunun da cevabı evet sanırım) wireless ağı açman çok kolay :) Hatta program bile kullanmana gerek yok desem? :) (bkz. https://talhadurmus.com/windowsta-kablosuz-ag-olusturmak)

Android ve iOS hatta eski Symbian telefonlarda dahi kablosuz ağ açmak mümkün.

Diğer seçenek ise ethernet kablosu ile bilgisayarları birbirine bağlayabilirsin. Bir ucu senin bilgisayarına diğer ucu ise arkadaşının bilgisayarına bağlayabilirsin.

Oyun LAN üzerinden oynanamıyor bir sunucu gerektiriyorsa;

Eğer oyun yapımcıları paylaşmışsa sunucu dosyalarını kendi bilgisayarından sunucu açabilirsin.

Mevcut değilse kendin bir emulator yazabilirsin. Örneğin telefon uygulaması olan Clash of Clans için emulator yazmışlardı zamanında. Uygulamayı decompile edip trafiği izleyip protokolü çözüp sunucu kısmını baştan kodlamışlardı. Benzer bir durum GTA Online için de geçerli ancak bu illegal olduğu için dağıtıcı firma proje yayınlanamadan sonlanmasını sağlamıştı.

Diğer soruna ek olarak söyleyebileceğim;
FPS oyunlarında her saniye paket gönderilir ve her gelen paket bir öncekini geçersiz kılabilir. Sunucu paketi mümkün olan en hızlı şekilde yollamaya çalışır ve paketin karşı tarafa ulaşıp ulaşmamasının bir önemi yoktur. Ayrıca TCP paketleri UDP paketlerinden daha büyük bu da trafiği arttırır. Yani sürekli bir senkronizasyon var ise UDP kullanılması daha verimlidir.

TCP yi daha çok verinin karşı tarafa ulaşmasından emin olmak istediğinde kullanabilirsin. Örneğin bir mesajlaşma uygulamasında mesajın ulaşıp ulaşmadığını bilmek ve ulaşmamışsa tekrar göndermek önemlidir. Mesaj doğru ve başarılı bir şekilde ulaştığında sunucuya geri mesaj gönderilir.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]