HTML5 Mobile Game Entwicklung vs. native Game Apps [geschlossen]

12

Wie ist der aktuelle Stand der Spiele-Engines, Frameworks, Bibliotheken und Konvertierungen im Zusammenhang mit den HTML5-Technologien (einschließlich CSS3- und JavaScript-Bibliotheken wie RaphaelJS, Impact, gameQuery)? und wie lässt sich das am besten mit der Entwicklung einer nativen App vergleichen (insbesondere für iOS und Android)?

Besonders in Bezug auf Leistung, Grafik und das "native Feeling".

Gedanken zu Lösungen wie Appcelerator und Corona SDK werden ebenfalls geschätzt. In Bezug auf Unity3D ist es möglich, das Spiel in Unity3D zu entwickeln und es dennoch in einem Browser spielbar zu machen (zum Beispiel in aktuellen Versionen von Chrome oder Firefox), ohne dass Abhängigkeiten bestehen oder der Benutzer etwas installieren muss (kein Unity-Webplayer). .

Was ich suche, ist, wie ich Webstandards entwickeln kann, um die maximale Anzahl von Plattformen (einschließlich externer Mobilgeräte) zu erreichen und gleichzeitig eine native Erfahrung für Mobilgeräte beizubehalten, ohne das Spiel für iOS und Android erneut implementieren zu müssen.

Vic Goldfeld
quelle
2
Unity benötigt noch den Web-Player. Sie arbeiten an der Bereitstellung von Flash 11, aber das wird noch eine Weile dauern. Ich habe noch kein HTML5-Spiel in einem mobilen Browser gespielt, das sich gut anfühlte. Und HTML5-Audio ist immer noch ein Haufen Unsinn.
michael.bartnett
1
Wenn Sie "native feel" wollen, brauchen Sie eine native App ... ansonsten sind Sie immer auf den gemeinsamen Nenner der Plattformen beschränkt, die Sie unterstützen möchten.
Bummzack
Oh sicher, ohne zusätzliche Arbeit wäre ich. Aber es könnte ein Kompromiss erzielt werden, solange ich nicht alle Grundlagen für ein Spiel neu schreiben muss. Das Hinzufügen von spezialisierterem Code für Touch-Interfaces wäre völlig akzeptabel.
Vic Goldfeld
1
Meiner Erfahrung nach bieten native Spiele eine weitaus höhere Leistung als HTML5-Spiele für Telefone der unteren
Preisklasse

Antworten:

7

Die HTML5-Bibliotheken sind überraschend gut, besonders in Anbetracht ihres jungen Alters. Es gibt solide 2D / 3D-Engines, die Partikeleffekte, Physik und dergleichen unterstützen. Es gibt jedoch nichts Vergleichbares zu etablierten und ausgereiften Spiel-Engines wie Unity oder der Unreal Engine.

Auch HTML5-Bibliotheken sind meiner Erfahrung nach gerne ereignisgesteuert. Zum Beispiel werden Sprites On-Click-Events haben und es wird keine traditionelle Spieleschleife geben.

Für die Leistung sind native Apps viel, viel schneller als alles, was mit der HTML 5-Zeichenfläche zu tun hat. Das ist der Umfang meiner Erfahrung, aber ich habe keine Ahnung von Appcelerator oder Corona SDK.

Wenn Ihr Ziel jedoch mehr die "maximale Anzahl von Plattformen" als der Teil "Webstandards" ist, schlage ich eine Lösung wie Unity vor, die auf fast allem funktioniert und dank des eingebauten Editors eine sehr produktive Engine ist.

ClassicThunder
quelle
6

Tom hier von Scirra, wir machen Construct 2 zum HTML5-Game-Maker .

Wir haben kürzlich darüber gebloggt und die Leistung von HTML5 Canvas / WebGl / C ++ DX verglichen. Hier können Sie darüber lesen:

http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

Und hier ist die Grafik:

Bildbeschreibung hier eingeben

Ich weiß, dass es keine Leistung im Vergleich zu nativen mobilen Formaten ist, aber es ist ein Vergleich zu nativen Desktop-Apps, die einen Hinweis auf die Leistungslücke geben sollten.

Tom Gullen
quelle
Ich liebe die Grafik. Haben Sie eine Chance für ein Update 2016?
Dan Dascalescu
4

In erster Linie ist das Corona SDK eine sehr gute Arbeit. Lua ist eine großartige Sprache, Corona ein sehr gründliches Framework, und die Dokumentation war bisher großartig.

Meiner Meinung nach lohnt sich die Entwicklung von HTML5-Spielen noch nicht. Sowohl auf Desktop- als auch auf mobilen Browsern. Wenn Sie ein großartiges Spiel für Desktops und mobile Geräte entwickeln möchten, sollten Sie sich nicht darum kümmern. Wenn Ihr Ziel ist es, ein HTML5 - Spiel zu machen, dann ist es unterwegs zu machen und eine der Frameworks Menschen erwähnt haben (siehe auch Crafty oder Gee für mehr eine Zeichnung behafteten Schnittstelle).

Der Hauptgrund ist, dass ich, wenn ich ein Spiel mache, ein vollständiges und ausgefeiltes Spiel machen möchte. Ein Teil der Erstellung eines vollständigen und ausgefeilten Spiels ist gutes Audio. Obwohl das <audio>Tag von den gängigen Browsern unterstützt wird (vorausgesetzt, Sie stellen genügend verschiedene Formate zur Verfügung), ist die programmgesteuerte Verwaltung Ihres Soundtracks createElementein Problem. SoundManager 2 ist ein Pflaster, keine Lösung. In vielen Fällen wird lediglich auf die Verwendung eines Flash-Objekts für Desktops zurückgegriffen. An welcher Stelle frage ich, warum nicht einfach das verdammte Ding in Flash machen?

Unter iOS können Sie, sofern Sie keinen Hack wie in Zyngas Jukebox-Bibliothek verwenden , nur Sounds als Reaktion auf Benutzereingaben abspielen. Es ist lächerlich.

Wenn Sie Ihr HTML5-Spiel nicht als App verpacken, benötigen die Spieler eine Verbindung, um spielen zu können. Die meiste Zeit mit Handyspielen verbringe ich in der U-Bahn - kein Signal. Und wenn Sie Ihr Spiel packen, ist es dann nicht komisch, keinen Sound zu haben? Wenn ich ein Spiel herunterlade, erwarte ich ein gewisses Maß an Reaktionsfähigkeit und Glanz. Lesen Sie: eine native App.

Bis HTML5s weiterentwickelte und mobile Browser schneller sind und HTML5-Audio aufhört zu saugen, werde ich Spaß daran haben, mit Javascript <canvas>und all dem zu spielen, aber ich werde nicht so weit gehen, damit ein poliertes Spiel zu produzieren. Es läuft darauf hinaus, was Ihre Ziele sind. Sehr wenige, die ich kenne und die keine Entwickler sind, haben sogar mobile HTML5-Spiele auf ihrem Radar. Wenn Sie fantastische HTML5-Spiele erstellen möchten, erstellen Sie HTML5-Spiele. Wenn Sie großartige Spiele entwickeln und verkaufen möchten, sollten Sie die Qualität der Spielerfahrung zu einer Priorität machen.

michael.bartnett
quelle
Update Mitte 2012 anfordern - Hat sich die HTML5-Spieleentwicklung verbessert? Gibt es immer noch Leistungslücken und Audioprobleme?
Flash
3

Überprüfen Sie http://cocos2d-javascript.org/

Es ist noch nicht vollständig implementiert. Aber wenn das erledigt ist, ist es vielleicht das Beste :)

Es gibt ein paar Demos auf dieser Seite, sie sind ziemlich gut ...

Edit: Nur überprüft, die Demos sind nicht mobilfreundlich ...

saiy2k
quelle
3

Wie andere Antworten gezeigt haben, ist der Leistungsunterschied ziemlich groß. Es gibt jedoch neue Möglichkeiten, um die native Webleistung im Web zu erzielen (mithilfe von Chrome).

MonoGame ist eine Implementierung des XNA-Frameworks, das so konzipiert ist, dass es auf möglichst vielen Plattformen funktioniert. Wenn dies mit Google Chromes NaCl (Native Client) kombiniert wird, sind die Ergebnisse ziemlich erstaunlich (erfordert Chrom).

Mein Rat wäre, eine native App in XNA oder MonoGame zu erstellen und NaCl und / oder ExEn in Betracht zu ziehen , um Ihr Spiel auf andere Plattformen zu bringen. Die überwiegende Mehrheit Ihrer Codebasis ist für alle Plattformen gleich, aber aufgrund der geringeren Größe wird Ihr Spiel nicht so einfach wie ein HTML5-Spiel sein.

Meiner Meinung nach ist HTML5 in Bezug auf die nutzbare Leistung noch nicht verfügbar. Es gibt jedoch andere Optionen, die mit der Zugänglichkeit von HTML5 vergleichbar sind, obwohl die Veröffentlichung Ihres Spiels etwas komplexer (und in manchen Situationen auch kostenintensiver) ist.

Darren Reid
quelle
Oh mein Gott, ich dachte NaCl wäre nur für nativen C ++ Code, aber es läuft auch mit Mono ?!
David Gouveia
1

Ich empfehle dringend libgdx, ein Java-basiertes Framework, das hauptsächlich für die Bereitstellung auf Android und Desktop entwickelt wurde, aber kürzlich HTML5 zu seinem Arsenal hinzugefügt hat. Ich würde es wärmstens empfehlen. http://code.google.com/p/libgdx/

Einige auf html5 portierte Spiele:

Derek
quelle
1

Vielleicht möchten Sie PlayN ausprobieren . Es ist im Moment nicht sehr ausgereift oder gut dokumentiert, und es erfordert einige Anstrengungen, um es zum Laufen zu bringen, aber es ermöglicht Ihnen, Java zu programmieren und Ihr Spiel auf eine Reihe verschiedener Plattformen zu exportieren (im Moment Java, HTML5, Flash, Android und iOS und in Zukunft Windows Phone 7).

Der Vorteil gegenüber Corona, Phonegap usw. ist, dass Ihr Spiel für jede der Plattformen kompiliert wird, anstatt es nur mit einer virtuellen Maschine auszuführen. Dadurch wird sichergestellt, dass Sie auf jeder Plattform eine nahezu native Leistung erzielen.

Benutzer nicht gefunden
quelle
0

Tolle Antwort und Links - danke!

Ich mache ein eigenes Benchmarking (HTML5 / JS und PhoneGap) und finde die gleiche Antwort. HTML5 ist einfach noch nicht da. Ich habe mit keiner der exotischeren Antworten wie App * Mobi gespielt, die behauptet, einen abgespeckten Browser zu haben, der für das Spielen optimiert ist, aber der allgemeine Plan "Schreiben Sie Ihr Spiel in HTML5 und spielen Sie es auf einem Telefon" ist nicht lebensfähig zu diesem Zeitpunkt. Es mag dort ankommen, aber ich bin mir nicht sicher. Der Browser ist einfach nicht als Rendering-Engine gedacht und wir springen durch eine Menge Reifen, um dorthin zu gelangen. Ich denke, stattdessen wird jemand eine Alternative finden, die eine kritische Masse erreicht und die sich auszieht. Wir werden sehen.

Ich würde jedes Feedback und jede konstruktive Kritik über meine Arbeit, die auf GitHub veröffentlicht wird und für alle kostenlos ist, begrüßen.

https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-

Spielemacher
quelle