senäh

17senäh und so…

HTML/CSS/JS
18. Jul 2011
Kommentare: 2

Motivation HTML5 zu lernen

Kategorien: HTML/CSS/JS | 18. Jul 2011 | Kommentare: 2

Eigentlich bin ich ja Vollzeitentwickler für Flash und AS3. Mit Flash habe ich angefangen programmieren zu lernen. Hier kenne ich mich aus, hier weiß ich, was ich mache. Und ehrlich gesagt hatte ich nie einen Grund was anderes zu machen. Aber ich interessiere mich sehr für Videospielentwicklung und der Markt hat sich – gerade für kleine Entwickler – in den letzten Jahren Richtung Mobile Devices entwickelt. Und hier liegt der Hund begraben. Flash läuft nicht (=iOS) oder nur schlecht (=Android) auf Mobile Devices. Irgendwie muss eine Alternative her…

Was könnte man also dagegen machen? Am besten wäre eine Möglichkeit bei der man die eigenen AS3-Kenntnisse weiterhin nutzen könnte. Vom Weg über den Flash Player abgesehen kann man noch AIR als Mittel zum Zweck verwenden. Leider war ich auch hier von der Performance enttäuscht, als ich ein kleines Projekt auf meinem HTC Desire testete. Der Hauptfeind von Flash ist die Performance – zumindest in meinen Anwendungsfällen. Da bleibt nur die native Entwicklung als Alternative.

Flash Player vs. AIR

Flash Player vs. AIR

Da lass ich mich nicht lumpen! Ich habe angefangen mir XNA und C# für Windows Phone 7 und Java für Android anzuschauen. Es war zwar sehr interessant, aber der Funke sprang nicht so richtig über.
XNA und C# sind technologisch gesehen wirklich super, aber Windows Phone 7 ist kein allzu großer Markt. Hätte es sich wirklich gelohnt viel Zeit in XNA und C# zu stecken?
Java war sehr ähnlich zu AS3, aber ich bin nicht richtig warm geworden mit den Activities und dem Lifecycle von Android. Dafür wäre der Markt hier interessant und groß gewesen.
Und dann wäre da ja noch der App Store für iOS-Geräte, den ich noch gar nicht berücksichtigt hatte. Dabei ist es DER Markt für mobile Spiele und was Verkaufszahlen betrifft. Aber auch noch extra Objective-C lernen? Puuh… das wäre wirklich ein Krampf. Irgendwie musste dann doch eine Cross-Platform-Lösung her. Klar gibt es da Performanceprobleme und andere Einschränkungen, aber es ist was die Entwicklungszeit und den Lernaufwand betrifft unschlagbar. Und wer will sich für schon eine Plattform entscheiden müssen? Soll ich mich etwa einfach für die Plattform mit dem größten Markt entscheiden? Aber was, ist wenn sich der Markt in den nächsten Jahren noch ändert? Das ist wirklich keine leichte Entscheidung…

WP7 vs. iOS vs. Android

WP7 vs. iOS vs. Android

Zufällig bin ich irgendwann auf die Delta Engine gestoßen. Von der Präsentation auf der Quo Vadis war ich so begeistert, dass ich die Engine eigentlich zu meinem Bachelorthema machen wollte. (Eines von den vielen Themen, die ich schon machen wollte^^) Die Delta Engine ermöglicht es mit einem XNA-ähnlichen Framework Spiele für Windows, Mac, iOS, Android und Windows Phone 7 zu programmieren. Wow! Alles mit einer Codebasis. Für mehr Infos empfehle ich den Link zur Präsi. Leider ist die Engine noch WIP (= Work-in-progress) und die Lizenzen haben so ihre Tücken. Während die Engine frei sein soll, muss man sich noch um andere Lizenzen wie MonoTouch kümmern. Das war mir alles zu unsicher und zu heikel für eine Bachelorarbeit, auch wenn das Thema interessant war. Ich habe anschließend noch einen Blick auf das UDK und Unity geworfen, mit denen man ebenfalls für iOS und Android Spiele entwerfen kann. Sehr mächtige Tools, (für ihre Leistung) kostengünstig, aber nur auf Videospiele beschränkt. Bei Flash mochte ich die Möglichkeit außer Videospiele noch MicroSites und Webanwendungen erstellen zu können.
Die Game Engines waren für mich also auch nicht das Gelbe vom Ei. Denn auch wenn ich das Entwickeln von Spielen bevorzuge, ist ein Arbeitsplatz in der Webentwicklung sicherer. Spiele sind für mich eher ein Hobby.

Delta Engine vs. UDK vs. Unity

Delta Engine vs. UDK vs. Unity

Währenddessen habe ich natürlich auch weiterhin nach einem passenden Bachelorthema gesucht. Wieder einmal. Ich hatte bestimmt schon gefühlte 17 Stück von denen ich überzeugt gewesen war „DAS ist es“! Was soll ich sagen? Mittlerweile habe ich ein neues Thema und DAS ist es jetzt aber wirklich! Grob formuliert handelt es sich um eine Webanwendung.
Moment mal! Schreibe ich hier so einen langen Artikel um am Ende herauszufinden, dass ich doch bei Flash und AS3 bleiben sollte? Natürlich nicht. Denn jetzt fiel mir ein Bereich ins Auge, den ich aus irgendeinem Grund bisher ignoriert hatte.

Womit kann ich Anwendungen und Spiele erstellen? Wo brauche ich mir keinen Kopf um irgendwelche Lizenzen machen? Was läuft auf jeder relevanten Plattform?

Die Antwort ist so einfach wie gut: HTML5.

HTML5 Logo

HTML5 Logo

Mittlerweile weiß ich, dass sich hinter dem Buzzword HTML5 weit mehr versteckt. Das schönste HTML5 nützt nichts ohne das Zusammenspiel mit anderen Technologien wie JavaScript und CSS3, aber in Verbindung mit diesen Technologien erhält man ein sehr mächtiges Spielzeug. Die offenen Standards erlauben die Verwendung von Projekten wie PhoneGap, welches die HTML5-Anwendung in eine native Anwendung wrappt und so die Veröffentlichung auf den AppStores der Mobile Devices ermöglicht. Außerdem hat man Zugriff auf viele gute und auch mir bereits vertraute Frameworks. Box2D mit JavaScript? Null problemo. Und auch die Performance war bei einem ersten einfachen Test gar nicht so schlecht.

Außerdem habe ich ja schon einmal mit HTML gearbeitet. Und CSS. Und ein wenig mit JavaScript. Nicht viel, aber ein bisschen. Aber lang ist’s her und seit dem habe ich mit AS3 eine vollständig klassenbasierte objektorientierte Programmiersprache gelernt. Ich muss jetzt einiges neu lernen und besonders umdenken lernen. Mit Klassen komme ich bei JavaScript nicht weit.

Aus diesem Grund werde ich in absehbarer Zeit immer mal ein paar Fortschritte von mir beim HTML5 (+JavaScript+CSS+PHP+etc.) lernen in Artikeln festhalten. Einfach um mich etwas motiviert zu halten. Und vielleicht interessiert es euch ja auch 😉

Für alle, die wie ich neu in der Materie sind, empfehle ich euch folgende Seiten:

  • HTML 5 Tutorial: Absoluter Einstieg in HTML5. Für alle die noch nie etwas davon gehört haben.
  • W3Schools: Mein absoluter Favorit. Ein umfassenderen und übersichtlicheren Überblick und Einstieg in alle relevante Webtechnologien habe ich noch nie gesehen.
  • Dive into HTML5: Eine ausführlichere Übersicht über HTML5. Enthält u.a. sehr viele Informationen zur geschichtlichen Entwicklung, aber auch sehr praktische Beispiele.
  • HTML5Rocks: Kleine Tutorialsammlung (recht speziell).
  • Web Development from Scratch und Best Practices for readable Code: Für alle, die wirklich noch nie mit Webentwicklung in Berührung gekommen sind.
  • HTML5 Canvas Cheat Sheet: Cheat Sheet für HTML5 Canvas 😉

Na dann viel Spaß beim Lernen und Experimentieren 🙂

Autor: Pipo

...kommt ursprünglich aus der Designerecke, ist aber im Laufe seines Studiums in die Webentwicklung gestolpert. Kann sich seit dem nicht so richtig entscheiden wo er hingehört und wagt deswegen vielleicht die Flucht nach vorne in ein komplett neues Gebiet. Vielleicht Management? Niemand weiß es. Auch er nicht.