Das Beste aus beiden Welten: Browser- und Desktop-Spiel?

8

Wenn ich eine Plattform für ein Spiel in Betracht ziehe, habe ich mich für eine Multi-Plattform (Win / Lin / Mac) entschieden, kann mich aber nicht so weit entscheiden, was Browser oder Desktop betrifft. Da ich nicht allzu weit in der Entwicklung bin, und jetzt nachdenkend, würde ich Ihre Meinung mögen!

Browserbasierte Spiele mit Java-Applets:

  • Marktdurchdringung ist ziemlich hoch (für Version 6, es ist irgendwo um 60% glaube ich?)
  • mit JOGL , 3D Leistung / Qualität ist in Ordnung; sicherlich gut genug, um die beschissenen 3D-Grafiken, die ich mache, zu rendern
  • gibt es die (kleine?) Möglichkeit, etwas auf Android zu portieren
  • toll für ein Publikum von Spielern, die häufig den Computer wechseln; kann sich an irgendeinen Computer setzen, eine Webseite laden und abspielen
  • auch ideal für Gelegenheitsspieler oder weniger sachkundige Spieler, die ziemlich glücklich damit sind, Spiele in einem Browser zu spielen, aber nicht mehr Dinge auf ihrem Computer installieren möchten
  • geschrieben in einer High-Level-Sprache , mit der ich besser vertraut bin als mit C ++ - aber gleichzeitig möchte ich meine Fähigkeiten mit C ++ verbessern, da ich wahrscheinlich dorthin gehe die Spieleindustrie, sobald ich die Schule verlassen habe ...
  • einfacher update Prozess: Laden Sie die Seite neu.

Desktop-Spiele mit guten alten C ++ und OpenGL

  • 100% ige Marktdurchdringung unter der Annahme vollständiger plattformübergreifender Lösungen; Diese Anzahl verringert sich jedoch, wenn Sie berücksichtigen, wie viele Benutzer eine ausführbare Datei herunterladen und installieren, im Vergleich dazu, dass Sie lediglich zu einer Webseite navigieren und eine Sicherheitswarnung mit "Ja" bestätigen.
  • mehr Probleme, die Plattform aufrechtzuerhalten; aber wieder, für Lernzwecke würde ich die Herausforderung und das Wissen annehmen, das ich gewinnen würde
  • bessere Leistung rundherum
  • true Vollbild , während Browserspiele oft mit glatten Vollbild-Grafiken kämpfen (besonders nach meiner Erfahrung mit Linux)
  • kann Vertriebsplattformen wie Steam nutzen
  • eher ein "echtes" Spiel , wohingegen Browser- und Java-Spiele oft als nicht echte Spiele abgetan werden und daher nicht von "Hardcore-Spielern"
  • gespielt werden
  • Installer kann groß sein; Sorgen Sie sich nicht so sehr um Download-Zeiten

Gibt es eine Möglichkeit, das Beste aus beiden Welten zu haben? Ich liebe Java-Applets, aber mir gefallen auch die Gründe, ein Desktop-Spiel zu schreiben. Ich möchte nicht ständig alles zwischen einem Java-Applet-Projekt und einem C ++ - Projekt portieren; das wäre doppelt so viel Arbeit!

Unity entschied sich dafür, ihr eigenes Web-Player-Plugin zu schreiben. Ich mag das nicht, weil ich einer der Leute bin, die ihren Web-Player für nichts installieren, und ich sehe mich nicht in der Lage, mein Publikum zu überzeugen, ein Browser-Plugin zu installieren.

Was sind meine Möglichkeiten? Gibt es neben Unity noch weitere Beispiele für Spiele mit Browser- und Desktop-Versionen? Habe ich irgendetwas in den oben genannten Pro / Contro-Listen weggelassen?

    
Ricket 15.06.2010, 13:23
quelle

10 Antworten

5

Ja, Sie können das Beste aus beiden Welten haben.

Es ist durchaus möglich, eine Java-Anwendung zu schreiben, die sowohl in einem Applet (für Ihre Online-Benutzer) als auch als eigenständige Anwendung in heruntergeladener Form ausgeführt wird.

Die Schlüsseltechnologien sind:

  • JNLP
  • JOGL für die Grafiken, die auch einige gute Demos
  • Ich bin nicht so vertraut mit ihm, aber ich denke, jMonkeyEngine sieht sehr vielversprechend aus, wenn Sie mehr von einem voll ausgestatteten wollen Spielengine

Wenn es irgendeinen Nutzen bringt, hat ein altes Spiel namens Tyrant das Ausführen sowohl als Applet als auch als eigenständiges Programm unterstützt. JAR-Datei, alle Quellen sind geöffnet, wenn Sie sie betrachten möchten. Dies verwendete einfache AWT statt 3D-Grafiken.

Und schließlich ist hier ein weiteres Beispiel , um ein Applet mit relativ wenig Code in eine Anwendung zu konvertieren .

    
mikera 15.06.2010, 15:00
quelle
8

Ich würde vorschlagen, zuerst ein Spiel zu schreiben.

Es ist leicht zu verstehen, wie man das beste Spiel aller Zeiten schafft, das von einem Abakus bis zu SkyNet laufen kann, aber die Realität ist, dass Sie viele Herausforderungen haben werden bevor du ein Spiel beendest, das auf deinem eigenen PC läuft.

Schreiben Sie zuerst ein Spiel für one -Plattform (ob diese Plattform "Windows-nativ mit DirectX" oder "Java-Applet" oder sogar "reines AJAX in einem Browser" ist). Wenn Sie das können, können Sie darüber nachdenken, wie Sie es auf andere Plattformen portieren können. Aber alles versuchen ist ein sicherer Weg, um nichts zu erreichen.

Oder anders gesagt:

  

Ich habe mich für Multi-Plattform entschieden (Win / Lin / Mac)

Sie haben sich also entschieden nichts . Entscheiden Sie sich für eine Plattform, auf der Sie sich weiterentwickeln können. Dann mach das Spiel. Dann mach es auf anderen Plattformen funktionieren.

Sorgen Sie sich nicht so sehr darum, was Ihr "Publikum" akzeptabel finden wird. Wenn dein Spiel Spaß macht, dann werden die Leute gerne Unity installieren. Genau wie sie dein Spiel installieren, wenn es nicht browserbasiert ist. Aber der wichtige Punkt ist nicht "Was muss ich installieren, um es zu spielen", sondern "ist es das wert". Dein Fokus sollte darauf sein, ein Spiel zu machen, das die Installation wert ist .

Und wenn Sie nicht planen, 20 Millionen Kopien des Spiels zu verkaufen und davon zu leben, ist Ihr "Publikum" nicht so wichtig, oder? Es kommt darauf an, das Spiel auf den Markt zu bringen, damit Interessierte es ausprobieren können.

Aber ein Single-Plattform Spiel ist viel besser als eine unvollendete Cross-Plattform nichts .

Ein Spiel, bei dem ich Unity installieren muss, ist viel besser als etwas, das Sie um weitere drei Jahre entwickeln müssen, weil Sie darauf bestanden haben, das Rad neu zu erfinden.

    
jalf 15.06.2010 14:39
quelle
5

Wenn Sie diese Art von Penetration wirklich wollen, dann empfehle ich HTML 5 + Javascript, abhängig von der Leistung, die Sie brauchen.

    
James Westgate 15.06.2010 13:54
quelle
4

Zuerst beginnen Sie mit der falschen Frage. Deine Entscheidung für eine Technologie sollte vom Konzept des Spiels abhängen. Es scheint, dass Sie sich sicher sind, ein Spiel zu schreiben - also fragen Sie sich, was die Anforderungen für das Spiel sind. Dies führt Sie zu Ihrer Technologie. Wenn es keine Ahnung von "was" Sie machen möchten.

Zu Ihren Pro und Con's: Konzentriere dich nicht auf Dinge, die du niemals brauchen oder nutzen kannst. Nachdenken über die Dampfplattform ist für Hobbyentwickler nicht interessant. Auch Android ist nicht interessant, wenn Sie nicht wirklich Ihre Anwendung für Android versenden möchten. Diese Profis werden in der Realität niemals ein Profi sein.

Um es zusammenzufassen: Lassen Sie diese Entscheidung von Ihrer Idee und nicht von der Technologie selbst ausgehen. Wenn Sie eine klare Vorstellung davon haben, was Sie tun möchten, erhalten Sie Ihre Antwort.

(Und übrigens: Denken Sie darüber nach, was Browserspiele bedeuten. Hinter einem Browsergame befindet sich ein riesiger Service-Bereich, nur um das Spiel am Laufen zu halten. Firmen, die in solchen Bereichen arbeiten, sind im Grunde Dienstleister.)

    
ins0m 15.06.2010 14:31
quelle
2

Sie können sich vielleicht den Google-Client ansehen, mit dem Sie Ihre Anwendung in C oder C ++ schreiben können ( oder irgendetwas anderes, das zu nativem Code kompiliert, wirklich). Eine neue Funktion des SDK ist die LLVM-Unterstützung, die es (hoffentlich) ermöglicht, dass NaCl-Software auf jede Plattform abzielt, auf der Googles Chrome-Browser läuft (oder auf jeden Browser, mit dem das NaCl-Plugin arbeitet - derzeit werden x86 und ARM unterstützt, IIRC).

    
greyfade 15.06.2010 14:08
quelle
1

Du hast Android in deiner Frage erwähnt - hast du darüber nachgedacht, das Spiel ausschließlich für Android zu entwickeln?

Im Endeffekt erhalten Sie das Beste aus beiden Welten, sind leicht zu pflegen, einfach zu veröffentlichen, leicht zu monetarisieren und erhalten ein kleines Einkommen, und Sie haben auch keinen eigenen Installer oder Update-Mechanismen geschrieben.

    
James 15.06.2010 13:35
quelle
1

Ja. Sie können etwas machen, das in beiden funktioniert. Grundsätzlich sollte Ihr Programm in einem JPanel funktionieren. Das Applet kann JPanel anzeigen, und die Desktop-Version ist nur ein Fenster mit Ihrem JPanel drin.

Sie könnten auch eine vollständige Swing-GUI (oder was auch immer) haben, die das Applet in einem neuen Fenster startet, wenn sie auf die kleine "Start" -Schaltfläche in Ihrem Applet klicken.

Es gibt noch ein paar andere Unterschiede, die Sie berücksichtigen müssen, wie das Laden von Ressourcen, aber ich habe es vorher für einfache Spiele gemacht, die ich gemacht habe.

    
MBCook 15.06.2010 14:35
quelle
0

Ich glaube nicht, dass Sie die beiden wirklich vergleichen können:

Meiner Meinung nach:

  • Applet, Flash und andere browserbasierte Spiele sind normalerweise kleine "Spielzeug" -Spiele, die entweder kostenlos geschrieben oder mit Werbung ergänzt werden. Schau dir zum Beispiel die Seite Addicting Games an.
  • C ++ - Spiele sind eher schwergewichtige, im Studio geschriebene Spiele, die sich auf dedizierte Physik-Engines, Grafik-Engines usw. stützen (was insbesondere für Spiele gilt, die auf Steam vertrieben werden, hätte ich gedacht). Die Lernkurve dürfte sehr viel steiler sein, da C ++ inhärent schwieriger ist als Java / Flash.

Wenn Sie mit C ++ nicht vertraut sind, wäre mein Rat, mit JOGL in Richtung Java zu gehen. Auf diese Weise können Sie die OpenGL-Lernkurve skalieren, bevor Sie C ++ in Angriff nehmen müssen.

BEARBEITEN

Um den anderen Abschnitt Ihrer Frage bezüglich der Implementierung eines Spiels sowohl in Browser- als auch in Desktop-Form anzugehen, könnten Sie das Spiel in Java implementieren und eine Applet- und Standalone-Version bereitstellen, wobei die Standalone-Version den Vollbildmodus von Java nutzen kann Exklusivmodus-API Sie können beide Anwendungen auf derselben Codebasis basieren. Sie könnten auch in Betracht ziehen, die Footprint-Größe des Applets zu verkleinern, indem Sie Datendateien (z. B. Spielebenen) serverseitig beibehalten und sie bei Bedarf dynamisch abrufen.

    
Adamski 15.06.2010 13:37
quelle
0

Obwohl WebSense mich aus offensichtlichen Gründen nicht direkt zur Seite navigieren lässt, war das erste, was mir beim Lesen dieser Frage einfällt, ein Spiel wie Wurm Online . Es ist in Java mit JOGL geschrieben, implementiert Content-Streaming und lokale Caches und scheint eine Menge der Punkte angesprochen zu haben, an denen Sie interessiert sind. Es ist eine Desktop-Java-Anwendung, anstatt wirklich "In-Browser" zu sein, aber ich denke, Sie könnten lerne noch einiges von seiner Implementierung.

Das In-Browser-Spiel ist immer in Gefahr, sein Fenster geschlossen oder aufgefrischt zu haben, was dazu führt, dass es abrupt den Status verliert, wenn nicht alles serverseitig gehalten wird. Das bedeutet, dass Sie entweder sehr einfache Spiele haben, die die Synchronisation mithilfe eines Anruf- / Antwortmodells aufrechterhalten können (z. B. die unzähligen textbasierten Spiele von Facebook "Mob Wars") oder ein unbeabsichtigtes Auftauchen von F5 jemanden auf den letzten "katapultieren". gespeichertes Spiel. "

    
Chris Peredun 15.06.2010 14:29
quelle
0

Ich bin mir nicht sicher, ob es eine vernünftige Entscheidung ist, ein Plugin nicht zu verwenden, weil Sie es persönlich nicht mögen. Mit dieser Option können Sie Ihre App als Desktop-App oder als Browser-Plugin (mit wenig zusätzlichem Aufwand) installieren und in C ++ / GL schreiben. Du hast gesagt, du glaubst nicht, dass deine Benutzer Plugins installieren werden ... warum nicht? Wenn sie eine Anwendung installieren, warum nicht ein Plugin, das im Grunde auf das gleiche läuft?

Sie können sich auch Flash ansehen, die einige 3D-Funktionen sammelt und in-Browser oder als AIR-Desktop-App ausgeführt werden kann. Aber dann würden Benutzer ein Flash-Plugin benötigen, das Sie vermutlich auch nicht haben.

    
Mr. Boy 15.01.2011 16:46
quelle

Tags und Links