MMO basati su browser (WebGL, WebSocket) [chiuso]


29

Pensi che sia tecnicamente possibile scrivere un client MMO 3D completo con Browser JavaScript - WebGL per la grafica e WebSocket per la rete?

  • Pensi che i futuri MMO (e giochi in genere) saranno scritti con WebGL?
  • Le prestazioni JavaScript odierne lo consentono?
  • Supponiamo che il tuo team di sviluppo sia stato tu come sviluppatore e un altro creatore di modelli (artista). Utilizzeresti una libreria come SceneJS per il gioco o scriveresti direttamente WebGL? Se desideri utilizzare una libreria, ma non SceneJS, specifica quale.

AGGIORNAMENTO (settembre 2012): RuneScape, che è un MMORPG basato su browser 3D molto popolare che finora ha utilizzato applet Java, ha annunciato che utilizzerà HTML5 per il proprio client ( sorgente ).

Runescape HTML5

Java (a sinistra) e HTML5 (a destra)

AGGIORNAMENTO (giugno 2013): ho scritto un prototipo di MMO basato su WebGL / WebSocket: https://github.com/alongubkin/xylose


3
Mozilla Firefox e Opera hanno appena abbandonato il supporto del websocket per motivi di sicurezza: heise.de/security/meldung/… Vedi gamedev.stackexchange.com/q/6524/450 per l'astrazione cross-browser delle cose di rete.
Hendrik Brummermann,

2
Penso che tutte e tre queste domande siano interessanti, ma preferirei che fossero divise in tre domande. Nella mia mente sono a malapena imparentati.

2
Tecnicamente è possibile, sì. Realisticamente è un'altra questione.
Il comunista Duck il

Come nota a margine: Google ha creato una libreria JavaScript su WebGL che è piuttosto interessante: code.google.com/p/o3d
Alex Beardsley

La mia ipotesi è che la tua domanda implichi un MMO 3D. Il 3D non è un requisito per il genere, e in effetti molti MMO esistono sul web da anni come poco più dei moduli HTML (Vedi urbandead.com ) Per non parlare di tutti i giochi PHP di Gameforge ( en.gameforge.com ) o le cose più esotiche AJAX / Javascript come Lord of Ultima ( lordofultima.com )
wkerslake,

Risposte:


7

Pensi che sia tecnicamente possibile scrivere un client MMO 3D completo con Browser JavaScript - WebGL per la grafica e WebSocket per la rete?

Si assolutamente. Non vi è alcun motivo per cui la tecnologia WebGL o WebSocket potrebbe impedirti di creare un client MMOG 3D o qualsiasi client di gioco per quella materia.

Pensi che i futuri MMO (e giochi in genere) verranno sbriciolati con WebGL?

Sì. Credo che entro i prossimi cinque anni, la maggior parte dei giochi per browser 3D sarà scritta usando WebGL. Il motivo è semplice: WebGL è l'unica tecnologia 3D standardizzata che avrà implementazioni disponibili in tutti i principali browser Web (Chrome 9, Firefox 4, Safari 6 e Internet Explorer tramite Chrome Frame).

Le prestazioni JavaScript odierne lo consentono?

Sì. Le prestazioni di JavaScript nei browser moderni sono aumentate al punto da rendere possibile lo sviluppo di giochi 3D. Ad esempio, vedere il progetto Three.js .

Supponiamo che il tuo team di sviluppo sia stato tu come sviluppatore e un altro creatore di modelli (artista). Utilizzeresti una libreria come SceneJS per il gioco o scriveresti direttamente WebGL? Se desideri utilizzare una libreria, ma non SceneJS, specifica quale. Grazie!

Usa una biblioteca per risparmiare tempo. Non vi è alcun motivo per scrivere il proprio codice grafico WebGL a meno che in una libreria esistente non manchino le funzionalità necessarie. Anche in quel caso, probabilmente sarebbe più efficiente in termini di tempo estendere la libreria esistente.

Per il mio progetto, sto usando GLGE in quanto supporta molti effetti grafici diversi e viene costantemente aggiornato con nuovi.


2
La domanda "Pensi che i futuri MMO (e giochi in genere) verranno sbriciolati con WebGL?" e la risposta "Sì. Credo che entro i prossimi cinque anni, la maggior parte dei giochi per browser 3D sarà scritta usando WebGL." non sono una partita precisa l'uno per l'altro ...
Kylotan,

5

Esistono già diversi MMO basati su browser. Di solito però non usano la grafica 3D.

Sono un po 'scettico quando si tratta di WebGL. L'attuale crop di browser non supporta WebGL nelle loro normali build di rilascio. Dovrai ottenere build speciali o pasticciare con i file di configurazione, il che è più complicato per l'utente medio rispetto al download di un plug-in.

Parlando di plugin: diverse persone hanno menzionato Unity, ma non dimenticare Flash. Una prossima versione di Flash Player (nome in codice molehill ) avrà 3D accelerato dalla GPU. La mia ipotesi è che il flash fornirà grafica 3D con accelerazione hardware nel browser prima che WebGL decolli.


1
Il problema del browser stabile con supporto webgl non dovrebbe verificarsi dopo gennaio 2010 o giù di lì. Firefox 4 e Chrome 9 dovrebbero uscire in quel momento. Chrome 9 beta è piuttosto semplice da installare e non richiede problemi con nulla per abilitare webgl. Il link all'edizione beta è il seguente link di download regolare per Chrome.
Nicolas K.

@Nicolas K. - Intendi gennaio 2011 ?
DMan,

1
@Nicolas K - La disponibilità di un browser e la base di installazione di un browser sono cose molto diverse. Il 13% del traffico Internet è ancora IE6. Fonte: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake,

@DMan: Probabilmente, dato che è ora disponibile. Non vedo l'ora che qualcuno riesca a capire come eseguire il bluescreen (o il panico del kernel, o qualunque cosa faccia Mac) un driver OpenGL

1
@wkerslake: quelle statistiche sono scandalose. Gestisco un sito rivolto al consumatore medio di Internet con mezzo milione di visite uniche al giorno e meno dell'1% di esse utilizza Internet Explorer 6 (circa 1/3 utilizza Internet Explorer 7/8/9). Firefox e Chrome rappresentano il 50% del traffico e sono browser autoaggiornamento che significano che la maggior parte delle persone avrà il supporto WebGL installato entro pochi mesi. Poiché lo sviluppo di un gioco può facilmente richiedere 6 mesi, non vedo alcun motivo per scoraggiare le persone dall'utilizzare WebGL oggi.
Blixt

3

Tecnicamente possibile? Sì. Ma perché preoccuparsi quando sono disponibili soluzioni web come Unity?

Futuri MMO scritti in WebGL? No. Ok forse, ma ci sono plugin basati sul web come Unity che funzionano bene in questo momento.

Le prestazioni JavaScript di oggi lo consentono? No. Ok sì, se mantieni il gioco semplice.

Utilizzereste una libreria come SceneJS [...] o scriverete direttamente WebGL? Né. Vorrei utilizzare un'applicazione di terze parti come Unity.


4
La tua risposta è sbagliata, contraddittoria e mal formattata. Mi dispiace essere così duro. Se pensi che op debba semplicemente usare l'unità, dillo in un commento alla sua domanda.
Oberhamsi,

Ironicamente oberhamsi, la mia risposta originale diceva semplicemente "Usa unità", ma mi dissero che dovevo rispondere alla domanda più direttamente.
Tim Holt,

1
Va bene, abbastanza giusto. Penso che l'unità sia una bestia molto diversa rispetto al tentativo di farlo nativamente nel browser. Certo, puoi fare qualsiasi cosa con un plugin, ma la domanda mi sembra: quali sono i limiti delle tecnologie native del browser.
Oberhamsi,

2

Questo non è fattibile in questo momento (inizio 2011). Non è possibile creare un MMO 3D in tempo reale nelle tecnologie native del browser (ovvero senza plug-in).

Non speculerò sul futuro. Ecco come appare adesso. Supponendo di indirizzare solo i browser moderni (IE9, FF4, ecc.). Se hai intenzione di supportare IE7, allora sei pazzo. Non funzionerà mai.

Cose mancanti:

  • pieno controllo su tastiera e mouse (possibilità di impostare la posizione del mouse, intercettazione dei tasti)
  • a schermo intero
  • 3D

Aree / soluzioni con gravi problemi:

  • I WebSocket ora sono disattivati ​​nei pochi browser che lo supportano
    • senza di essa: ora comunicazione client-server bidirezionale a bassa latenza
  • problemi audio
    • pasticcio di codec, hai bisogno di ogg e mp3
    • frequenze comuni non supportate
    • concurrancy
    • ritardo
  • performance su tela (in alcuni casi fare trasformazioni div e css è più veloce)

1

Sì, ma con importanti avvertenze.

Non avrai il controllo completo della tastiera e, per molti maniaci del controllo, questo potrebbe essere un problema. I tasti F, ad esempio, rimarranno probabilmente fuori portata per un bel po 'di tempo.

Non sarai nemmeno in grado di colpire la maggior parte dei browser. WebGL non è ancora ben supportato, e il supporto websocket è incostante in questi giorni, con alcuni fornitori di browser che lo abilitano per una versione, quindi disabilitarlo per la successiva.

Ma puoi mettere insieme qualcosa di semplice, certo. Immergiti in un gameplay avvincente e non importa che la grafica sia un po 'discreta. Runescape è iniziato piuttosto semplice e si è trasformato in un MMO complesso, divertente e incredibilmente popolare, quando tutti dicevano che un MMO creato in un plug-in del browser era un sogno irrealizzabile.

Un MMO creato tenendo conto dei limiti attuali per i browser che si adatta al cambiamento delle cose avrebbe sicuramente un vantaggio quando i browser sono abbastanza lontani da supportare un MMO "AAA".


1
Quasi tutti i browser moderni supportano i tasti funzione ( quirksmode.org/js/keys.html#link6 ). In effetti, quella pagina ha almeno diversi anni e il supporto per loro nei browser moderni è probabilmente ancora migliore.
Ricket,

1

Assolutamente si.

WebGL è incluso nelle build notturne di WebKit (Chrome / Safari) e Gecko (Firefox). WebSocket è attualmente disabilitato a causa di problemi di sicurezza, ma non vi è alcun motivo per cui non debba essere riattivato una volta risolti i problemi. Nel frattempo c'è sempre HTTP.

Tutti i giochi saranno scritti in questo modo? No, ma un numero significativo sarà. Una volta che WebGL è nelle versioni finali di Chrome e Firefox, la penetrazione sarà già superiore a quella dei plug-in nativi come Unity.

Le prestazioni di JavaScript dipendono assolutamente dalla scrittura di giochi. Probabilmente non vedrai un livello di grafica Crysis per un po ', ma ricorda con WebGL, il crunching dei numeri viene scaricato sulla GPU.

Per un piccolo team di 2 uomini dovrai essere pronto a fare molta codifica su qualsiasi motore tu usi. Al momento non ci sono motori WebGL / JavaScript che coprono effettivamente gran parte del codice di gioco. SceneJS, three.js e simili sono wrapper sul livello grafico, ma non forniscono nulla per collisioni, fisica, audio, caricamento di risorse, rete o strumenti che costituiscono la maggior parte di un prodotto come Unreal Engine o Unity.

Sono i primi giorni al momento, mi aspetto di vedere altri middleware emergere nel prossimo anno.


0

Non penso che molti MMO futuri saranno scritti con alcuna tecnologia browser lato client poiché la maggior parte degli sviluppatori MMO vorrà utilizzare la stessa lingua su client e server e la maggior parte degli sviluppatori di giochi parla fluentemente linguaggi non web come C ++. C'è troppo troppo codice client per renderlo molto pratico in Javascript comunque, fatta eccezione per simulazioni abbastanza banali. Ci sono anche altre limitazioni imposte dall'esecuzione nel browser che sono sgradevoli per uno sviluppatore di giochi tipico.

Sono sicuro che ci saranno alcuni giochi come questo, comunque. Non prenderanno il posto di WoW o di giochi simili per un bel po '. Probabilmente saranno fatti di più dagli sviluppatori web che entrano nei giochi piuttosto che dagli sviluppatori di giochi che entrano nel web.


Il downvoter vuole aggiungere un commento che spiega come non sono d'accordo con la mia risposta? Mi sto solo chiedendo. :)
Kylotan,

0

La domanda che dovresti porti è perché gli sviluppatori di giochi vorranno dipendere dalla tecnologia web che non hanno padronanza e su cui non hanno alcun controllo, le lingue attuali ti consentono anche in un browser Web di realizzare fantastici giochi?


0

Sì, ma la tecnologia deve ancora stabilizzarsi e probabilmente rimarranno compromessi prestazionali rispetto alle applicazioni native.


-3

L'unità è buona. Vedi anche Shiva e il motore principale.


1
Unity e Prime Engine non hanno nulla a che fare con le tecnologie menzionate. Sono plugin di codice nativo.
Kylotan,

1
Sono risposte nel senso che stiamo dicendo: "No, non è una buona idea farlo, tuttavia qui ci sono alternative". Le risposte che dicono "No, ma qui è un'alternativa" sono molto più preferibili di un semplice "No"
Tim Holt

3
A volte sono d'accordo, ma raramente. Esiste il pericolo di cercare di leggere la mente di qualcuno e di indovinare cosa "realmente" vogliono fare, quando in realtà la domanda originale era perfettamente legittima a sé stante. Se qualcuno chiede l'idoneità di X, non dovremmo sempre rispondere con "usa solo Y". Per lo meno dovrebbe esserci un confronto sull'idoneità dei due in modo che veniamo via sapendo di più su X.
Kylotan,

Quindi riformulerò la mia risposta per rispondere alla sua domanda su quale libreria usare. Personalmente userei la "libreria" di Unity: P
Tim Holt il

la risposta più votata dice sostanzialmente la stessa cosa ..
Errore 454
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.