Category Archives: Entwicklung

Ressourcen für Spieleentwickler

gamedevlearning_1

gamedevlearning.com ist ein neues capribeach-Projekt. Die Webseite listet Ressourcen für Spieleentwickler. Wie vielfältig die Softwareentwicklung ist, wenn es um Games geht, zeigen die 15 Rubriken:

  • Game Design
  • Coding Concepts
  • Artificial Intelligence
  • APIs/Frameworks
  • Game Engines
  • Development Tools
  • Graphics Tools
  • Math & Physics
  • 3D Graphics
  • Drawing
  • Concept Art
  • Animation
  • Sound Production
  • Inspiration
  • Business

Die Szene der unabhängigen Spieleentwickler („Indies“, Independent Game Developer) ist international. Es ist ein faszinierendes Feld, bei dem das Lernen nie aufhört. gamedevlearning.com hilft, die besten Tutorials, Videos, Vorlesungen, Podcasts, Tools, Game Engines und Erfahrungsberichte aus der Praxis im Internet zu finden.

Die Datenbanklösung wurde mit Django/Python und PostgreSQL realisiert. Die Suchfunktion arbeitet mit Elasticsearch.

Happy Learning!

Box2d-Simulationen mit LiquidFun

[youtube]http://www.youtube.com/watch?v=bofu6Hw7u5s[/youtube]

Für Wasser und Flüssigkeiten hat Google die freie Physik-Engine LiquidFun vorgestellt. Es ist eine Erweiterung von Box2d auf Basis von C++. Der Quellcode, kurze Beispielvideos und die Dokumentation der Bibliothek finden sich im Github-Depot von LiquidFun. Über Details des Open Source-Projektes informieren Todd Kerpelmann und Wolff Dobson im Android-Entwickler-Channel auf Youtube: Game Physics with LiquidFun

Versionskontrolle zum Nulltarif

logoBitBucket

Quellcode ist immer extrem empfindlich. Ein fehlendes Semikolon und schon geht gar nichts mehr. Zum Glück gibt es Tools für die Versionskontrolle. Git und Subversion (SVN) gehören zu den bekanntesten Verwaltungssystemen für Projektdateien. Wenn Quellcode (oder auch jede andere Art von Dateien) unter Versionskontrolle steht, dann werden alle Änderungen protokolliert. Man kann jederzeit auf einen vorherigen Stand in der Codeentwicklung zurück gehen und alle Zustände des Projektes landen sicher in einem Archiv. Ein solches System ist auch Gold wert, wenn mehrere Entwickler gemeinsam an einer Codebasis arbeiten.

GitHub und Google Code sind beliebte kostenlose Lagerplätze für freie Projekte (Open Source). Für Entwicklerteams bis fünf Personen bietet Bitbucket von Atlassian ein sehr gutes Angebot. Das australische Unternehmen stellt kostenfrei Lagerplatz für beliebig viele – auch private – Repositories zur Verfügung. Wenn bis zu zehn Entwickler an einem Projekt arbeiten, dann werden moderate 10 Dollar im Monat fällig. Die Dokumentation von Bitbucket ist hervorragend. Es wird Schritt für Schritt gezeigt, wie das Versionsmanagement mit Git (oder Mercurial) läuft. Damit wird die Installation und Inbetriebnahme zum Kinderspiel. Zusätzlich zur Dateiverwaltung gibt es bei einem Bitbucket-Repository nach Bedarf auch einen Issue-Tracker und ein Wiki mit dazu.

Prototyping: Phase 2 der Entwicklung

Construct2

Keiner ahnt, wie viele Ideen ein Studio antestet, bevor mit der Arbeit an einem Game begonnen wird. Es ist immer verlockend, eine Idee schnell in Code umzusetzen. Doch Vorsicht: Auch kleine Apps und Games sind oft komplexe Gebilde. Ideen sind trügerisch. Auf den ersten Blick erscheinen sie  genial. Später zeigt sich, dass irgendetwas nicht stimmt. Ein bewusster Prozess des Ideentestens und Ideenverwerfens ist daher ein guter Weg, um unnütze Entwurfs- und Programmierarbeit zu vermeiden. Das spart Zeit und Energie. Die Spieleentwicklung lässt sich grob in vier Phasen einteilen: Ideenfindung, Prototyping, Design & Programmierung sowie Vermarktung. Mit dem Prototyping werden Ideen frühzeitig auf ihr Potenzial getestet. Der Prototyp des Spiels dient dazu, die innere Mechanik eines Konzeptes auszuprobieren. Eine Idee muss sich in der Praxis beweisen.

Ziel des Prototypen ist es, den Kern des Spieles erlebbar zu machen.  Dabei werden drei Ebenen des Game Designs ausgeklammert: die Spielästhetik, die Story und die technologische Plattform. Nur die vierte Ebene – die Spielemechanik – steht beim Prototyping auf dem Prüfstand. Daher sollten zu diesem Zeitpunkt auch noch keine Bilder oder Soundelemente produziert werden. Die drei erstgenannten Ebenen – Ästhetik, Story und Technologie – können im Prinzip auf jede Mechanik aufgesetzt werden. Sie sind bei der Spielentstehung der zweite oder dritte Schritt. Am Anfang der Entwicklung ist eine funktionierende und begeisternde Spielemechanik das wichtigste. Ohne eine solche ist es nicht sinnvoll, die späteren Phasen zu beginnen.

Optimal ist es, wenn der Prototyp für eine Idee schnell und einfach umgesetzt werden kann. Nach Erfüllung seines Zweckes wird der Prototyp zur Seite gelegt und nicht weiter entwickelt. Für diese Art des unverbindlichen Testens von Spielekonzepten stehen viele Werkzeuge zur Verfügung, die in einer Basisversion kostenfrei genutzt werden können. Beliebte Tools im 2D-Bereich sind die Baukastensysteme Game Maker von YoYo und Construct 2 von Scirra.  Unter den vielen Cross-Plattform-Lösungen für App-Entwickler bieten sich Stencyl oder die Lua-Scripting-Frameworks Corona und Gideros Mobile an. Mit allen diesen Werkzeugen können Apps und Spiele auch komplett entwickelt werden. Allerdings besteht dann auch immer die Abhängigkeit von diesen Plattformen und ihren jeweiligen Unternehmen. capribeach software nutzt Construct 2 ausschließlich für das schnelle Prototyping. Für die eigentliche Entwicklung kommen die systemnahen Plattform-SDKs zum Einsatz. Diese werden je nach Anwendungsfall mit freien Bibliotheken und offenen Frameworks ergänzt, beispielsweise Cocos2d für iOS und libgdx für Android.

Facebook kündigt App Center an

Facebook App Center

In den kommenden Wochen will Facebook ein eigenes App Center starten. Entwickler können sich mit ihren Apps für die Aufnahme bewerben. Gelistet werden ausschließlich Anwendungen, die den Richtlinien von Facebook folgen. Eine Qualitätskontrolle soll sicherstellen, dass auf der Plattform nur hochwertige Apps angeboten werden. Facebook will die Ablehnung mit einer Begründung versehen, so dass ein Entwickler sein Produkt auch nachbessern und dann ein zweites Mal einreichen kann. TechCrunch beleuchtet, welche Strategie Facebook mit dieser Ankündigung verfolgen könnte. Auf jeden Fall ist es für Spieleentwickler eine spannende Zeit. Apple und Android und Microsoft und jetzt auch noch Facebook: Die großen Spielplätze, auf denen sich kleine Indies mit ihren Apps präsentieren können, eröffnen Mega-Märkte. Also: An die Arbeit und tolle Apps erfinden. Das Spiel läuft nicht in der Zukunft, sondern jetzt und heute.

Workshop zu Eingabe-Technologien in Berlin

[youtube]http://www.youtube.com/watch?v=bJ8Me4-Zcvw&feature=player_embedded[/youtube]

Aus die Maus. Beim iPhone, iPad und den neuen Android-Geräten geht fast alles per Daumen und Zeigefinger. Diese intuitive Eingabe schafft viele neue Möglichkeiten für Anwendungsentwickler. Spiele wie Angry Birds oder das fröhliche Tiny Wings von Andreas Illiger sind die Renner im App-Store. Vor allem die unkomplizierte Bedienung machen sie so beliebt. Nicht nur Smartphones und Tablets wie das iPad reagieren auf Berührungen. Es werden auch interaktive Tische und andere Multimediasysteme entwickelt, die ohne Maus und Tastatur auskommen.

Zur Jahrestagung der Gesellschaft für Informatik (GI) findet am 6. Oktober 2011 in Berlin ein ganztägiger Workshop zur Entwicklung von Multitouch- und Multipoint-Systemen statt. Der Titel heißt „Softwaretechnik und Anwendung moderner Eingabetechnologien“. Unter anderem sollen Fallstudien und erfolgreiche Beispiele der Umsetzung vorgestellt werden. Die Veranstaltung wird vom Fraunhofer-Institut für Arbeitswirtschaft und Organisation IAO mitorganisiert. Weitere Infos zum Workshop finden sich im Mediawiki des Projektes MT4j – Multitouch for Java, einem Open Source Java Framework. Das Paket MT4j kommt mit einer Reihe von Beispielen, die in der Eclipse IDE gestartet werden können. Ein kleines Tutorial beschreibt, wie man die MT4j-Beispiele als Java-Applikation zum Laufen bringt.

Freie Projekte steigern die Produktivität


Die Motivation für komplexe Tätigkeiten basiert auf intrinsischen Faktoren. Der TechTalk von Dan Pink gibt in rund 19 Minuten eine hervorragende Einführung in dieses Thema.

Software-Entwicklung ist eine Disziplin, bei der hervorragende Leistungen nur mit hoher Konzentration und Kreativität möglich sind. Und das erfordert immer sehr viel Motivation. Daniel H. Pink liefert in seinem Bestseller Drive: The Surprising Truth About What Motivates Us einige überraschende Erkenntnisse aus Wissenschaft und Wirtschaft. Die Fakten belegen laut Pink, dass hohe Incentives kontraproduktiv wirken. Klassische Anreizsysteme, nach denen Menschen durch das sprichwörtliche Hinhalten der Karotte nach vorne getrieben werden, funktionieren bei komplexen Aufgaben nicht.

In vielen Unternehmen werden falsche Konzepte für die Mitarbeitermotivation umgesetzt. Pink nennt Beispiele aus der Praxis, die den modernen Theorien folgen. Bei Google können die Entwickler 20 Prozent ihrer offiziellen Arbeitszeit völlig frei für eigene Projekt verwenden. Das australische Softwareunternehmen Atlassian führt diese Idee weiter. Im Rahmen von sogenannten FedEx-Days können mehr als 70 Entwickler  jeweils 24 Stunden an eigenen Ideen arbeiten und diese dann vorstellen. Damit ist das Unternehmen sehr erfolgreich. Es ist kein Wunder, dass Atlassian San Francisco in die Top 25 “Great Place to Work”-Liste gewählt wurde, wie Jon Silvers, der Marketing-Direktor des Unternehmens aus Berkeley, im Atlassian-Blog berichtet.

Smalltalk fällt aus dem Tiobe-Index

Die beiden Klassiker Smalltalk und Eiffel sind  im August 2010 zum ersten Mal nicht mehr unter den 50 populärsten Programmier- sprachen. Im zeitlichen Zusammenspiel mit dem Erscheinen von Apples iPad hat Objective-C hingegen im Tiobe-Index einen Sprung von Platz 19 auf Platz 9 hingelegt. Unter den Top 20 findet sich erstmals die taufrische Sprache „Go“. Sie wurde von Google-Mitarbeitern entwickelt und ist im November 2009 unter einer freien Lizenz erschienen.

Auf den Plätzen 1 bis 5 hat sich im Tiobe-Index nichts verändert. Hier finden sich Java, C, C++, PHP und Basic. C# hat Python überholt und steht jetzt auf Platz 6. Während die Dinosaurier C und C++ auch nach 25 Jahren noch weit oben in der Gunst der Entwickler rangieren, sind die Zeiten für das klassische Smalltalk angesichts so zahlreicher neuer Konkurrenz wohl nahezu vorbei.

Interessant ist der Blick zurück auf die Anfänge der objektorien- tierten Programmierung (OOP), die so eng mit Smalltalk verbunden sind. „Der beste Weg, die Zukunft vorherzusagen, ist sie zu erfinden“, soll Alan Kay einmal gesagt haben. Kay gilt als Urvater der OOP. Er hat in den 70er Jahren auch Smalltalk erfunden. (Seit 1995 unterstützt er unter anderem das Open-Source-Projekt Squeak, mit dem Kinder spielerisch Computersimulationen erstellen können.) Ein beeindruckendes historisches Dokument ist der visionäre Vortrag, den Alan Kay im Jahr 1997 auf einer Konferenz der ACM (Association for Computing Machinery) gehalten hat. Der Titel heißt „The Computer Revolution Hasn’t Happened Yet“. Kay imaginierte die zukünftigen Möglichkeiten der OOP. Er sagte voraus, dass es eines Tages so sein werde, dass jedes Software-Objekt über eine Internetadresse ansprechbar sei.

Mit dem Webframework Django ist genau das heute realisiert: Eine URL kann direkt zu einem Objekt aus dem dahinterliegenden Python-Programm führen. Dies bietet faszinierende Möglichkeiten für die Entwicklung von Internetanwendungen. Smalltalk mag als Dialekt an Bedeutung verlieren. Die Ideen der OOP leben in vielgestaltiger Form mittels Java, C#, Python, Ruby, Go & Co. weiter.

Alan Kays Keynote von 1997 ist rund eine Stunde lang und wird von Google Video bereitgestellt:
[googlevideo]http://video.google.com/videoplay?docid=-2950949730059754521[/googlevideo]

Feine Arbeit vom Smashing Team

smashing_book.jpg
Im Dezember 2009 habe ich ein Besprechungs-Exemplar vom Smashing Book erhalten. Es ist im Format 14 mal 20 Zentimeter kompakt und handlich. Inhalt und Gestaltung überzeugen vollkommen. Und das ist für mich keine Überraschung. Das Buch ist eine Gemeinschaftsproduktion, in dem Könner der Internet-Designerszene ihr Wissen weitergeben.

Vom Interface Design über die Kunst und Wissenschaft des CSS-Layouts bis hin zur erfolgreichen Markenbildung für Webprojekte reicht das Themenspektrum. Das gesamte Buch spiegelt auf seinen 311 Seiten die Liebe zum Design und die Freude an der Arbeit wider. Sehr interessant zu lesen sind auch die letzten 55 Buchseiten. Hier finden sich die Einschätzungen von 24 Webdesignern aus verschiedenen Ländern und im Anschluss daran der Blick auf die Geschichte des Smashing Magazine. Diese Erfolgsstory haben zwei Menschen geschrieben, die für mich zu den Königen des modernen Internets zählen: Sven Lennartz und Vitaly Friedman.

Aus der Beschreibung wird deutlich, wieviel Arbeit in dem Aufbau des Magazins steckt. Beide haben mit großer Energie und vor allem auch durch ihre redaktionelle Unabhängigkeit und Glaubwürdigkeit das Smashing Magazine zum Erfolg geführt. Ich weiß nicht, wie hoch die Abrufzahlen sind – sie sind gigantisch. Für jeden, der sich mit Webdesign beschäftigt, ist das englischsprachige Smashing Magazine heute die erste Adresse im Netz. Das Smashing Book ist von genauso hohem Nutzwert. Es ist fundiert, anregend und glänzend geschrieben. Alles weitere über Inhalt und Aufmachung des Buches (Preis 23,90 Euro): www.smashingbook.com

Happy Coding von Anfang an

C, C# oder C++? Wer Grafikanwendungen coden will, kommt um ein solides Basiswissen nicht herum. Insbesondere für die Spielepgrogrammierung ist C++ nach wie vor das Nonplusultra. In meinen Einsteiger-Tutorials geht es ganz gemütlich um die Grundlagen der Grafikprogrammierung. Dabei werden auch die allgemeinen Basics aufgearbeitet. Das Wissen dazu ist schier unendlich. Doch irgendwo fängt jeder einmal an. Zum Beispiel mit der Frage: Wie erzeugt der Compiler eigentlich eine .exe? Das habe ich mir einmal bildlich für C unter Windows klar gemacht.

c_compiler_linker.jpg

Das Bunny Release ist da

 blender246.jpg

Mit Blender 2.46 wird das Open Movie Projekt “Big Buck Bunny” in den Blickpunkt gerückt. Die neue Ausgabe der 3D-Grafik-Suite heißt deshalb auch einfach “Bunny Release”. Die Version ist das Ergebnis von einem halben Jahr Arbeit. Neu in Blender 2.46 ist zum Beispiel die Unterstützung eines Partikelsystems speziell für die Gestaltung von Haaren und Fellen. Für Character-Rigging steht ein leistungsfähiges Mesh-Deformation-System zur Verfügung und neu ist unter vielem anderen auch die Simulation von Kleidung und Stoffen.

Die gesamte Liste der Neuerungen findet sich auf den Seiten des Community-Projektes: Blender 2.46 

Zum Download geht es hier: Get Blender

Take-off für Django

django_books.jpg 

Das Web-Framework Django hebt in diesem Jahr ab. Nachdem Adrian Holovaty, einer der Gründer des Open-Source-Projektes, Ende 2007 im Apress-Verlag das erste Buch über Django veröffentlicht hat, ziehen jetzt mehrere renommierte Computerbuchverlage in den USA nach. In der „Teach Yourself“-Reihe von Sams ist soeben ein 528 Seiten starkes Django-Buch erschienen. Es wird in diesen Tagen ausgeliefert. Prentice Hall kündigt „Python Web Development with Django“ für August 2008 an. PACKT Publishing steht offenbar kurz vor der Auslieferung von „Web 2.0 Website Programming with Django“. Und Apress schickt mit „Django Projects“ von James Bennett im Sommer 2008 ein zweites Django-Fachbuch in den Ring. Von Marco Gabriel soll auch im deutschen Verlag Open Source Press  voraussichtlich im Mai ein Buch zu Django herauskommen.

Noch ist Django nicht einmal bei der Version 1.0 angelangt. Die Buchverlage setzen dennoch massiv auf dieses Framework. Die Zahl der Veröffentlichungen ist zwar nicht vergleichbar mit der Flut an Titeln, die für Ruby on Rails erhältlich ist. Doch für Python-Programmierer ist es ein sehr gutes Zeichen. Happy Coding!