Welche Technologie sollte ich für ein webbasiertes Spiel verwenden? [geschlossen]

12

Was ist die beste Technologie für ein Online-Spiel, dh über einen Webbrowser spielbar? Ich denke, die einzigen Möglichkeiten sind:

  • Java-Applets
  • Blitz
  • Silverlight

Ich neige zu Java-Applets, nur weil sie bessere Programmierfunktionen zu haben scheinen als Flash, und Grafiken für ein Java-Applet-Spiel sind möglicherweise billiger als Grafiken für Flash. Ich weiß nicht viel über Silverlight.

Klicken Sie auf Upvote
quelle
5
Vermutlich gibt es hier kein einziges "Bestes", nur dass verschiedene Tools in bestimmten Situationen besser sind als andere und es Kompromisse mit allem gibt?
Ian Schreiber
Dies ist definitiv subjektiv und sollte CW sein. Ich habe das Gefühl, es wird eine Liste.
Ricket
Warum findest du nicht ein oder mehrere Spiele, die dir gefallen, und erfährst, wie sie erstellt wurden?
Sam

Antworten:

7

Nur weil Java-Applets nicht beliebt sind, heißt das noch lange nicht, dass sie nicht leistungsfähig oder spielwürdig sind. Tatsächlich konzentriere ich mich im Moment auf die Entwicklung von Java-Spielen. Ich mag die hohe Qualität der Sprache, ihre plattformübergreifende Funktionalität (im Vergleich zu C #), die JOGL- Bibliothek, die eine sehr C-ähnliche OpenGL-Erfahrung für die Java-Plattform (oder ihre Alternative, LWJGL oder eine Engine) bietet wie jMonkeyEngine ) und seine Geschwindigkeit (offensichtlich langsamer als C ++, aber erheblich schneller als Skriptsprachen wie Python).

Mit Java können Sie Ihre Anwendung als Applet bereitstellen, um sie im Browser auszuführen, und sogar eine JNLP- Alternative für diejenigen bereitstellen, die es vorziehen, etwas zu installieren.

Sie können alle Tools nutzen, die für Java erstellt wurden. die wunderbare Eclipse-IDE (oder eine der anderen IDEs da draußen), Testtools, kontinuierliche Integration, die riesige Community von Java-Programmierern usw.

Die Statistik für den Prozentsatz der Computer, auf denen Java installiert ist, variiert (und die Version variiert noch mehr), aber ich habe ziemlich hohe Zahlen für die Durchdringung des Java-Marktes gesehen. Und der Installationsprozess bleibt ziemlich einfach, sodass Benutzer, die Java noch nicht installiert haben, in kürzester Zeit einsatzbereit sind.

Ich persönlich zögere weniger, das Java-Plugin zu installieren als das Unity-Plugin. Tatsächlich muss ich das Unity-Spiel-Plugin noch auf meinem Computer installieren. Ich traue es einfach nicht ganz. Java ist bewährt; Es hatte einen felsigen Anfang, aber jetzt, viele Jahre später, ist es stabil und schnell und es gibt weiterhin einige Sicherheitsprobleme (aber auch Flash), aber zum größten Teil ist es vertrauenswürdig. Ich werde weiterhin Unity-Web-Spiele meiden, bis das Unity-Web-Plugin etwas weiter verbreitet und bewährt ist.

Daher empfehle ich Java auf jeden Fall , sei es über ein Applet oder über Java Web Start oder eine ausführbare JAR.

PS Das beliebteste kostenlose Online-MMO der Welt, das von den Guinness-Weltrekorden anerkannt wurde, ist RuneScape , das als Java-Applet ausgeführt wird und seit kurzem über eine Desktop-Version verfügt. Es unterstützt sowohl DirectX und OpenGL als auch einen Software-3D-Renderer und verfügt über ungefähr 10 Millionen aktive Konten .

Ricket
quelle
1
Sie verpassen es wirklich, wenn Sie die Unity Engine noch nicht ausprobiert haben . Es kann eine eigenständige ausführbare Datei für das Desktop-Betriebssystem (PC und Mac, kein Linux) erstellen, sodass Sie nicht einmal das Browser-Plugin benötigen, um mit der Entwicklung in Unity zu experimentieren. Komm schon , versteh schon, du weißt, dass du es willst. :)
Cyclops
@ Cyclops, nun, es ist eine Voraussetzung für meinen Spielentwicklungskurs in diesem Semester, also muss ich mich in ein oder zwei Monaten den Wegen der Einheit unterwerfen. Bis dahin werde ich meine Java + OpenGL F & E fortsetzen :)
Ricket
1
C # ist auch plattformübergreifend (Moonlight, ECMA-Standard, ...), es ist jedoch nicht so plattformübergreifend wie Java ... C # funktioniert jedoch auf den meisten Windows-, Linux- und Mac OS X-Systemen einwandfrei. Warum sollte man Spiele außerhalb dieser Box spielen? Siehe auch: balder.codeplex.com und kit3d.codeplex.com
Tamara Wijsman
4
TomWij, bitte erwägen Sie, Ihre eigene Antwort hinzuzufügen, anstatt zu versuchen, meine anzugreifen. Ich bin sicher, Silverlight hat seine eigenen Profis, die im Detail dargelegt werden sollten. Wie ich bereits auf die Eclipse-IDE hingewiesen habe, ist Visual Studio beispielsweise auch eine wunderbare IDE. Ihr Kommentar ist jedoch ein schwaches Argument. Moonlight liegt weit hinter Silverlight zurück (Silverlight 4 wurde vor 5 Monaten veröffentlicht und Moonlight arbeitet noch an 3), und die beiden Projekte, auf die Sie hingewiesen haben, befinden sich beide im Alpha-Status.
Ricket
Windward ist ein Beispiel für einen Spieleclient, der in C # geschrieben ist, aber auch unter Mac / Linux läuft. Der Entwickler sagte, er habe Mono verwendet.
MetaGuru
12

Unity3d Game Engine

Ich denke, jemand musste es sagen. :) Im Ernst, es ist eine großartige plattformübergreifende 3D-Game-Engine mit mehreren Skriptsprachen (Browser, Betriebssysteme, iPhone usw.). Und es gibt sowohl eine kostenlose als auch eine professionelle Version.

Zyklop
quelle
1
Leider ist es jetzt über einen bestimmten Decompiler dekompilierbar. Es ist also aus Gründen der Spielintegrität schlecht.
Wight
1
Alles ist mit genügend Arbeit dekompilierbar - die einzige Konsenslösung besteht darin, keine vertraulichen Daten in die Client-Software aufzunehmen.
Cyclops
Java ist bis zu einem Punkt dekompilierbar, an dem Minecraft 10 Milliarden Mods hatte, ohne Unterstützung für Mods. Es ist nur besser für die Spieler. Das und Sicherheit durch Oscurity bla bla.
Jimmy
11

Die Technologie, die ich für Spiele im Web interessant finde, ist JavaScript + Canvas. Dies hat den Vorteil, dass der Benutzer überhaupt kein Plugin benötigt, um Ihr Spiel zu spielen. Der kommende IE unterstützt auch Canvas, einschließlich Hardwarebeschleunigung. Die beste Wahl für 3D wäre WebGL, aber es ist noch nicht einmal Teil der innovativeren Browser. Sie finden bereits viele Tech-Demos mit Canvas und sogar einer Iso-Engine.

Martin
quelle
Es ist auch zu beachten, dass keines dieser Programme (außer "HTML5", auch bekannt als JS + Canvas + CSS + HTML + usw.) auf allen verschiedenen mobilen Plattformen ausgeführt werden kann (ja, Sie können Unity-Spiele für das iPhone und so weiter verpacken, aber das nicht unterscheidet sich von der Verwendung des Web-Players).
Coderanger
11

Adobe Flash

Flash ist immer noch die beste Wahl für viele Arten von Spielen.

Open Source

Das SDK ist OpenSource und es gibt einige großartige OpenSource-Entwicklungstools. Ich glaube, FlashDevelop ist die beste ActionScript-IDE, die es gibt.

FlashPlayer ist überall

Auf fast allen Computern ist Flash Player installiert, und der Aktualisierungsprozess ist jetzt ziemlich rationalisiert.

Flash-Plattform

Flash ist jetzt eine Plattform, daher gibt es viele Optionen zum Bereitstellen von Flash-Inhalten. Dabei wird die Richtlinie "Einmaliges Schreiben überall bereitstellen" beibehalten.

Bibliotheken und Community

Es gibt eine riesige aktive Community rund um Flash und sogar um Flash-Spiele. Es gibt auch eine Menge Bibliotheken in ActionScript. Viele der wichtigsten "Spiel" -Bibliotheken aus anderen Sprachen sind auf AS3 portiert.

Aktive Entwicklung von Adobe

FlashPlayer und die Plattform werden mit jedem Release besser und besser. Die Plattform wird laufend um weitere Funktionen erweitert, z. B. Flex, Adobe AIR, Pixel Bender usw. Schauen Sie sich einfach die Adobe Labs an, um zu sehen, was alles auf Sie zukommt.

Es gibt unzählige andere Vorteile, einschließlich der Flash-IDE (ja, es ist ein Vorteil), AMF, etablierten Websites und Programmen für Flash-Spiele (Kongregate, Mochi Media usw.).

Adam Harte
quelle
8

Während es noch nicht ausgereift ist, arbeitet Google eine Technologie namens Native Client, oder kurz NaCl. NaCl ist eine Sandbox, die die sichere und schnelle Ausführung von nativem Binärcode ermöglicht. Es unterstützt OpenGLES für die 3D-beschleunigte Ausgabe und OpenAL für eine Audioebene.

Zusammenfassend lässt sich sagen, dass Sie in Ihrem Webbrowser lokal installierte High-End-Spiele mit nur etwa 5% Geschwindigkeitsreduzierung spielen können.

Ich glaube, es kann sowohl ein Java-Killer als auch ein Flash-Killer sein, obwohl es noch einige Zeit für die Reifung braucht. Unity portiert ihre Engine dahin und es gibt bereits eine Firefox-Erweiterung, die dies unterstützt.

ZorbaTHut
quelle
6

Java Web Start ist eine bessere Wahl als Java-Applets. Mit JNLP können Sie auf native Ressourcen wie OpenGL zugreifen. Sie können die volle Leistung der Grafikkarte nutzen und gleichzeitig das Spiel über den Browser starten, ohne dass der Benutzer Plug-ins installieren muss (vorausgesetzt, sie haben Java-Laufzeit auf ihrem PC).

Die jMonkeyEngine ist eine großartige 3D-Engine, die auf diesem Prinzip basiert. Laufende Beispiele auf ihrer Website.

Die Slick- Engine ist eine Java 2D-Engine, die auch über den Browser gestartet werden kann.

David Young
quelle
Java Web Start ist nur ein Distributionstool. Es ist möglich, ein Spiel über JWS und ein Applet direkt spielbar zu machen. IMHO, der Hauptvorteil von JWS ist, dass es Ihre Anwendung mit einem Klick installieren und mithilfe der JNLP-Datei automatisch aktualisieren kann. Der Zugriff auf Ressourcen auf nativer Ebene kann also auch in einem Applet erfolgen (LWJGL kann in einem Applet funktionieren). Wenn Sie jedoch einen systemeigenen Zugriff wünschen, wird eine Warnung angezeigt, sofern Sie kein Zertifikat von einer Zertifizierungsstelle erworben haben.
Mr_Qqn
5

WebGL wird von allen Browsern (mit Ausnahme des Internet Explorers) unterstützt und bietet die gleiche Leistung und Flexibilität wie OpenGL ES, das nur über den Browser verbunden ist. http://en.wikipedia.org/wiki/WebGL

Rushyo
quelle
3

Ich habe einige ziemlich coole HTML 5-Demos gesehen. Wenn Sie wirklich am Puls der Zeit sein möchten, sollten Sie sich das ansehen.

schweben
quelle
2
HTML5 Canvas ist immer noch für FanBoys reserviert! Es ist immer noch dumm langsam und nicht so zugänglich, wie man es von Apple erwartet.
Adam Harte
3

Ein Datenpunkt, schauen Sie sich die Einträge für Ludum Dare 18 an.

http://www.ludumdare.com/compo/ludum-dare-18/?action=preview

Ich habe die Runs-In-Browser-Einträge durchgespielt und die Needs-Download-Einträge ignoriert. Die meisten Run-in-Browser sind Flash, einige Unity, einige Java, einige HTML / JS. Silverlight ist mir noch nicht aufgefallen.

grau
quelle
3

Wenn Sie sich ansehen, wie Sie Ihre Kunden am besten erreichen (dh welche Plugins sind am häufigsten vorinstalliert):

  1. JavaScript
  2. Blitz
  3. Java
  4. Silverlight
  5. Unity Web Player
  6. Benutzerdefiniertes Plugin

Wenn Sie sich ansehen, welche Tools am besten zum Erreichen Ihres spezifischen Ziels geeignet sind, müssen Sie klarer herausfinden, welche Art von Spielerfahrung Sie erstellen möchten. Einige Tools sind einfach nicht bereit für hohe FPS, Spiele mit geringer Latenz, während andere nicht für 3D geeignet sind, andere haben sehr langsame Toolchains usw.pp.

Heugabel
quelle
2

Java-Applets scheinen heutzutage nicht allzu beliebt zu sein. HTML-Canvas schneidet in Bezug auf die Leistung ziemlich gut ab. Behalten Sie auch die WebGL-Entwicklungen im Auge.

Anthony
quelle
0

Flex / Flash + RED5. Es ist kostenlos.

BBLN
quelle