HTML5 ile çok oyunculu oyunlar geliştirmek mümkün müdür?


9

HTML5'in web oyunları için harika olduğunu biliyorum, ancak herkesin senkronize olmasını ve oturum açma işlemlerini, et cetera'yı tutarak, birden fazla kullanıcıyla çevrimiçi oyunlar geliştirmenin mümkün olup olmadığını gerçekten bilmiyorum. Bunu yapmak mümkün mü?

Yanıtlar:


7

Yalnızca HTML5 ile yazamazsınız. Tarayıcı komut dosyasının güvenlik sınırları nedeniyle ve aynı zamanda hile yapmayı önlemek için kullanıcılar arasında iletişimi sağlamak için her zaman komut dizisine ve bir sunucuya ihtiyacınız olacaktır.

Birçok kişi çok oyunculu html5 oyunları yazdı, ben bile var. Html5'in kendisi muhtemelen en önemli kısmı değildir. İhtiyaç duyulan şeylerin çoğu (hepsi değilse de) html 4.01'de de mevcuttu. İstisna tuvaldir, ancak tuval svg'den daha yavaştır ve svg zaten birçok tarayıcıda mevcuttu.

Ben gerçekten "html5 oyun" mani doğdu ne javascript sunucu tarafı uygulamaları yapmak için yeteneği olduğunu düşünüyorum. Bu, tüm istemci tarafı programcılarının aniden tüm sistemi kendileri yapabileceği ve oyun gibi şeyler söz konusu olduğunda genellikle yaratıcı insanlar oldukları anlamına gelir. JS'nin o kadar kolay olduğundan bahsetmiyorum bile, büyükanneniz bile onunla programlayabilir. Olabilir.

OP'nin yorumundan sonra güncelleme:

Bir tarayıcı oyunu için ortak bir mimari

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

Veya gerçek "diller" açısından:

  • Müşteri görünümü: HTML5 (muhtemelen angular.js ile, henüz LOTS'nin ne kadar hızlı olduğunu test etmedim. "Grafikler" için raphael.js'ye de göz atın)
  • İstemci mantığı: JavaScript (jquery / vapor / plain / whatever)
  • İstemci veritabanı: WebSQL (sanırım HTML5 "paketinin" parçası)
  • İletişim: socket.io (optimum iletişim protokollerini otomatik olarak algılamak için JS kitaplığı) üzerinden JSON (Javascript nesne gösterimi, temelde serileştirilmiş javascript nesneleri)
  • Sunucu dili: ayrıca JS (birkaç çekirdekte TONS eşzamanlı kullanıcısı varsa node.js, diğer çözümler de mevcuttur)
  • Doğrulama: sadece GELEN oyun verilerinizin (istemciden) geçerli olduğundan emin olun. Gidenin kontrol edilmesi gerekmez, istemcide bile. Doğru olduğu varsayılır. Daima .
  • Oyun Dünyası: Geldiklerinde tüm müşterilere yeniden dağıtılan DOĞRULANMIŞ veri koleksiyonu
  • Sunucu veritabanı: couchdb, mongodb, çalışmak için ham json nesneleri veren herhangi bir veritabanı.

İşte buradasın. Sadece javascript ve html kullanılarak yazılmış tam bir internet oyunu. Güzel.


Cevabınızı çok ilginç buluyorum, hangi parçaları baştan sona inşa etmem (en önemli) ve her bölümde hangi teknolojilerin beslenmesi gerektiği konusunda biraz tavsiyede bulunabilir misiniz, bunun için üzgünüm, sadece güvenilir bir şeyi nasıl inşa edeceğinizi bilmeye çalışıyorsunuz . Teşekkürler!
arrrrgv

1
+1, HTML5 öfke, ancak insanların buna atfettikleri çoğunlukla 4.01 işlevselliği ve JavaScript. Yine de sizden JavaScript'i kolay aramamanızı isteyebilir miyim? Bunun avantajları var, ancak gerçek programlar yazmak istiyorsanız, gerçek bir programcı olmalısınız. JavaScript, değişken bildirim ve bellek yönetimi işlerini ortadan kaldırır, ancak kodunuzu düzenlemeyi ve algoritmaları ve veri yapılarını bulmayı daha kolay hale getirmez ve bu görevler için kesinlikle bir programcı zihniyetine ve deneyimine ihtiyacınız vardır.
aaaaaaaaaaaa

@eBusiness kolay olarak kastettiğim, programlama açısından çok yoğun olması ve kullanım durumlarının ölümle belgelenmesidir. Her zaman bir öğretici veya istediğinizi yapan bir işlev bulabilirsiniz. Kurulumu kolaydır (gerek yoktur, zaten tarayıcıdadır).
Tor Valamo

@arrrrgv, sorunuzun yanıtı olan güncellenmiş gönderi
Tor Valamo

1
Güzel bir yanıt için +1, ancak HTML5 oyunlarının yükselişinin sunucu tarafı JavaScript ile ilgisi olduğundan şüphe duyuyorum. Kesin olarak söylemek gerekirse JS HTML5'in bir parçası bile değildir. Tuval, webGL, ses ve video ve yerel depolama gibi HTML5 oyunlarına destek veren yeni özellikler olduğunu düşünüyorum. Ve elbette yeni ve sinirli olduğu için herkes bandwagonu atlıyor.
bummzack

3

Http://smus.com/multiplayer-html5-games-with-node adresindeki makaleye ve ayrıca makaleyle birlikte sağlanan kaynağa göz atın . Bunun ağ için JavaScript kullandığını unutmayın.


2
Karışıklığı önlemek için lütfen "JavaScript" i tek bir kelime olarak yazın.
o0 '.

Bir gün, Node.js gerekli olmayacaktır - web soketleri için çapraz tarayıcı desteği yaygın olduğunda.
Mühendis

Web soketleri için çapraz tarayıcı desteğinin neden herhangi bir tarayıcının dışındaki bir sunucu bileşenine olan ihtiyacı değiştirdiğini anlamıyorum. İstemcilerin doğrudan istemciden istemciye değil, merkezi bir sunucuya bağlanması için her zaman çok oyunculu bir oyun programlamanız gerekir.
jhocking

1
Ayrıca NowJS ( nowjs.com )
Tim Holt

web soketleri, herhangi bir uygulama için doğal olarak güvenli değildir, bu nedenle planlanan uygulamanın birçok tarayıcı tarafından terk edilmesinin nedeni budur. "herhangi bir yere" erişim sağlayan bir ortama izin veremezsiniz ve aynı zamanda "herhangi bir yerden" girdi alabilir.
Tor Valamo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.