Hocam nodejs & websocket ikilisi real-time için pek de yavaş sayılmaz aslında, bir çok online oyunda websocket ve nodejs kullanılıyor diye biliyorum. Agar-io da bu şekilde, yanılmıyorsam. Bir de servesless sistemler var, AWS Lambda yı bu konu için araştırabilirsin . Bu sistemlerde sunucuyla ilgilenmiyorsun! Ama çok vaktin yoksa bunlara bakmaya şimdilik gerek yok derim, projene odaklan, elindeki malzemelerle yapmak istediğini yapabilecek gibiysen yap. Ayrıca aşağıdaki konu başlıklarını incelersen, bazı konularda fikir edinebilirsin. Ben teşekkür ederim, kolay gelsin.. http://www.tahribat.com/forum/database-tavsiyesi-alayim-223020 http://www.tahribat.com/forum/websocket-sikintisi-ve-cryptology-221400 http://www.tahribat.com/forum/hangi-tur-database-hangi-database-221045 http://www.tahribat.com/forum/cloud-bulut-yapisi-ve-turkiyedeki-vehameti-217862 http://www.tahribat.com/forum/php-rest-api-guvenligi-nasil-saglanir--217724 http://www.tahribat.com/forum/buyuk-projelerde-izlediginiz-adimlar-213397 http://www.tahribat.com/forum/projeyi-tutturmanin-formulu-nedir--211639

Online bir oyun geliştirmeyi düşünüyorum. Kafa topu tarzında iki karakter arasında kapışma olacak. Arayüz ise agar mantığında olacak. Kullanıcı adı gir ve oyna tarzı. Düşündüğüm oyunu rahat bir şekilde PhotonEngine adlı kütüphane ile geliştirebilirim. Fakat aylık ücreti 90$ ve limitleri var. Bu yüzden kendi serverımı oluşturup kullanmak istiyorum. Okuduğum yorumlarda çoğu kişi online oyunlarda TCP'den daha hızlı olduğu için UDP'yi nermiş. Bu yorumlardan yola çıkarak server kısmını Java, client kısmını ise C# ile kodlamayı düşünüyorum. Nasıl bir server satın almalıyım? Hangi server benim ihtiyacımı karşılar? rneğin Corelux'daki aylık 30TL'lik server ile oyunda online kaç kişi olabilir? Bahsettiğim 30TL'lik server bilgileri : Yeni Nesil Xeon İşlemci1 GB Ram40 GB DiskLimitsiz Trafik!1 Adet IP Adresi100 Mbit Taban HatTürkiye Lokasyon Oyunun altyapısı ise kısaca şu şekilde olacak. Oyuna girdiğinde kullanıcı adı belirleyecek, maç arayacak. Maç arama kısmında serverdan aldığı açık olan odalardan birisine girecek. Açık oda yoksa oluşturacak. Odaya girincede sürekli olarak pozisyonunu servera iletecek. Websocket'i daha nce denemedim. İlk defa kullanacağım. Bu konu hakkında grüşleriniz, nerileriniz ve dikkat etmem gereken noktalar nelerdir?

Hocam Agar'ı yazan elemanın reddit'de galiba bir yazısı vardı. Herif C yada C++ gibi bir dille server'ı yazmıştı. Sebebide networku ancak handle edebilmesi diye hatırlıyorum. Eğer sen Agar gibi çok oyunculu yapıcaksan başka, iki kişilik dealler şeklinde olacaksa başka. UDP'ninde sana dezavantajları var, inconsistent durumlar oluşacak falan filan. Butür realtime oyunlar için bu konuları handle etme yntemleri var. Mesela kafa topu oyununu yapan elemanlar şyle birşey geliştirmişler; oyuncular arasında internet bağlantısı boka sararsa interneti ktü olan elemanın oyununu bilgisayar yerine oynuyor ve düzelince internet kontorlu ona bırakıyor gibi. Realtime online oyun için birazda bu kısımlara bakmak lazım gibi sadece dil-protocol gibi şeylere takılmak için erken gibi. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

ncelikle kolay gelsin, Websocket TCP protokolü üzerinden iletişim kurar, UDP değil. İşleyişi standart, bağlantı aç, mesaj gnder, mesaj al, bağlantı kapat vs.. UDP ile bir uygulama yazmadım, çok bilgim de yok. UDP de veri kaybı olabiliyor, bunu dikkate alman gerekir. Küçük başla, hatta dikey değil yatay olarak lçeklenebilir, genişletilebilir sistemler yaz hocam . n-tier şeklinde çalışma yürütmek faydalı olabilir: https://eksisozluk.com/n-tier--133223 veya https://en. wikipedia. org/wiki/Multitier_architecture verileri güvenilir bir sunucuda ya da veritabanı hizmeti sağlayan bir serviste tutup, bunun nüne tüm matematiksel/mantıksal işlemleri yürütecek, iletişim kuracak küçük-küçük ve stateless uygulamalar yazarsan ileride trafikte bir yoğunluk oluşursa daha kolay üstesinden gelirsin. Sunucu olarak https://www.scaleway.com/pricing/ adresindeki sunucu paketlerini tavsiye ederim, pişman olmadım.

@RockZs Tcp'de paket gnderildiğinde server o paketi alamazsa tekrar gnderiyor, Udp'de ise sadece bir kere gnderiliyor anladığım kadarıyla. Arkadaşım NodeJs-Socket.io ile Tcp üzerinden bir deneme yapmıştı ama realtime için yavaş kalıyor demişti. Bu yüzden Udp bağlantısı ile yapmak istedim. Oyunda karakterler sabit olup obje spawn edecekleri için şuanda Tcp bağlantısı ile localde, sonra server üzerinde deneme yapmayı, eğerki sylendiği gibi yavaş kalırsa o zaman Udp'ye geçmeyi düşünüyorum. Horizontal scaling, n-tier gibi terimleri bilmiyordum. Bunlarıda araştıracağım. Yorumun için teşekkürler.