BYOC – Build Your Own Console

Vor Jahren bin ich aufmerksam geworden auf gameinstitute.com. Noch bevor die privaten Universitäten wie Pilze aus dem Boden schossen, die sich die Heranzucht der nächsten Generation an Spiele-Entwicklern zum Ziel gemacht hatten, gab es auf dieser Plattform bereits die Möglichkeit, sich einzuschreiben und gegen kleines Entgeld zielgerichtet zu lernen.

„Und was?“, höre ich Dich fragen? Puh,… der Katalog ist wirklich lang. Damals noch recht überschaubar konzentrierte sich GI auf die Themen C++Programmierung, Artificial Intelligence, Assets, 3D Design und dergleichen mehr. Heute gibt es unfassbar viele Kurse. Damals wie heute fand sich aber auch der verhältnismäßig skurrile Kurs Game Electronics in den Angeboten. Angefangen mit den Grundsätzen analoger Schaltungen ging es darum, Modul für Modul zu erlernen, wie man sich seine eigene Spielekonsole selbst bauen kann. Grundlage war das damals beliebte XGS (XGameStation) Pico Modul, das man käuflich erwerben und dann zusammenbasteln konnte. Mehr dazu hier.

Heute gibt es als modernen Ansatz das auf Kickstarter erfolgreich finanzierte Creoqode (cooler Name übrigens!). The Do It Yourself Open Source Game Console. Ansätze dafür gab es einige, Creoqode scheint es aber erstmals erfolgreich hinzubekommen. Natürlich zu Lasten verschiedener Features – wie z.B. hochauflösender Grafiken. Die gibt’s nämlich nicht. Statt dessen setzt sich das Display aus 2.048 LEDs zusammen, die eine Matrix formen. Der Vorteil liegt aber auf der Hand: Das System zwing einen zur Simplizität und ermöglicht somit das Design einfacher Spiele, deren Einfachheit zum Konzept gehört. Die Entwicklung entsprechender Inhalte ist daher auch nicht so schwer zu erlernen.

creoqodeMehr dazu hier: http://www.creoqode.com/2048

Die Idee dahinter finde ich genial und ich bin gespannt, ob sie sich durchsetzt oder genauso wie andere Projekte genauso schnell wieder in der Versenkung verschwindet.

Was denkt ihr darüber?

 

Advertisements

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:

Von Modern nach Retro in 3 Schritten

Wisst ihr, was der Vorteil dabei ist, selbst verantwortlich für seinen eigenen Blog zu sein, unabhängig Inhalte bereitzustellen und niemandem dafür Rechenschaft schuldig zu sein? Ganz einfach… Thema und Ausrichtung können sich auch mal ganz schnell ändern, und die Leser können nix dagegen tun, außer sich anderweitig nach Blogs umzuschauen, die über verblüffend lange Zeiträume ihrem Ur-Thema treu bleiben. Für solche Blogger habe ich übrigens einen Riesenrespekt!

Mein Blog hingegen zeichnet sich voraussichtlich eher durch das absolute Gegenteil aus. Obwohl… so ganz stimmt das auch nicht. Denn obwohl ich – das gebe ich fairerweise zu – im Moment den Draht zu MonoGame wieder verloren zu haben scheine (darin sind andere einfach besser als ich), wird sich dieser Blog weiterhin um das Grundthema „Softwareentwicklung“ drehen und dabei auch weiterhin den Fokus aufs Game Development haben. Warum? Weil mich dieses Thema nun einmal enorm interessiert. 🙂

Was also begeistert mich momentan?

Hier also der assoziative Pfad von Modern nach Retro in 3 Schritten.

Schritt 1

Nachdem ich mit höchster Aufmerksamkeit über etwa ein dutzend Folgen Tom mit seinem Projekt #octoawesome gefolgt bin – immerhin kennen wir uns schon seit einigen Jahren und ich war neugierig wohin ihn das Projekt wohl führen würde – verkündete er eines Tages, der Sprung in den 3D Raum würde vermutlich über OpenGL erfolgen. Da ich persönlich mit OpenGL nichts anfangen kann, habe ich ihn kurzerhand davon überzeugt, stattdessen MonoGame einzusetzen. Was er zu der Zeit nämlich noch nicht wusste, ist, dass MonoGame analog zu XNA über so etwas wie eine Rendering Pipeline verfügt. Genau nach so einem Feature suchte Tom nämlich. Gefunden. Also los. Einige Folgen Refactoring später stand #octoawesome also auf neuen Beinen. Und während ich noch am überlegen war, ob ich mich jetzt mit ins Getümmel stürze, finde ich auf seiner Codeplex Seite nicht nur einen Link zu meinen MonoGame Videos (Danke, Tom!!), sondern auch zu Casey Muratoris Serie Handmade Hero.

Schritt 2

Und was habe ich gelacht. Zunächst. Ich meine… echt jetzt? Okay, Casey blickt zurück auf ca. 30 Jahre Erfahrungen in der Games Branche und man merkt ihm sofort an, dass er in jedem Moment weiß, wovon er spricht. Wovon er denn spricht? Einfach gesagt ist sein Ziel, ein Commercial Quality Game zu entwickeln und zu vermarkten. Und der Weg dorthin führt über Live Broadcasts via Twitch. Fünf Tage die Woche, jeweils eine Stunde Main Stream gefolgt von einer halben Stunde Q&A. Davor geschaltet: Eine Intro Serie. Und jetzt geht’s los: Intro to C on Windows. Genau. Kein Scherz. C. Nicht C#. Nicht Java. Nicht HTML5 und CSS3 oder NAMEYOURFAVOURITEFANCYFRAMEWORK.js. Nö. C. Plain old C. Nicht mal C++. und wo wir schon dabei sind: Nicht mal eine moderne Entwicklungsumgebung mit IntelliSense oder so. Nope. Visual Studio? Ja,… als Debugger. Programmiert wird mit Emacs. Wie gesagt… ich kam aus dem Lachen nicht mehr raus. Vor allem, als es losging mit Erläuterungen zur Bedienung der Kommandozeile unter Windows. Denn gebaut wird hier. Mit Batch-Dateien. Alles hand-made. Keine Fremdbibliotheken. Keine Game Engines.

Okay. Als ich fertig war mit Lachen, habe ich mir die Intro-Serie angeschaut. Und die hat mich schlicht vom Hocker gehauen. Der Mann ist sympathisch! Er spricht fließend Sarkasmus (ich liebe das!), ist selbstkritisch und weiß einfach scheiße viel! Vor allem: Er kann es rüberbringen. Sein erklärtes Ziel: Nach 30 Jahren in der Szene hat er so fundamentales Wissen aufgebaut, dass es Zeit ist, es an die nächste Generation weiterzugeben. Sonst tut es ja keiner. Und wer schon immer mal wissen wolle, was eine Byte-Reihenfolge im Speicher ist, warum sie sich auf verschiedenen Prozessertypen unterscheidet, was Gullivers Reisen damit zu tun haben und warum die Kenntnisse um OpCodes, Mnemonics, Compilerbau u.v.m. noch immer wichtig ist, schaltet hier unbedingt mal rein. Es lohnt sich derbst! Hier lernt man das Thema von der Pieke an. Krass!

Übrigens: Für gerade mal 15 USD (einmalig) erwirbt man nicht nur das Recht, das Spiel selbst zu erhalten (sobald es verfügbar ist), sondern auch den Zugriff auf ein täglich aktualisiertes Repository mit den neuesten Sourcen.

Schritt 3

Und während ich so in der alten Zeit schwelgte, quasi den Jahren bevor OOP mich versaut hat, stolperte ich über ein Hörbuch: Extraleben. Von Constantin Gillies. Zwei alternde Nerds zocken fast jeden Abend auf uralten Computern Retrospiele und stoßen dabei zufällig auf einen versteckten Code in einem Spiel. Eines führt zum anderen und plötzlich finden sie sich auf einem Roadtrip durch die USA wieder auf den Spuren einer Firma, die es längst nicht mehr geben dürfte. Nicht nur, dass David Nathan als Sprecher wirklich alles aus dem Plot rausholt (genial wie immer!), nein, gefühlte 3/4 des Buches spielt gedanklich in den 80’ern. Anekdoten, Anspielungen, Erinnerungen, die wach werden. Herrlich! Achja… und natürlich an jeder Ecke C64’er, Spieleautomaten, Amigas und dergleichen mehr.

Was lag da also näher, als sich über Ebay auch mal wieder damit einzudecken? Und schon nenne ich wieder einen C64 mit 1541-II, VC1531 Datassette, Quickshot Pro, ein paar Spielen auf Tape und Disk und mehr mein eigen. Hammer. Und wo ich sowieso schon auf dem Retro-Trip bin und wieder mit C herumexperimentiere (Casey sei Dank!), kann ich doch auch mal schauen, ob…

Retro!

… man heutzutage nicht auch an Informationen herankommt darüber, wie man für den Commodore 64 Software entwickelt. Insider denken jetzt: Mist, wir wurden enttarnt. Ja sorry Jungs… was soll ich sagen… das Thema ist einfach zu krass geil! Ich meine… hättet IHR gedacht – liebe Leser – dass es eine aktive Community gibt, die heute noch Spiele für den Brotkasten entwickelt, oder Disc Mags? Oder Musik? Oder BBS Software (wer jetzt fragt, wofür BBS steht, ist definitiv zu jung :))? Aber das gibt’s! Und ich hab’s gefunden. Yeah!

Mittels Cross Compiler lässt sich sogar in C für den C64 programmieren. Wie geil ist das denn bitte sehr?!

Vielleicht werde ich in Zukunft das eine oder andere darüber hier schreiben. Einfach nur deshalb, weil es mich im Moment ziemlich interessiert. Auf jeden Fall folgt demnächst ein Beitrag, in dem ich auf verschiedene Inhalte eingehen werde, die Seiten verlinken und Tipps geben, wo man Informationen zu diesem Thema findet. Vielleicht verirrt sich ja der eine oder andere Retro-Spinner hierher und sucht genau wie ich nach solchen Dingen. Dann wird er hier evtl. fündig.

That’s it for today. I’m outta here.

Kostenloses MonoGame Videotraining

Kurz vor Weihnachten fand auf der Microsoft Virtual Academy ein Live Webcast statt mit dem Titel “Creating Windows Phone and Windows Store Games with MonoGame”. Das sog. Jump Start ist nun auch on demand für euch verfügbar. Ein definitives Must-See für euch MonoGame-Fans da draußen!

 

image

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:

Free Sprites (as in Free Beer)

Feeding-the-BrainHobby-Spieleentwickler stehen häufig vor diesem Problem: Die Dev-Skillz sind voll ausgebaut, das Thema Design & Art hinkt aber irgendwie hinterher. Woran das wohl liegen könnte? (An dieser Stelle sei darauf hingewiesen, dass Logik, wie sie für die Softwareentwicklung benötigt wird, nicht durch die gleichen Gehirnareale kontrolliert wird, wie das Verständnis für Kunst… aber da erzähle ich euch bestimmt nichts Neues)

Die Gute Nachricht: Künstler gibt es eine Menge da draußen, und Vieles, was ihr für eure Spiele-Projekte gebrauchen könntet, gibt es mittlerweile auch for free.

Heute also aus der Reihe Assets für Dein Spiel: 700 Fantasy Themed Avatar Sprites aus dem Spiel Last Guardian, das in einem Google Wettbewerb leider nicht gewonnen hat (an den Sprites kann es nicht gelegen haben, denn die sind echt cool!).

last-guardian-sprites

Die über 30 Avater-Typen sind jeweils 32×32 Pixel groß, beinhalten meist mehrere Variationen (bis zu vier, die NPCs sogar neun!) und i.d.R. Animationen für die Bewegungen in alle Himmelsrichtungen.

Hier könnt ihr die unter der Creative Commons Attribution 3.0 Lizenz stehenden Sprites kostenlos herunterladen (und euch bei der Gelegenheit bei Phillipp Lenssen bedanken).

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.