Browser-basierte MMOs (WebGL, WebSocket) [geschlossen]

29

Glauben Sie, dass es technisch möglich ist, einen vollwertigen 3D-MMO-Client mit Browser-JavaScript - WebGL für Grafiken und WebSocket für Netzwerke - zu schreiben?

  • Denken Sie, dass zukünftige MMOs (und Spiele im Allgemeinen) mit WebGL geschrieben werden?
  • Ermöglicht dies die heutige JavaScript-Leistung?
  • Angenommen, Ihr Entwicklungsteam war Sie als Entwickler und ein anderer Modellbauer (Künstler). Möchten Sie eine Bibliothek wie verwenden SceneJS für das Spiel, oder gerade WebGL schreiben? Wenn Sie eine Bibliothek, aber kein SceneJS verwenden möchten, geben Sie bitte an, welche.

UPDATE (September 2012): RuneScape, ein sehr beliebtes 3D-Browser-basiertes MMORPG, das bisher Java-Applets verwendete, hat angekündigt, HTML5 für seinen Client ( Quelle ) zu verwenden.

Runescape HTML5

Java (links) und HTML5 (rechts)

UPDATE (Juni 2013): Ich habe einen Prototyp eines WebGL / WebSocket-basierten MMO geschrieben: https://github.com/alongubkin/xylose

Alon Gubkin
quelle
3
Mozilla Firefox und Opera nur websocket Unterstützung aus Sicherheitsgründen fallen gelassen: heise.de/security/meldung/... Siehe gamedev.stackexchange.com/q/6524/450 für Cross - Browser - Abstraktion des Netzwerks Sachen.
Hendrik Brummermann
2
Ich denke, alle drei dieser Fragen sind interessant, aber ich möchte sie lieber in drei Fragen aufteilen. In meinen Augen sind sie kaum verwandt.
2
Technisch ist es möglich, ja. Realistisch ist eine andere Sache.
Die kommunistische Ente
Als Randnotiz: Google hat eine JavaScript-Bibliothek für WebGL erstellt, die ziemlich cool ist: code.google.com/p/o3d
Alex Beardsley
Ich gehe davon aus, dass Ihre Frage ein 3D-MMO impliziert. 3D ist keine Voraussetzung für das Genre, und in der Tat gibt es viele MMOs im Web seit Jahren, die nur aus HTML-Formularen bestehen (siehe urbandead.com ). Ganz zu schweigen von allen PHP-Spielen von Gameforge ( de.gameforge.com ) oder das exotischere AJAX / Javascript-Zeug wie Lord of Ultima ( lordofultima.com )
wkerslake

Antworten:

7

Glauben Sie, dass es technisch möglich ist, einen vollwertigen 3D-MMO-Client mit Browser-JavaScript - WebGL für Grafiken und WebSocket für Netzwerke - zu schreiben?

Ja absolut. Es gibt keinen Grund, warum WebGL- oder WebSocket-Technologie Sie daran hindern würde, einen 3D-MMOG-Client oder einen anderen Spiele-Client zu erstellen.

Glauben Sie, dass zukünftige MMOs (und Spiele im Allgemeinen) mit WebGL geschrieben werden?

Ja. Ich glaube, dass in den nächsten fünf Jahren die meisten 3D-Browsergames mit WebGL geschrieben werden. Der Grund ist einfach: WebGL ist die einzige standardisierte 3D-Technologie, die in allen gängigen Webbrowsern (Chrome 9, Firefox 4, Safari 6 und Internet Explorer über Chrome Frame) implementiert werden kann.

Ermöglicht dies die heutige JavaScript-Leistung?

Ja. Die JavaScript-Leistung in modernen Browsern ist so weit gestiegen, dass die Entwicklung von 3D-Spielen möglich ist. Ein Beispiel finden Sie im Three.js-Projekt .

Angenommen, Ihr Entwicklungsteam war Sie als Entwickler und ein anderer Modellbauer (Künstler). Würden Sie eine Bibliothek wie SceneJS für das Spiel verwenden oder direkt WebGL schreiben? Wenn Sie eine Bibliothek, aber kein SceneJS verwenden möchten, geben Sie bitte an, welche. Vielen Dank!

Nutzen Sie eine Bibliothek, um Zeit zu sparen. Es gibt keinen Grund, Ihren eigenen WebGL-Grafikcode zu schreiben, es sei denn, in einer vorhandenen Bibliothek fehlen die von Ihnen benötigten Funktionen. Selbst in diesem Fall wäre es wahrscheinlich zeitsparender, die vorhandene Bibliothek zu erweitern.

Für mein Projekt verwende ich GLGE, da es viele verschiedene Grafikeffekte unterstützt und ständig mit neuen aktualisiert wird.

Jephir
quelle
2
Die Frage "Glauben Sie, dass zukünftige MMOs (und Spiele im Allgemeinen) mit WebGL geschrieben werden?" und die Antwort "Ja. Ich glaube, dass die meisten 3D-Browsergames in den nächsten fünf Jahren mit WebGL geschrieben werden." sind kein genaues Spiel für einander ...
Kylotan
5

Es gibt bereits mehrere browserbasierte MMOs. In der Regel werden jedoch keine 3D-Grafiken verwendet.

Ich bin ein bisschen skeptisch, wenn es um WebGL geht. Die aktuelle Anzahl von Browsern unterstützt WebGL in ihren normalen Release-Builds nicht. Sie müssen spezielle Builds erstellen oder mit Konfigurationsdateien herumspielen, was für den durchschnittlichen Benutzer komplizierter ist als das Herunterladen eines Plugins.

Apropos Plugins: Mehrere Leute erwähnten Unity, aber vergessen Sie Flash nicht. Eine kommende Version des Flash Players (Codename Maulwurfshügel ) wird GPU-beschleunigtes 3D haben. Ich vermute, dass Flash hardwarebeschleunigte 3D-Grafiken im Browser bereitstellt, bevor WebGL startet.

Blödmann
quelle
1
Das Problem eines stabilen Browsers mit Webgl-Unterstützung sollte nicht nach Januar 2010 auftreten. Firefox 4 und Chrome 9 werden voraussichtlich um diese Zeit erscheinen. Chrome 9 Beta ist recht einfach zu installieren und erfordert keinerlei Eingriffe, um das Webgl zu aktivieren. Der Link zur Beta-Edition befindet sich unter dem regulären Download-Link für Chrome.
Nicolas K.
@Nicolas K. - Meinst du Jan 2011 ?
DMan
1
@Nicolas K - Verfügbarkeit eines Browsers und Installationsbasis eines Browsers sind sehr verschiedene Dinge. 13% des Internetverkehrs ist immer noch IE6. Quelle: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake
@DMan: Wahrscheinlich, da es jetzt raus ist. Ich kann es kaum erwarten, bis jemand herausfindet, wie man einen beschissenen OpenGL-Treiber mit WebGL
1
@wkerslake: Diese Statistiken sind unverschämt. Ich unterhalte eine Website für den durchschnittlichen Internetnutzer mit einer halben Million eindeutiger Besuche pro Tag, und weniger als 1% von ihnen verwenden Internet Explorer 6 (etwa 1/3 verwenden Internet Explorer 7/8/9). Firefox und Chrome machen 50% des Datenverkehrs aus, und sie aktualisieren sich selbst, was bedeutet, dass die Mehrheit der Benutzer die WebGL-Unterstützung innerhalb weniger Monate installiert haben wird. Da die Entwicklung eines Spiels leicht 6 Monate dauern kann, sehe ich keinen Grund, Leute davon abzuhalten, WebGL heute zu verwenden.
Blixt
3

Technisch möglich Ja. Aber warum sollte man sich die Mühe machen, wenn Weblösungen wie Unity verfügbar sind?

Zukünftige MMOs in WebGL geschrieben? Ok, vielleicht, aber es gibt webbasierte Plugins wie Unity, die im Moment gut funktionieren.

Die heutige JavaScript-Leistung ermöglicht dies? Ok ja, wenn Sie Ihr Spiel einfach halten.

Würden Sie eine Bibliothek wie SceneJS [...] verwenden oder direkt WebGL schreiben? Weder. Ich würde eine Drittanbieteranwendung wie Unity verwenden.

Tim Holt
quelle
4
Ihre Antwort ist falsch, widersprüchlich und schlecht formatiert. Tut mir leid, so hart zu sein. Wenn Sie der Meinung sind, dass op nur die Einheit verwenden sollte, schreiben Sie dies in einen Kommentar zu seiner Frage.
Oberhamsi
Ironischerweise sagte meine ursprüngliche Antwort nur "Use Unity", aber mir wurde gesagt, ich müsse die Frage direkter beantworten.
Tim Holt
1
Okay, fair genug. Ich denke, Unity ist ein ganz anderes Biest als der Versuch, es nativ im Browser zu tun. Natürlich kann man mit einem Plugin alles machen, aber die Frage scheint mir: Wo liegen die Grenzen nativer Browsertechnologien?
Oberhamsi
2

Dies ist derzeit nicht möglich (Anfang 2011). Sie können in nativen Browsertechnologien (dh ohne Plugins) kein 3D-MMO in Echtzeit erstellen.

Ich werde nicht über die Zukunft spekulieren. So sieht es jetzt aus. Vorausgesetzt, Sie richten sich nur an moderne Browser (IE9, FF4 usw.). Wenn Sie vorhaben, IE7 zu unterstützen, sind Sie verrückt. Das wird niemals funktionieren.

Dinge fehlen:

  • Volle Kontrolle über Tastatur und Maus (Einstellen der Mausposition, Abfangen der Tasten)
  • ganzer Bildschirm
  • 3D

Bereiche / Lösungen mit schwerwiegenden Problemen:

  • WebSockets wurde in den wenigen Browsern, die dies unterstützen, deaktiviert
    • ohne es: jetzt niedrige Latenz, bidirektionale Client-Server-Kommunikation
  • Audioprobleme
    • codec mess, du brauchst ogg und mp3
    • Häufige Frequenzen werden nicht unterstützt
    • Gleichzeitigkeit
    • verzögern
  • Canvas-Leistung (in einigen Fällen ist das Ausführen von Divs- und CSS-Transformationen schneller)
oberhamsi
quelle
1

Ja, aber mit großen Einschränkungen.

Sie werden nicht die volle Tastatursteuerung haben, und für viele Kontrollfreaks könnte dies ein Deal-Breaker sein. Die F-Tasten zum Beispiel werden wahrscheinlich für einige Zeit außer Reichweite bleiben.

Sie werden auch die meisten Browser nicht erreichen können. WebGL wird noch nicht wirklich gut unterstützt, und die Websocket-Unterstützung ist heutzutage ein Muss. Einige Browser-Anbieter aktivieren es für eine Version und deaktivieren es dann für die nächste.

Aber Sie können sicher etwas Einfaches zusammenstellen. Spielen Sie ein spannendes Gameplay, und es spielt keine Rolle, dass die Grafiken etwas zurückhaltend sind. Runescape begann ziemlich einfach und entwickelte sich zu einem komplexen, unterhaltsamen und unglaublich beliebten MMO, als alle sagten, dass ein in einem Browser-Plug-In erstelltes MMO ein Wunschtraum sei.

Ein MMO, das mit den aktuellen Beschränkungen für Browser erstellt wurde, die sich an veränderte Gegebenheiten anpassen, wäre mit Sicherheit in dem Moment einen Schritt weiter, in dem Browser weit genug sind, um ein "AAA" MMO zu unterstützen.

Dan Hulton
quelle
1
Fast alle modernen Browser unterstützen die Funktionstasten ( quirksmode.org/js/keys.html#link6 ). Tatsächlich ist diese Seite mindestens einige Jahre alt und die Unterstützung für sie in modernen Browsern ist wahrscheinlich sogar noch besser.
Ricket
1

Absolut ja.

WebGL ist in nächtlichen Versionen von WebKit (Chrome / Safari) und Gecko (Firefox) enthalten. WebSockets ist derzeit aufgrund von Sicherheitsproblemen deaktiviert, es gibt jedoch keinen Grund, warum es nicht erneut aktiviert werden sollte, sobald die Probleme behoben sind. In der Zwischenzeit gibt es immer HTTP.

Werden alle Spiele so geschrieben? Nein, aber es wird eine signifikante Zahl sein. Sobald WebGL in den endgültigen Versionen von Chrome und Firefox verfügbar ist, ist die Penetration bereits höher als bei nativen Plug-Ins wie Unity.

Die Leistung von JavaScript hängt absolut vom Schreiben von Spielen ab. Sie werden wahrscheinlich für eine Weile keinen Crysis-Grafiklevel sehen, aber denken Sie daran, dass mit WebGL die Zahlenverarbeitung auf die GPU verlagert wird.

Für ein kleines 2-Mann-Team müssen Sie darauf vorbereitet sein, eine Menge Code zu schreiben, egal welche Engine Sie verwenden. Derzeit gibt es keine WebGL / JavaScript-Engines, die einen Großteil des Spielcodes abdecken. SceneJS, three.js und ähnliches sind Wrapper auf der Grafikebene, bieten jedoch nichts für Kollision, Physik, Audio, Laden von Ressourcen, Netzwerk oder Tools, die den Großteil eines Produkts wie Unreal Engine oder Unity ausmachen.

Im Moment ist es noch früh, ich würde erwarten, dass im nächsten Jahr mehr Middleware auf den Markt kommt.

Dave
quelle
0

Ich glaube nicht, dass viele zukünftige MMOs mit clientseitiger Browsertechnologie geschrieben werden, da die meisten MMO-Entwickler auf dem Client und dem Server dieselbe Sprache verwenden möchten und die meisten Spieleentwickler nicht-webbasierte Sprachen wie C ++ beherrschen. Es ist viel zu viel Client-Code involviert, um es auf jeden Fall sehr praktisch in Javascript zu machen, abgesehen von ziemlich trivialen Simulationen. Es gibt auch andere Einschränkungen beim Ausführen im Browser, die für einen typischen Spieleentwickler unangenehm sind.

Ich bin sicher , es wird einige Spiele wie dies jedoch. Sie werden für eine Weile nicht mehr WoW oder ähnliche Spiele ersetzen. Sie werden wahrscheinlich eher von Webentwicklern gemacht, die sich mit Spielen befassen, als von Spieleentwicklern, die sich mit dem Web befassen.

Kylotan
quelle
Möchte der Downvoter einen Kommentar hinzufügen, in dem erläutert wird, wie er mit meiner Antwort nicht einverstanden ist? Ich wundere mich nur. :)
Kylotan
0

Die Frage, die Sie sich stellen sollten, ist, warum Spieleentwickler von der Web-Technologie abhängen wollen, die sie nicht beherrschen und über die sie keine Kontrolle haben. Die aktuellen Sprachen ermöglichen es Ihnen, auch in einem Web-Browser großartige Spiele zu erstellen.

lollancf37
quelle
0

Ja, aber die Technologie muss sich noch stabilisieren, und es wird wahrscheinlich noch Leistungskompromisse gegenüber nativen Anwendungen geben.

Vincent Scheib
quelle
-3

Die Einheit ist gut. Siehe auch Shiva und die Prime Engine.

Lionel Barret
quelle
1
Unity und die Prime Engine haben jedoch nichts mit den genannten Technologien zu tun. Sie sind native Code-Plugins.
Kylotan
1
Sie sind Antworten in dem Sinne, dass wir sagen: "Nein, es ist keine gute Idee, dies zu tun, es gibt jedoch Alternativen." Antworten, die sagen, "Nein, aber hier ist eine Alternative", sind viel besser als nur "Nein"
Tim Holt
3
Manchmal würde ich zustimmen, aber selten. Es besteht die Gefahr, dass Sie versuchen, die Gedanken einer Person zu lesen und zu erraten, was sie wirklich tun möchte, obwohl die ursprüngliche Frage für sich genommen vollkommen legitim war. Wenn jemand nach der Eignung von X fragt, sollten wir nicht immer mit "nur Y verwenden" antworten. Zumindest sollte es einen Vergleich der Eignung der beiden geben, damit wir mehr über X wissen.
Kylotan
Ich werde meine Antwort dann umformulieren, um seine Frage zu beantworten, welche Bibliothek verwendet werden soll. Ich würde die Unity "Bibliothek" selbst benutzen: P
Tim Holt
Fehler 454