Tarayıcı Tabanlı MMO'lar (WebGL, WebSocket) [kapalı]


29

Tarayıcı JavaScript - grafikler için WebGL ve Ağ için WebSocket ile tam teşekküllü bir 3D MMO istemcisi yazmanın teknik olarak mümkün olduğunu düşünüyor musunuz?

  • Gelecekteki MMO'ların (ve genel olarak oyunların) WebGL ile yazılacağını düşünüyor musunuz?
  • Günümüzün JavaScript performansı buna izin veriyor mu?
  • Diyelim ki geliştirme ekibiniz bir geliştirici olarak siz ve başka bir model yaratıcısı (sanatçı). Oyun için SceneJS gibi bir kütüphane mi kullanırsın , yoksa düz bir WebGL mi yazarsın? Bir kütüphane kullanır, ancak SceneJS kullanmazsanız, lütfen hangisini belirtin.

GÜNCELLEME (Eylül 2012): RuneScape, Java uygulamaları bugüne kadar onların istemci (HTML5 kullanacağını açıkladı kullanılan çok popüler bir 3D tarayıcı tabanlı MMORPG kaynak ).

Runescape HTML5

Java (solda) ve HTML5 (sağda)

GÜNCELLEME (Haziran 2013): Bir WebGL / WebSocket tabanlı MMO prototipi yazdım: https://github.com/alongubkin/xylose


3
Mozilla Firefox ve Opera güvenlik nedenlerinden dolayı websocket desteğini düşürdü: heise.de/security/meldung/… Ağ öğelerinin çapraz tarayıcı soyutlaması için bkz. Gamedev.stackexchange.com/q/6524/450 .
Hendrik Brummermann,

2
Bu soruların üçünün de ilginç olduğunu düşünüyorum, ancak onları üç soruya bölmeyi tercih ederim. Aklımda onlar çok az ilgili.

2
Teknik olarak mümkün, evet. Gerçekçi olarak başka bir konudur.
Komünist Ördek

Bir yandan not olarak: Google WebGL’de
Alex Beardsley

Benim varsayım, sorunuzun bir 3D MMO anlamına geldiğidir. 3D, bu tür için bir gereklilik değildir ve aslında birçok MMO web'de yıllarca HTML formlarından daha az miktarda bulunmaktadır (Bkz. Urbandead.com ) Gameforge'daki tüm PHP oyunlarından bahsetmiyorum ( en.gameforge.com ) Lord of Ultima ( lordofultima.com ) gibi daha egzotik bir AJAX / Javascript olayı
wkerslake

Yanıtlar:


7

Tarayıcı JavaScript - grafikler için WebGL ve Ağ için WebSocket ile tam teşekküllü bir 3D MMO istemcisi yazmanın teknik olarak mümkün olduğunu düşünüyor musunuz?

Evet kesinlikle. WebGL veya WebSocket teknolojisinin 3D MMOG istemcisi veya herhangi bir oyun istemcisi yapmanıza engel olmasının bir nedeni yoktur.

Gelecekteki MMO'ların (ve genel olarak oyunların) WebGL ile yazılacağını düşünüyor musunuz?

Evet. Önümüzdeki beş yıl içerisinde çoğu 3D tarayıcı oyununun WebGL kullanılarak yazılacağına inanıyorum. Nedeni basit - WebGL, her büyük web tarayıcısında (Chrome 9, Firefox 4, Safari 6 ve Internet Explorer, Chrome Frame aracılığıyla) kullanılabilen tek standartlaştırılmış 3D teknolojisidir.

Günümüzün JavaScript performansı buna izin veriyor mu?

Evet. Modern tarayıcılarda JavaScript performansı, 3D oyun geliştirmenin mümkün olduğu noktaya yükseldi. Örneğin, Three.js projesine bakın .

Diyelim ki geliştirme ekibiniz bir geliştirici olarak siz ve başka bir model yaratıcısı (sanatçı). Oyun için SceneJS gibi bir kütüphane mi kullanırsın, yoksa düz bir WebGL mi yazarsın? Bir kütüphane kullanır, ancak SceneJS kullanmazsanız lütfen hangisini belirtin. Teşekkürler!

Zaman kazanmak için bir kütüphane kullanın. İhtiyacınız olan mevcut bir kütüphane eksik değilse, kendi WebGL grafik kodunuzu yazmanız için hiçbir sebep yoktur. Bu durumda bile, mevcut kütüphaneyi genişletmek daha fazla zaman alacaktır.

Projem için birçok farklı grafik efektini desteklediği ve sürekli olarak yenileri ile güncellendiğinden GLGE kullanıyorum .


2
"Gelecek MMO'ların (ve genel olarak oyunların) WebGL ile yazılacağını düşünüyor musunuz?" ve cevabı "Evet. Gelecek beş yıl içerisinde çoğu 3D tarayıcı oyununun WebGL kullanılarak yazılacağına inanıyorum." birbirleri için kesin bir eşleşme değildir ...
Kylotan

5

Orada zaten birkaç Tarayıcı tabanlı MMO var. Genellikle 3D grafik kullanmazlar.

WebGL'ye gelince biraz şüpheciyim. Mevcut tarayıcılar normal sürümlerinde WebGL'yi desteklemiyor. Bir eklenti indirmekten ziyade ortalama bir kullanıcı için daha karmaşık olan özel yapılar edinmeniz veya config dosyaları ile uğraşmanız gerekecek.

Eklentilerden bahsetmek: Birkaç kişi Birlik'ten bahsetti, ancak Flash'ı unutma. Flash oynatıcısının yeni sürümünde (kod adı köstebek yuvası ) GPU hızlandırmalı 3B olacak. Tahminimce, bu flaş WebGL başlamadan önce tarayıcıda donanım hızlandırmalı 3D grafikler sağlayacak.


1
Webgl destekli kararlı bir tarayıcı sorunu Ocak 2010 ya da öylesine gerçekleşmemeli. Firefox 4 ve Chrome 9 yaklaşık olarak ortaya çıkacak. Chrome 9 beta’nın yüklenmesi oldukça basittir ve webgl’i etkinleştirmek için hiçbir şeyle uğraşmanız gerekmez. Beta sürümüne bağlantı, krom için normal indirme bağlantısına aittir.
Nicolas K.

@ Nicolas K. - Ocak 2011 mi demek istiyorsun ?
DMan

1
@ Nico K - Bir tarayıcının kullanılabilirliği ve tarayıcının temelini yüklemek çok farklı şeylerdir. İnternet trafiğinin% 13'ü hala IE6. Kaynak: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake

@DMan: Muhtemelen, çünkü şimdi çıktı. Birisi WebGL kullanarak

1
@wkerslake: Bu istatistikler çok çirkin. Günde yarım milyon tekil ziyaretle ortalama internet tüketicisine yönelik bir site tutuyorum ve bunların% 1'inden azı Internet Explorer 6 kullanıyor (yaklaşık 1 / 3'ü Internet Explorer 7/8/9 kullanıyor). Firefox ve Chrome, trafiğin% 50’sini oluşturuyor ve kendilerinin güncellenen tarayıcıları, insanların çoğunluğunun birkaç ay içinde WebGL desteği alacağı anlamına geliyor. Bir oyunun gelişimi kolayca 6 ay sürebildiğinden, insanları WebGL'yi kullanmaktan caydırmak için hiçbir neden görmüyorum.
Blixt

3

Teknik olarak mümkün mü? Evet. Peki, Unity gibi web çözümleri mevcut olduğunda neden rahatsız ediyorsunuz?

WebGL'de yazılmış gelecekteki MMO'lar? Hayır. Belki de ama şu anda iyi olan Unity gibi web tabanlı eklentiler var.

Bugünün JavaScript performansı buna izin veriyor mu? Hayır. Evet, oyununuzu basit tutarsanız.

SceneJS [...] gibi bir kütüphane kullanır mıydınız veya düz bir WebGL yazar mıydınız? Ne. Birlik gibi bir üçüncü taraf uygulamasını kullanırdım.


4
Cevabınız yanlış, çelişkili ve kötü biçimlendirilmiş. Çok sert olduğum için üzgünüm. Op sadece birliği kullanması gerektiğini düşünüyorsanız, sorusuna yaptığı yorumda bunu söyleyin.
oberhamsi

İronik olarak oberhamsi, orjinal cevabım "Birlik Kullan" demişti, ama soruyu daha doğrudan cevaplamam gerektiği söylendi.
Tim Holt

1
Tamam, yeterince adil. Birliğin, tarayıcıda yerel olarak yapmaya çalışarak çok farklı bir canavar olduğunu düşünüyorum. Tabii, bir eklenti ile her şeyi yapabilirsiniz ama soru bana görünüyor: Yerel tarayıcı teknolojilerinin sınırları nedir.
oberhamsi

2

Bu şu anda mümkün değildir (2011 başında). Yerel, tarayıcı teknolojilerinde gerçek zamanlı bir 3D MMO oluşturamazsınız (eklenti yok).

Gelecek hakkında spekülasyon yapmayacağım. Şu an böyle görünüyor. Yalnızca modern tarayıcıları (IE9, FF4, vb.) Hedeflediğinizi varsayalım. IE7'yi desteklemeyi planlıyorsanız, o zaman delisiniz. Bu asla işe yaramayacak.

Eksik şeyler:

  • Klavye ve fare üzerinde tam kontrol (fare pozisyonunu ayarlama, tuşa basma yeteneği)
  • Tam ekran
  • 3 boyutlu

Ciddi problemli alanlar / çözümler:

  • WebSockets şimdi onu destekleyen birkaç tarayıcıda devre dışı bırakıldı
    • onsuz: şimdi düşük gecikme süresi, iki yönlü istemci-sunucu iletişimi
  • ses sorunları
    • codec karışıklık, ogg ve mp3 gerekir
    • ortak frekanslar desteklenmiyor
    • concurrancy
    • gecikme
  • tuval performansı (bazı durumlarda divs ve css dönüşümleri yapmak daha hızlıdır)

1

Evet, ama büyük uyarılarla.

Tam klavye kontrolüne sahip olmayacaksınız ve birçok kontrol düşkünleri için bu bir anlaşma kırıcı olabilir. Örneğin F tuşları bir süre daha erişilemeyecektir.

Siz de çoğu tarayıcıya ulaşamayacaksınız. WebGL henüz tam olarak desteklenmiyor ve websocket desteği bugünlerde bazı tarayıcı satıcıları tarafından tek bir sürüm için etkinleştirildikten sonra bir sonraki için devre dışı bırakılarak vurularak kaçırıldı.

Ama basit bir şeyi bir araya getirebilirsiniz, elbette. Biraz zorlayıcı bir oyun atın ve grafiklerin biraz düşük anahtar olması farketmez. Runescape oldukça basit bir şekilde başladı ve herkes bir tarayıcı eklentisinde yaratılan bir MMO'nun bir rüya olduğunu söylediğinde karmaşık, eğlenceli ve inanılmaz popüler bir MMO haline geldi.

Her şey değiştikçe adapte olan tarayıcılar için geçerli sınırları içeren bir MMO, tarayıcıların bir "AAA" MMO'yu desteklemeye yeteri kadar yeteceği bir süreye kesinlikle sahip olacaktır.


1
Modern tarayıcıların hemen hepsi işlev tuşlarını desteklemektedir ( quirksmode.org/js/keys.html#link6 ). Aslında, bu sayfa en az birkaç yaşında ve modern tarayıcılarda onlar için destek muhtemelen daha da iyi.
Ricket

1

Kesinlikle evet.

WebGL, hem WebKit (Chrome / Safari) hem de Gecko (Firefox) 'un gece yapılarına dahil edilmiştir. WebSockets şu anda güvenlik sorunları nedeniyle devre dışı bırakılmış, ancak sorunlar çözüldükten sonra yeniden etkinleştirilmemelerinin bir nedeni yok. Bu arada her zaman HTTP vardır.

Tüm oyunlar bu şekilde yazılacak mı? Hayır, ama önemli bir sayı olacak. WebGL, Chrome ve Firefox’un son sürümlerinde olduğunda, penetrasyon zaten Unity gibi yerel eklentilerden daha yüksek olacaktır.

JavaScript performansı kesinlikle oyun yazmaya bağlıdır. Muhtemelen bir süredir bir Crysis grafik düzeyi görmeyeceksiniz, ancak WebGL ile hatırlayın, sayıları azaltma GPU'ya yüklenmiştir.

2 kişilik küçük bir ekip için, kullandığınız motorun çoğunu kodlamaya hazır olmanız gerekir. Şu anda oyun kodunun çoğunu kaplayan herhangi bir WebGL / JavaScript motoru yok. SceneJS, three.js ve benzerleri, grafik katmanındaki sarmalayıcılardır, ancak Unreal Engine veya Unity gibi bir ürünün yığınını oluşturan çarpışma, fizik, ses, kaynak yükleme, ağ veya araçlar için hiçbir şey sağlamaz.

Şu an erken günlerde, gelecek yıl içinde daha fazla ara katman yazılımı görmeyi beklerdim.


0

Pek çok MMO geliştiricisi, herhangi bir müşteri tarafı tarayıcı teknolojisi ile yazılacağını sanmıyorum çünkü çoğu MMO geliştiricisi, aynı dili istemci ve sunucu arasında kullanmak isteyecek ve oyun geliştiricilerin çoğu, C ++ gibi web dışındaki dillerde akıcı. Javascript'te oldukça önemsiz simülasyonlar dışında zaten çok pratik yapmak için çok fazla müşteri kodu var. Tipik bir oyun geliştirici için lezzetsiz olan tarayıcıda çalıştırmanın getirdiği başka sınırlamalar da vardır.

Ancak bunun gibi bazı oyunlar olacağına eminim . Bir süredir WoW ya da benzer oyunlardan devralmayacaklar. Muhtemelen daha çok web geliştiricileri, oyun geliştiricilerin internete girmesi yerine oyunlara girmesiyle daha da kolaylaşacaktır.


Vekil aşağıdan cevaplarıma nasıl katıldığını açıklayan bir yorum eklemek istiyor mu? Sadece merak ediyorum. :)
Kylotan

0

Kendinize sormanız gereken soru, oyun geliştiricilerin neden usta olmadıkları ve kontrolleri olmayan web teknolojisine bağlı olmak istemeyecekleri, mevcut dilbilgileri bir web tarayıcısında bile harika oyunlar yapmanıza izin veriyor mu?


0

Evet, ancak teknolojinin hala dengelenmesi gerekiyor ve büyük olasılıkla yerel uygulamalara kıyasla performans değişimleri devam edecek.


-3

Birlik iyidir. Ayrıca bkz. Shiva ve Prime Engine.


1
Birlik ve Prime Engine'in, belirtilen teknolojilerle hiçbir ilgisi yok. Bunlar yerel kod eklentileridir.
Kylotan

1
"Hayır, bunu yapmak iyi bir fikir değil, ancak alternatifler." "Hayır ama burada bir alternatif" diyen cevaplar sadece "Hayır" dan çok daha fazla tercih edilir
Tim Holt

3
Bazen aynı fikirdeyim ama nadiren. Birisinin aklını okumaya çalışmak ve gerçekte ne yapmak istediklerini tahmin etmek tehlikesi var, asıl soru tamamen kendi başına meşruyken. Birisi X'in uygunluğunu sorarsa, daima "sadece Y kullan" ile cevap vermemeliyiz. En azından, X hakkında daha fazla şey
öğrenmemiz

Hangi kütüphaneyi kullanacağına ilişkin sorusunu cevaplamak için cevabımı tekrar yazacağım. Unity "kütüphanesini" kendim kullanırdım: P
Tim Holt

En yüksek oy alan cevap temelde aynı şeyi söylüyor ..
Hata 454
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.