Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

1

10.08.2012, 00:51

Javascript zu AndroidApp/IphoneApp

Halloooo,
bin gerade dabei ein kleines Javascript Spiel (canvas) zu entwickeln das ich auch gerne in den Android/Apple Store stellen möchte, nun kommt die Frage, wie schaffe ich ein javascript Spiel in z.B. eine .apk (Android) Datei umzuwandeln?

Da dachte ich mir, es müsste ja ein offline Javascript-Interpreter geben der "Javascript" sozusagen in "Java" umwandelt, so wie es auch die meisten Internet Browser machen (Also die wandeln javascript in irgend nativen Code um Bsp. C++ oder so).
So ich habe jetzt mehrere Programme wie z.B. phoneGap, Titanium gefunden, doch ich habe keine Ahnung wie die funktionieren und ob die für Spiele optimiert sind und ob sie performanter als die vorinstallierten Browser sind. ( Mein Spiel ruckelt jetzt schon im vorinstallierten Android Browser... )

Hat jemand Erfahrung mit den Programmen oder kennt ihr andere Methoden um Javascript Spiele in die Stores zu stellen?

meine Idee wäre gewesen, dass ich eine Java App schreibe, die einfach den Browser mit dem Javascript-Spiel offline aufruft, aber da ich die Neigungssensoren brauche funktioniert das Spiel im momentanen Standard Android Browser (2.2.3) nicht... (in Opera funktionierts)

Dankee,
mfG Nexxtron :)
New Project: Operation CityRacer

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

10.08.2012, 08:09

nativer Code, also Maschinencode, ist kein C++ oder Java (es sei denn, der Prozessor selbst kann direkt damit umgehen - sehr unwahrscheinlich)

eine App, die den Browser verwendet:
das wäre auch eine meiner Vorschläge gewesen, um es ganz billig zu lösen
allerdings hast du bereits geschrieben, dass es so zu langsam läuft (mit weelchem Gerät getestet?) und dass du nicht auf die Sensoren zugreifen kannst
bezüglich Sensoren:
Opera hat schon vor einiger Zeit (quasi für die Wii bzw. durch die Wii beeinflusst) "Widgets" in den Browser integriert, die HTML + CSS + Javascript Anwendungen sind
auf der Wii ausgeführt konnten diese auf die Daten der Wiimote zugreifen (Neigungssensor etc.)
entweder hast du genau diese API verwendet, weshalb es nur in Opera funktioniert
oder der Standardbrowser liefert tatsächlich nicht diese Funktionalität (kann ich mir ehrlich gesagt nur schwer vorstellen)

weitere Möglichkeiten wären:
eventuell kannst du auch einen in Java geschriebenen JavaScript interpreter verwenden, allerdings denke ich, dass das auch nicht ohne Aufwand funktionieren würde
es könnte sein, dass die Anwendung durch den Interpreter unnötig vergrößert wird...

und dann gibt es noch die von dir angesprochene Möglichkeit:
die Umwandlung deiner Anwendung in Java-Code oder Dalvik-Bytecode (?)
da kann ich dir leider keine Hinweise geben, weil ich mich damit bisher nicht beschäftigt habe
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

SirP

Frischling

Beiträge: 6

Wohnort: Hamburg

  • Private Nachricht senden

3

10.08.2012, 08:29

Mit Javascript ein perfomantes Spiel zu entwickeln, das möglichst auch noch auf allen Browsern flüssig läuft, ist schon eine extreme Herausforderung. Nicht umsonst benutzen die grösseren Browserspiele wie "Die Siedler" Flash.
Ich weiss natürlich jetzt nicht, wie komplex und aufwendig dein Spiel ist oder werden soll, oder ob es vielleicht möglich wäre, dass du dein Javascript-Code noch ein wenig optimierst.
Vielleicht hilft dir das aber weiter:
http://www.appmobi.com/?q=HTML5-game-dev-engine

Oder auch ne sehr schöne Sache, da es meiner Meinung die Zukunft der Browserspiele sein wird, ist das hier
http://www.ichemlabs.com/1375

4

10.08.2012, 09:31

Die meisten HTML5 Spiele die auch als App verfügbar sind, funktionieren einfach mithilfe der WebView-Komponente, die im Grunde die komplette App darstellt.
http://developer.android.com/reference/a…it/WebView.html
http://developer.apple.com/library/ios/#…IWebView_Class/

Wenn du das bereits probiert hast und keinen Zugriff auf die Sensoren hast, könntest du mit der nativen App die Sensoren per JavaScript als Objekt reinreichen und regelmäßig abfragen. Das macht das ganze aber sicher nicht schneller.

Edit: Evt. solltest du mal ausprobieren den WebChromeClient für die WebView zu nutzen: http://developer.android.com/reference/a…romeClient.html

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chromanoid« (10.08.2012, 09:42)


Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

5

10.08.2012, 22:11

Erstmal Danke für die Antworten.

Ich habe heute mal die WebViews von Android ausprobiert und konnte auch ganz einfach die Sensor Werte an Javascript übergeben per einfachem Funktionsaufruf mit den Sensorwerten als Parameter. Gefällt mir eigentlich sehr gut, doch die Geschwindigkeit ist halt nicht so der "Renner". ( Und ich dachte Html5 mit Canvas ist die neue Zukunft für Spiele... )
Ich benutze ja die JSBox2D und ich denke dadurch ist das Spiel auf Handys recht langsam. Wäre es eigentlich eine Möglichkeit die Berechnungen mit JavaBox2D durchzuführen und sie dann an Javascript wie die Sensorwerte durchzureichen? oder Unfug? ( Nur so ein Gedanke )
Naja Beste Lösung wäre das Spiel in Java umzuschreiben, aber dann kann ich wiederum keinen Apple Support anbieten, zumal der App Store von Apple um einiges besser als der von Android/Google ist...

@SirP hab mir mal das DirectCanvas angeschaut, aber irgendwie versteh ich nicht wie ich das benutzen kann oder in mein jetztiges Spiel integrieren kann...

Btw: Ich benutze zum Testen meistens Samsung Galaxy S1 und ab und zu mal das Iphone 4, doch die Performance ist so naja, bei 4-5 Physik Objekten...

Edit: wobei, hab es nochmal im Browser mit Iphone 4 getestet und läuft seeeehr viel besser als mein Galaxy S1 ( Ich glaub mein Galaxy gibt bald den Geist auf :D )
New Project: Operation CityRacer

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nexxtron« (10.08.2012, 22:19)


6

10.08.2012, 23:04

Vielleicht solltest du dir mal GWT oder besser (im Falle von 2D Spielen) Google PlayN anschauen. Ansonsten würde ich das Spiel an deiner Stelle einfach weiter mit JavaScript entwickeln und hoffen, dass wenn du fertig bist, genug Geräte performant dein Spiel präsentieren können.

Ich hab mich neulich auch mal mit Browser-Cross-Plattform beschäftigt. In diesem Fall mit Browser-Cross-Plattform-3D-Spielen. Hier mein persönliches Ranking der Möglichkeiten:
Category
Importance
Java/Java Applet/WS
GWT WebGL/HTML5 with Java/Java Applet/WS fallback
(GWT) HTML5/WebGL
Unity
Flash
Ease of 2D content creation 1 3 3 2 3 1
Ease of 3D content creation 1 2 3 3 1 2
Ease of GUI creation 1 3 4 2 4 1
iOS Support 2 3 3 - 1 2
Android Support 2 1 1 3 2 2
In-Browser availability 2 2 1 2 3 1
Performance 2 1 2.5 3 1 2
Pricing 3 1 1 1 3 2
Technology lifetime 3 1 2 (Google support?) 1 2 (one vendor) 3
Java server compatibility 4 1 3 (WebSocket) 3 (WebSocket) 2 2
Commercial support 5 3 3 3 1 2
Flash führt aus meiner Sicht. Ich bin mal gespannt, wie es mit Adobe AIR weitergeht, aber ich sehe da sehr positiv in die Zukunft. Ich habe bereits einige Tests gemacht und bin begeistert wie schnell und angenehm man mit Flash solche Spiele für mobile Endgeräte und den Browser erstellen kann. Allerdings benutze ich auch Flash CS6 und Flash Builder, da ich Adobe Creative Cloud Mitglied bin... Mit FlashDevelop und dem FlexSDK ist das ganze sicher etwas tüfteliger.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Chromanoid« (10.08.2012, 23:19)


Werbeanzeige