Vorgestellt: Mit #OctoAwesome und Monogame Dein Jumpstart in die Spieleentwicklung

Sicher, es gibt mittlerweile tolle sogenannte Game Engines, die einem die Spiele-Entwicklung deutlich erleichtern. Vor allem dann natürlich, wenn man es auf Cross-Plattform Gaming abgesehen hat und nicht für PC, Xbox, PlayStation, Windows Phone, iPhone, iPad, Android, etc. nativ entwickeln möchte. Während der Ansatz hier mit z.B. Unity zu arbeiten wirklich sinnvoll ist, halte ich persönlich es für noch sinnvoller, zunächst einmal zu lernen, wie Spiele-Entwicklung überhaupt funktioniert. Dazu gehören meiner Meinung nach viele Basics.

Schön und gut… doch wie lernt man diese Basics? Bücher erscheinen hier schon fast wie ein Anachronismus. Heutzutage lernen die meisten Menschen a) online und b) mithilfe von Videos. Plattformen wie twitch.tv, youtube, Channel9, etc. haben sich dabei hervorragend als Quelle für tolle Videos etabliert, mit denen sich so ziemlich alles erlernen lässt (inkl. dem Doppelten Windsor).

Fangen wir also an mit dem ersten Vorstellungs-Thread auf trimagination.de.

#OctoAwesome

Mit #OctoAwesome hat Tom Wendel, der frühere Microsoft Mitarbeiter und Gründer der AntMe GmbH (ein Unternehmen, das sich mit dem gleichnamigen Lernspiel beschäftigt, das Tom ebenfalls aus der Taufe gehoben hat), eine YouTube Let’s Code Serie gestartet, die seines gleichen sucht. Nachdem Tom bereits Erfahrungen mit fast 30 Let’s Code AntMe Episoden machen konnte und gleichzeitig bereits seit längerer Zeit die Idee für ein komplett neues Spiel in ihm reifte, beschloss er, direkt Nägel mit Köpfen zu machen.

Let’s Code #OctoAwesome heißt die neue Serie, deren ersten 100 Episoden in dieser Playlist nachgeschaut werden können. Ziel: Zeigen, wie mit einfachen Mitteln ein komplettes Spiel entwickelt werden kann. Einfach? Das hieß zunächst einmal Windows Forms und GDI. Irgendwann rund um Folge 40 herum kam es entsprechend zu einem umfangreichen Refactoring und seit dem baut #OctoAwesome auf das Monogame Framework auf. Programmiersprache ist C# und die gegenwärtige Version (Folge 172) schaut verdächtig nach Minecraft aus. Das macht aber nichts, denn das ist zum einen kein finales Ergebnis (und ich weiß zufällig, in welche Richtung sich das Spiel noch weiterentwickeln wird,… und es wird Hammer!) und zum anderen besteht der besondere Kick in Toms Videos darin, dass sich alles einfach nachvollziehen lässt – und die Serie damit auch (und insbesondere) für Anfänger geeignet ist.

Besonders charmant: Die Episoden sind in der Regel zwischen 20 und 30 Minuten lang und damit leicht zu verfolgen. Dann und wann ergänzt Tom die Serie auch mit Live Übertragungen auf Twitch und bietet seinen Zuschauern seit neuestem über patreon.org die Möglichkeit, ihn bei dem Projekt (finanziell) zu unterstützen. Nachdem das Coden, Mischen und Veröffentlichen der Episoden nicht gerade wenig Zeit kostet, finde ich das nur fair; vor allem, da sich jeder selbst entscheiden kann, ob ihm Toms Arbeit das Geld wert ist (und wie viel J). Tom selbst beschränkt den Zugang zum Code und den Videos zumindest nicht – selbst wenn man kein Patron ist.

Abschließend bleibt zu sagen, dass es sich bei #OctoAwesome nicht nur um eine Let’s Code Serie handelt, in der interessierte Entwickler die Mechanismen eines modernen Computerspiels erlernen können, sondern darüber hinaus über die aktive Community, die Live Chats und –Broadcasts sowie die Diskussionsplattform auf Codeplex interaktiv daran teilhaben können. Das heißt: Ihr habt sogar Einfluss darauf, wie es weitergeht. Und jetzt mal unter uns: Wie cool ist das denn, bitte sehr?

Hier noch ein paar Links zum direkt mal Drauf-Klicken:

SpriteFonts in MonoGame (und wo es kostenlose Schriftarten gibt)

“Kostenlose Schriftarten?”, höre ich euch sagen, “Da sind doch dutzende Fonts in meinem Windows enthalten!” Stimmt. Die dürft ihr aber nicht in euren Spieleprojekten benutzen. Zumindest nicht, falls ihr plant, diese zu verbreiten. Denn dafür besitzt ihr keine Lizenz. Blöd, ist aber so.

Genau wie ihr Lizenzen für Software, Musik, Texturen, etc. benötigt, müsst ihr auch das Recht auf die Verbreitung von Schriftarten als Teil eures Spiels erwerben. Es sei denn, der Urheber räumt euch das Recht auch ohne Gebühr ein. Falls ihr also nicht gerade selbst eine Schriftart gestaltet und – wie ich – von den Werken anderer abhängig seid, dann besteht eine Möglichkeit darin, nach genau solchen Fonts zu suchen. Ein Tipp: Sucht in dem Zusammenhang nach Fonts mit der Creative Commons Lizenz. Häufig reicht da die Nennung des Urhebers in den Credits aus (Attribution Lizenz).

Das Microsoft XNA Font Pack

Für den Start mit MonoGame gibt es eine weitere Möglichkeit: Microsoft hat vor einigen Jahren speziell für die XNA Entwickler ein kostenfreies Font Pack

veröffentlicht, das als Teil eurer eigenen Projekte auch verbreitet werden darf (Redistribute). Das Pack findet ihr hier. Enthalten sind acht Schriftarten.

Wie ihr nun die Fonts in euren eigenen Projekten verwendet, zeige ich euch in diesem Video:

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

XNA ist tot. Lang lebe MonoGame!

Mit XNA hat Microsoft 2006 ein managed Game Development Kit vorgestellt, das zum Ziel hatte, mittels moderner Technologien und Programmiersprachen auch Einsteigern und Independent Developern den Zugang zur Spiele-Entwicklung vor allem auch für die damalige Next-Gen Konsole Xbox 360 zu ermöglichen. Unter der Haube werkelte das hauseigene DirectX und zu den möglichen Ziel-Plattformen zählten neben Windows und der Xbox 360 auch Windows Phone 7 und der Zune Player. Letzteres ist mittlerweile genauso eingestellt wie seit 2013 auch XNA selbst. Für Windows 8.x und die Xbox One ist damit eine Entwicklung auf Basis von XNA nicht mehr möglich.

Während sich Microsoft wieder auf die native Entwicklung konzentriert und dabei den Fokus zurück auf DirectX und C++ lenkt, hat das die Community nicht davon abgehalten, selbst Alternativen zu XNA zu entwickeln. Dazu gehört z.B. auch ANX, das mit der Abkürzung für „ANX ist not XNA“ Microsofts Humor hinsichtlich des rekursiven Akronyms XNA (XNA is not acrynomed) ebenfalls aufnimmt. Während aber auch ANX scheinbar nicht aktiv weiterentwickelt wird und mit SDKs auf Basis von OpenGL (DER Alternative zu DirectX) wie z.B. OpenTK auch Mittel aus dem anderen Lager zur Verfügung stehen, ist in der Zwischenzeit ein Projekt auf der Bildfläche erschienen, dass ambitioniert genug ist, um XNA wirklich und wahrhaftig abzulösen.

MonoGame

MonoGame hat seine Wurzeln ursprünglich in der Entwicklung von XNATouch, einem Projekt von einem ehemaligen XNA Entwickler, der versucht hat, das Framework auf Touch-Devices auszurichten. Später wurde dann die Gelegenheit ergriffen, das Projekt mit den Versuchen, eine quelloffene Version von .NET (Mono) und dessen hauseigene Entwicklungsumgebung MonoDevelop zusammenzuführen. Heraus kam MonoGame.

Wenn man ein Framework praktisch klont – und nichts anderes passiert hier – dann zunächst mit dem primären Gedanken, es den Nutzern des Originals so einfach wie möglich zu machen umzusatteln. Das passiert hier allein schon dadurch, dass MonoGame die exakt gleichen Namespaces verwendet wie XNA und auch ansonsten Interface-Identisch ist.

Das Killer Feature

Wenn man einen XNA Entwickler nach DEM Killer Feature fragt, das er besonders an XNA liebt, wird in den meisten aller Fälle vermutlich die Content Pipeline genannt. Einfach gesagt handelt es sich hierbei um einen Mechanismus, der es dem Entwickler erlaubt, sämtliche Assets (Texturen, 3D Objekte, Samples, Musik, etc.) komfortabel zu verwalten und darüber hinaus automatisch in ein plattform-optimiertes Binärformat kompilieren zu lassen. Seit Version 3.2 ist das mit MonoGame auch möglich, sogar ohne dass dazu vorher XNA installiert werden muss.

Allerdings gibt es hierbei aktuell (Stand: Januar 2015) eine Kleinigkeit zu beachten: Nämlich dass die integrierten Content Prozessoren und das Pipeline Tool derzeit noch Bestandteil des Developer Releases sind. Aber warum sollte das uns als Entwickler stören? Daher zögert nicht, einfach das entsprechende Setup von der MonoGame Website herunterzuladen und es auszuprobieren! Auf diesem Blog wird es in den kommenden Wochen und Monaten regelmäßig Beiträge geben, die mehr in dieses Thema einsteigen und dabei auch die einen oder anderen Querverweise zu coolen Inhalten, Büchern, Blogs, Youtube-Shows und dergleichen mehr enthalten.

Für den Einstieg findet ihr hier schon einmal ein kurzes Video, das euch zeigt, wo ihr MonoGame herunterladen könnt, auf was ihr dabei achten solltet und wie ihr damit loslegen könnt.

 

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