Programmiersprache für HTML5 Spieleeditor
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
beispiel
brauchen
code
compiler
entscheiden
fehlermeldung
frage
http
interpreter
jemanden
lernen
nahe treten
nehmen
nutzer
paar
problem
programmiersprache
spiel
sprache
url
-
Hallo Leute,
ich entwickle momentan einen browserbasierten Spieleditor für HTML5 Spiele. Die Idee dahinter ist, einen einfachen Einstieg in die Spieleprogrammierung zu bieten. Das ganze sieht folgendermaßen aus:
http://dl.dropbox.com/u/6980502/gamecreator-screen-1.png
Die Frage ist jetzt, welche Programmiersprache für den Nutzer dieses Spieleeditors am einfachsten zu erlernen bzw. verwenden wäre.
Ich hatte zuerst überlegt einfach Javascript zu verwenden, da dies ja die übliche Sprache für HTML5 Spiele ist.
Allerdings habe ich bei dem Programmieren einiger Beispielspiele gemerkt, dass es mit Coffeescript weitaus komfortabler ist, objektorientierten Code zu schreiben und der Code auch insgesamt einfacher zu überschauen ist. Leider kann man Coffeescript nicht so einfach debuggen, da sich Fehlermeldungen etc. immer auf den kompilierten Code beziehen. Das könnte vor allem für Programmieranfänger ein größeres Problem sein.
Was meint ihr?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
abi-physik schrieb:
Was meint ihr?
Der Vorteil von JavaScript ist, dass ihn schon viele beherrschen. Da der Anfänger sowieso etwas lernen muss, wäre es mit JavaScript auch nicht verkehrt. Ansonsten müsste jeder(!) etwas neues lernen (zb Coffeescript). Es müsste aber auch recht einfach sein, beides zu implementieren?
Ich denke, es ist weniger eine Frage der Sprache, sondern viel eher wie deine Engine aussehen wird und was diese beherrscht. Da man dann mit normalen Funktionsaufrufen schon recht weit kommt, wären die JS <-> Coffeescript Scripte garnicht so unterschiedlich. -
D CoffeScript - wenn ich das richtig verstanden habe - zu JS kompiliert wird, könntest du dem Nutzer doch die Möglichkeit lassen, selbst zu entscheiden.
Wenn er es möchte, wird der Code halt vorm Ausführen kompiliert, sonst nicht.
Till -
Das Problem ist in der Tat, dass JavaScript die einzig native Programiersprache ist, die in Browsern läuft. Von daher wirst du das Problem mit den fremden JavaScript-Fehlermeldungen in jeder nicht-JavaScript-Sprache nicht völlig umgehen können.
Es gibt viele Compiler, die von einer Sprache in JavaScript umcompilieren. Coffeescript ist da nur eine Sprache von vielen.
Was deinen Anforderungen ansonsten am nächsten kommt, ist Google Dart. Für einige Browser ist geplant, dass Dart auch nativ laufen kann. Derzeit gibt es einen Cross-Compiler, der in JavaScript compiliert.
Dart ist noch eine sehr junge Sprache und noch stark in der Entwicklung. Es können sich also noch einige Sachen ändern. Es ist in diesem Kontext aber auf jeden Fall erwähnenswert. -
Debugging
bladehunter schrieb:
Das Problem ist in der Tat, dass JavaScript die einzig native Programiersprache ist, die in Browsern läuft. Von daher wirst du das Problem mit den fremden JavaScript-Fehlermeldungen in jeder nicht-JavaScript-Sprache nicht völlig umgehen können.
Genau das ist das Problem und daher bin ich jetzt auch zu dem Entschluss gekommen, erstmal Javascript als Programmiersprache zu nehmen. Dadurch sind die Fehlermeldungen besser verständlich und man kann besser debuggen.
Programmiersprache
tillpro schrieb:
D CoffeScript - wenn ich das richtig verstanden habe - zu JS kompiliert wird, könntest du dem Nutzer doch die Möglichkeit lassen, selbst zu entscheiden.
Wenn er es möchte, wird der Code halt vorm Ausführen kompiliert, sonst nicht.
Das wäre schon machbar. Man könnte des Nutzer praktisch zwischen Javascript, Coffeescript, Google Dart etc. wählen lassen, allerdings denke ich, dass es erstmal einfacher ist nur eine Möglichkeit zu implementieren. Vor allem da ich noch ein paar Tutorials und Beispielspiele hochladen wollte. Wenn die dann alle in unterschiedlichen Sprachen sind, verwirrt das Programmieranfänger eher. Vielleicht werde ich das später hinzufügen.
Objektorientierter Code
Ein Problem, dass ich bei Javascript gesehen hatte war ja die fehlenden Möglichkeiten -übersichtlich- objektorientieren Code zu schreiben. Ich hab jetzt nach ein paar Umwegen über EXT JS und andere Frameworks zu Mootools gefunden. Mit dem Framework kann man ganz gut objektorientiert programmieren.
http://dl.dropbox.com/u/6980502/gamecreator-screen-2.png
Spieleengine
trueweb schrieb:
Ich denke, es ist weniger eine Frage der Sprache, sondern viel eher wie deine Engine aussehen wird und was diese beherrscht. Da man dann mit normalen Funktionsaufrufen schon recht weit kommt, wären die JS <-> Coffeescript Scripte garnicht so unterschiedlich.
Ja, das denke ich auch und da liegt auch jetzt das entscheidende Problem. Ich habe zunächst eine kleine Basisklasse mit Gameloop, ein paar Hilfsfunktionen für das Canvas und eine Vektorklasse für die Spiele geschrieben. Das geht soweit ganz gut. Allerdings wollte ich eigtl. keine komplette Spieleengine selber schreiben und habe mich daher schonmal ein bisschen umgeschaut:
https://github.com/bebraw/jswiki/wiki/Game-Engines
Und auch eine Physikengine hab ich gefunden:
http://code.google.com/p/box2dweb/
Die Physikengine funktioniert ganz gut, ich habe sie auch schonmal testweise eingebunden:
http://www.html5gamecreator.de/games/15/box2d
Aber bei den Spieleengines habe ich noch keinen Überblick. Könnt ihr da eine empfehlen, oder soll ich doch versuchen eine kleinere Engine selber zu schreiben?
-
Ohne jemanden zu nahe treten zu wollen, aber Javascript beinhaltet Script und ist somit eine Scriptsprache und keine Programmiersprache.
Eine Game Engine für HTML5 basiert zu 100% auf JavaScript.
Im Backend, kann es sein was will, PHP, C, C++, D, usw.
Wichtig ist halt nur, das man Javascript beherrscht oder zumindest weiß wo die gröbsten Fehlerquellen liegen, dann kann man damit schon viel machen.
p.s. Je nach dem was für dich am einfachsten ist, kannst du auch ein eigenes FW schreiben. Doch ideelerweise bieten sich FWs an, da man zu 90% eh das gleiche Zeug nur neu schreibt. Also einfach JS lernen und dokumentationen lesen, Script anschauen.
Beitrag zuletzt geändert: 5.2.2012 13:54:11 von dexus85 -
dexus85 schrieb:
Ohne jemanden zu nahe treten zu wollen, aber Javascript beinhaltet Script und ist somit eine Scriptsprache und keine Programmiersprache.
Warum sollten Scriptsprachen keine Programmiersprachen sein?
Eine Game Engine für HTML5 basiert zu 100% auf JavaScript.
Nicht zwangsläufig. Man kann schließlich auch andere Sprachen nehmen und diese dann zu JavaScript umcompilieren lassen. Beispiele sind Google Dart und ClojureScript.
Und möglicherweise wird sich Dart in den nächsten Jahren auch als native Scriptsprache in den Browsern etablieren.
-
bladehunter schrieb:
dexus85 schrieb:
Ohne jemanden zu nahe treten zu wollen, aber Javascript beinhaltet Script und ist somit eine Scriptsprache und keine Programmiersprache.
Warum sollten Scriptsprachen keine Programmiersprachen sein?
Eine Game Engine für HTML5 basiert zu 100% auf JavaScript.
Nicht zwangsläufig. Man kann schließlich auch andere Sprachen nehmen und diese dann zu JavaScript umcompilieren lassen. Beispiele sind Google Dart und ClojureScript.
Und möglicherweise wird sich Dart in den nächsten Jahren auch als native Scriptsprache in den Browsern etablieren.
Da Scriptsprachen einen Interpreter brauchen. Und Programmiersprachen nach dem Compilieren keine Interpreter mehr benötigen.
Doch ich will da nicht zu tief einsteigen.
Was die Game Engine für HTML5 angeht hast du dir selbst widersprochen ;) Schließlich läuft es wieder auf JS hinaus.... egal worin es im ersten schritt gescripted wurde. -
dexus85 schrieb:
Da Scriptsprachen einen Interpreter brauchen. Und Programmiersprachen nach dem Compilieren keine Interpreter mehr benötigen.
Scriptsprachen brauchen nicht zwangsläufig einen Interpreter. JavaScript ist da ein besonders schönes Beispiel: Moderne Browser haben aus Geschwindigkeitsgründen Compiler für JavaScript an Bord, so dass der Code direkt in Binärcode zum ausführen compiliert werden kann.
Selbst Wikipedia bezeichnet Scriptsprachen als Programmiersprachen:
A scripting language, script language, or extension language is a programming language [...]
Was die Game Engine für HTML5 angeht hast du dir selbst widersprochen ;) Schließlich läuft es wieder auf JS hinaus.... egal worin es im ersten schritt gescripted wurde.
Das ist kein Widerspruch. Wir reden hier schließlich darüber, worauf diese Engine basiert. Und da ist die Urform des Codes etwas, was berücksichtigt werden muss. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage