„Spielend Lernen“

„Ich will eine 2D- oder 3D-Engine entwickeln“ oder „Ich mach erstmal einen Editor“ hört man immer wieder von Personen, die in die Spieleentwicklung einsteigen möchten. Wenn man dann ein bisschen nachbohrt erfährt man, dass diese Leute dies machen möchten um schlicht und einfach zu lernen. Dies ist aber meiner Meinung nach ein sehr falscher Weg. Das Problem sowohl bei einer Engine, als auch bei einem Editor ist nämlich, dass die Entwicklung eines solchen Stück Software einiges an Erfahrung voraussetzt. Da beisst sich aber die Katze bereits in den Schwanz: Ich brauche Erfahrung um eine Engine zu entwickeln, die ich entwickele, um diese Erfahrung zu sammeln.

Was viele ausser Acht lassen ist die Tatsache, dass sowohl eine Engine, als auch ein Editor lediglich ein Mittel zum Zweck sind, ein Werkzeug, eine Arbeitserleichterung, ein notwendiges Übel, oder wie auch immer man dies nennen möchte. Weder die perfekte Engine, noch der perfekte Editor machen ein fertiges Spiel, geschweige denn ein gutes Spiel. Ich kann aber sehr wohl ohne eine Engine oder auch ohne einen Editor ein sehr gutes Spiel machen.

Um zu lernen, wie man Spiele entwickelt, sollte man schlicht und einfach Spiele entwickeln. Je mehr Spiele man entwickelt, je mehr Erfahrung sammelt man, wie man Spiele entwickelt. Dies klingt logisch und ist es auch.

Eine Engine zu entwickeln kostet viel Zeit, sehr viel Zeit. Und es benötigt sehr viel Erfahrung, da man nur mit Erfahrung die Anforderungen beurteilen kann, die das spätere Spiel hat. Es ist sehr schwierig alles auf einem leeren Blatt Papier zu planen, ohne jemals vorher ein Spiel entwickelt zu haben. Die schmerzliche Erkenntnis nach endlosen Stunden Arbeit wird häufig sein, dass später nicht die Engine für einfache Dinge verwendet wird, sondern der Code schnell heruntergetippt wird, weil dies viel handlicher ist und viel schneller geht. Die Wiederverwendbarkeit hat sich nicht nach den Anforderungen gerichtet, sondern man muss sich nun nach der Wiederverwendbarkeit richten, da man es nicht besser wusste. Dies führt dazu, dass man eben nicht Wiederverwendet, was dann wiederum bedeutet, dass man ziemlich viel Arbeit in den Sand gesetzt hat. Dies wird dann häufig unter „Lernerfolg“ oder „Erfahrung sammeln“ verbucht, wäre aber absolut vermeidbar gewesen.

Bei einem Editor ist es ähnlich. Was nützt es mir, wenn ich das perfekte Level gestalten kann, aber es kein Spiel gibt, mit dem man das Level spielen kann? Der Aufbau eines Spiels ist – gerade im Indie-Bereich – oft evolutionär und daher ändert sich vieles. Der Editor wächst praktisch aus dem Spiel hervor und wenn man diesen im Vorhinein entwickelt, dann ist er wie ein Klotz am Bein und die Chance, dass dieser mehrfach veraltet sein wird, bevor das Spiel fertig ist, ist sehr hoch. Auch muss ein Editor nicht sonderlich komfortabel sein und auch nicht schön. Meistens ist ein Editor ein internes Tool und es reicht, wenn dieses „Quick and dirty“ entwickelt wird. Wenn ich 20, 30 oder auch 40 Level damit gestalten muss, dann ist es vielleicht verschwendete Zeit, wenn ich Undo/Redo ohne Limit, komfortables Cut&Paste, Multiselect und per AddIn erweiterbare Werkzeuge einbaue. Sicherlich ist es keine schlechte Idee, wenn man die Komponenten eines Editors wiederverwendbar gestaltet und vielleicht auch die ein oder andere Klasse generisch macht. Eine Notwendigkeit zur Erreichung des Ziels ist dies aber nicht. Auch ohne diesen Firlefanz kann man Levels für das geplante Spiel erzeugen. Vielleicht nicht so komfortabel, aber wenn die Entwicklung des Editors länger dauert, als die Levels umständlich zu erzeugen, dann hat man wieder Zeit verschwendet…

Ein weiteres Problem, dass sowohl bei Engine, als auch bei Editor auftritt ist der Frust: Wenn man mit einem Prototypen eines Spiels anfängt, hat man eher das Problem das man den (guten) Prototypen zuviel spielt, als das man frustriert wird, weil man kein sichtbares und vor allem spielbares Ergebnis bekommt. Gleiches gilt auch für die Grafik und Special-Effects. Was nützt es mir, wenn ich das perfekte Partikel-System entwickelt habe und die Partikel in der Sandbox umherfliegen. Ich habe die perfekte Steuerung inkl. Remapping etc. gebaut und die tollste Grafik gemacht, aber ich kann kein Spiel spielen. Schnell wird man frustriert sein, weil man kein wirkliches, vorzeigbares Ergebnis hat.

Nicht zuletzt gilt die Devise: Spiele sind zum spielen da. Einzig und alleine der Spieler entscheidet, ob ein Spiel gut ist. Der Spieler interessiert sich nicht sonderlich für die Technik, oder für den tollen Editor oder die wiederverwendbare Engine. Ein Spieler testet ein Spiel und es gefällt ihm oder nicht. Diese Entscheidung fällt oft in den ersten paar Sekunden. Von einem Grafik- und Effektfeuerwerk möchte ich hier gar nicht erst anfangen. Dies wird der Indie-Entwickler niemals so hinbekommen, wie ein AAA-Studio dies kann. Das wird auch nicht erwartet. Wenn ein Spiel Spaß macht, dann wird es gespielt und Dinge wie Grafik sind dabei nur ein, oft nebensächlicher, Faktor.

Mein Tipp also:

Entwickel ein Spiel um zu lernen, wie man ein Spiel entwickelt!

Advertisements

Veröffentlicht am 02.05.2011 in Random Noise und mit , , , , getaggt. Setze ein Lesezeichen auf den Permalink. 9 Kommentare.

  1. Michael Malura

    Ich vermute das der Beitrag durch den Post im Forum entstanden ist. Aufjedenfall super geschrieben Glatzemann. Vorallem hundertprozentig das was jeder Anfänger beachten sollte. Nur leider tuts niemand -.-

    Gruß Michi

    • Der Post im Forum war nicht ganz unschuldig, aber tatsächlich wollte ich so einen Beitrag schon länger schreiben, denn dies ist einer der Fehler, den auch ich gemacht habe. Ich habe z.B. einen ziemlich geilen InputManager entwickelt, der echt ne Menge kann und eigentlich relativ einfach zu verwenden ist. Trotzdem erwische ich mich in Prototypen immer wieder, dass ich eben doch alles manuell mache, weil es einfach schneller geht, als vorher ne neue Referenz hinzuzufügen usw. Das ist frustrierend…

      Zumindest kann man jetzt diesen Beitrag dem ein oder anderen ans Herz legen, vielleicht hilft es ja ein bisschen 🙂

  2. Muss man dir lassen, was du hier so von dir gibst hat wirklich Wert 😉

    Glückwunsch zu den Besuchern und den vielen Beiträgen. Ist gut, dass sich einer die Mühe macht, mal solche Tipps zu geben. Mich wunderts eh, wie du neben Arbeit noch eine Engine, 2 oder mehr Games entwickeln und dabei den Blog führen kannst 😀

    Der Beitrag war mir hilfreich. Ich denk, meine Spiele scheitern an einem ganz bestimmten Bereich an Erfahrung, weshalb ich viel zu viele Fehler mache – das Spiele-Entwickeln …

    Werd das beim nächsten Mal beachten 🙂
    R

  3. Super Text und ein guter Denkanstoß für alle Anfänger!

    Nur leider tuts niemand -.-
    Ich mache es so. Als ich durch mein Lehrbuch genug wusste um anzufagen habe ich begonnen mein Spiel soweit zu entwickeln wie ich damals konnte, dann habe ich im Buch weiter gelesen.
  4. Jeannette Haller

    Das ist ja totaler Blödsinn, was hier veröffentlich wird – wo sind die Fakten?

    • Aha, und was könnte ich deiner Meinung nach besser machen, liebe Jeannette? Welche Fakten fehlen dir denn, und wo habe ich deiner Meinung nach totalen Blödsinn geschrieben?

      Trotzdem danke für dein Feedback… Ich hoffe, ich kann den Artikel noch so überarbeiten, dass auch du eine positivere Meinung dazu schreibst 😉

  5. Genau das was du in deinem letzten Satz geschrieben hast, haben mir meine bekannte die in der IT tätig sind auch geraten. Fang einfach mit einem Projekt an, zerlege dir das Projekt aber so lange bis es Händelbare teilprobleme sind.

  6. Hey Glatzemann,
    Das ist wirklich ein super Artikel, der mir ziemlich die Augen geöffnet hat.
    Da fallen einem gleich die ganzen eigenen Sünden und fehlgeschlagenen Versuche wieder ein.

  1. Pingback: Bézier, oder: Wie bringe ich jemanden locker um die Ecke « "Mit ohne Haare"

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: