Wie aufwendig und kostspielig ist es, ein Spiel zu programmieren?

9 Antworten

Wie aufwendig und kostspielig ist es, ein Spiel zu programmieren?

Es ist logischerweise abhängig von den Anforderungen an das Projekt. Minispiele bedeuten zeitlich keinen großen Aufwand und die Kosten hängen von den Ressourcen ab. So kannst du bspw. 3D-Modelle, Sounds, etc. selbst bauen (mit kostenloser oder teurer Software) oder kaufen / aus kostenlosen Repositories (wie https://freesound.org/) zusammensuchen. Auch die Zusammenstellung eines Projektteams ist als Ressource mitzurechnen, sollte ein von dir geplantes Projekt zu solcher Größe angeschwollen sein.

Jetzt einmal sehr grob und lässig geschätzt, lässt sich ein Minigame (Snake, Pacman, ...) in Tage rechnen, ausgeschmücktere oder komplexere Spiele in Wochen bis Monate. Der Lernaufwand für bestimmte Ressourcen ist hierbei außer Acht gelassen. Das Lernen einer Programmiersprache ist, das sei hier einmal gesagt, mindestens in Monate zu kalkulieren. Das Gleiche gilt ebenso für Themen wie 3D-Modellierung oder Grafikproduktion (wie Texturen).

Also wo muss ich da anfangen (...)

Starte mit einem Game Concept Document (Lastenheft) und verarbeite dies letztendlich zu einem Game Design Document (Pflichtenheft). In ersterem beschreibst du zuerst einmal nur deine Spielidee. Zu einer Spielablaufbeschreibung gehören da Informationen hinein wie die geforderte Plattform (Windows / Android / iOS / ...), Spielerzielgruppe, Sprache, etc.. Auf dessen Grundlage kannst du damit beginnen, erst einmal zu schauen, was du überhaupt wirklich benötigst. Du kannst dich also erst einmal selbst ordnen und wichtig: begrenzen (!). Viel zu oft habe ich es schon erlebt, wie Anfänger in regelrechte Ekstase verfallen sind, was sie doch alles für tolle Features in ihrer Anwendung unterbringen wollen. Dabei wurden die Grundfunktionen außer Acht gelassen und das Projekt war viel schneller Geschichte, als es vorher geplant war.

Auf Gamasutra gibt es diesen wegweisenden, mehrseitigen Artikel zu dem Game Design Document, den du dir unbedingt durchlesen solltest: https://www.gamasutra.com/view/feature/131791/the_anatomy_of_a_design_document_.php

Im Zuge dessen wird dir also bewusst werden, was du brauchst. Einmal grob aufgelistet, könntest du dabei auf bspw. diese Ressourcenanforderungen stoßen:

  • Kenntnisse in Spiellogik
  • Algorithmenaufbau / Programmierung
  • Video-, Grafik und Audiogestaltung
  • Eine Game Engine
  • Software zum Entwickeln von Spielobjekten, Grafiken, der Spielwelt, Animationen - dahingehend auch Kenntnisse, wie man das macht
  • Software zur Komposition von Musik sowie Audioschnitt
  • Software zum Videoschnitt (für Zwischensequenzen o.ä.)
  • Englisch-Kenntnisse (lesen und verstehen)

Aber ganz klar: Jeder Punkt mag optional sein. Eine Programmiersprache musst du nicht zwingend beherrschen, da es auch Engines gibt, die die Entwicklung so sehr abstrahieren, sodass die Entwicklung nur über GUI-Elemente stattfinden kann.

Eine Game Engine empfiehlt sich ab einer bestimmten Spielkomplexität auf jeden Fall (also sowas wie Pong oder Snake benötigt keine, außer du kannst wie gesagt nicht programmieren). Ob du eine vorhandene nimmst oder dir eine eigene entwickeln möchtest, ist dir überlassen. Hier:

https://www.gutefrage.net/frage/programm-um-spiele-per-baukastensystem-zu-programmieren?foundIn=list-answers-by-user#answer-269726152

habe ich einige vorhandene (meist kostenlose) Engines gelistet, die entweder Programmiererfahrung benötigen oder nicht. Das Wort Erfahrung habe ich im letzten Satz übrigens ganz bewusst eingebaut, denn eine Engine wie Unity oder Unreal ist ganz klar nicht für Programmieranfänger geeignet.

Falls du nach Software für Video-/Audio-/Grafikbearbeitung, etc. suchst, liste ich hier ein paar mir bekannte:

Für die konkrete Einarbeitung in die Themen und Software Audio, Grafik, etc. solltest du selbst recherchieren. Darüber noch zu schreiben, würde den Rahmen sprengen. Also zuletzt nur noch einige Worte zu dem Thema Programmierung:

Wenn du selbst ein Spiel programmieren möchtest, dann musst du dir eine Programmiersprache aneignen sowie Kenntnisse darüber, wie man Algorithmen baut. Das Lernen der Grundlagen sollte erst einmal losgelöst vom Bereich Spiele-Entwicklung stattfinden, damit der Fokus dabei nicht verloren geht, der in dieser Zeit ganz klar nicht bei Spielen liegt. Um erst einmal nur grob hineinzuschnuppern, könntest du dich allerdings mit interaktiven Tutorials auf Seiten wie diesen probieren:

Vereinfachte Anwendungen zur Programmierung von Spielen sind folgende:

Für den Einstieg in die richtige Programmierung möchte ich dir Processing (https://processing.org/) sehr empfehlen, denn

  • die Sprache ist einfach und bietet schnelle grafische Erfolge, da bereits von Beginn an eine Zeichenfläche zur Verfügung steht, auf der man zeichnen kann
  • sie bietet auch schon Basisfunktionalitäten, die man zur Spieleprogrammierung benötigt (Input-Handling, simple Audio-Engine, Grafik-Engine), sodass du dich bereits mit Processing an simple Minispiele heranwagen könntest - wenn du denn so weit bist (Geduld musst du also dennoch haben!)
  • die Dokumentation ist ausführlich und bietet viele Beispiele

Nach Processing kannst du auf Java umsteigen und in das Konzept der objektorientierten Programmierung eintauchen. Dies wäre die erste schwerere Hürde, die du als Anfänger nehmen müsstest. Das OOP-Prinzip ist in vielen Engines tief verankert, es ist nur von Vorteil, es zu kennen.

Java selbst bietet bereits mehr Möglichkeiten, es gibt einige Bibliotheken oder Engines wie libGDX, LWJGL, JOGL oder die jMonkeyEngine als Hilfsmittel zur Entwicklung. Wenn du hingegen die Unity-Engine nutzen möchtest, könntest du nach dem Lernen von Java (ja, es ist ein weiter Weg) auf C# umsteigen (Java ist als Vorstufe zu C# optimal, da man sich bei der Entwicklung von C# an Java orientiert hat). Diese Sprache wird in genannter Engine als Skriptsprache genutzt. Übrigens wirst du des Öfteren auf dieses 2 Optionen stoßen:

  • Du kannst mit Programmbibliotheken und einer Programmiersprache ein Spiel selbst zusammenpappen.
  • Du kannst eine Game Engine nutzen (die selbst oft aus verschiedenen Bibliotheken besteht), die eine Skriptsprache zur Verfügung stellt, mit der du dich nur noch auf die Programmierung der Spiellogik fokusieren musst. Typische Programmiersprachen, die zum Skripting verwendet werden, sind Lua, Python, C oder JavaScript / JavaScript-ähnliche Sprachen (z.B. ActionScript in Adobe Flash-Engines, siehe hier: https://www.adobe.com/devnet/games/gaming_engines.html).

Eine Alternative zu Processing könnte also ebenso Python darstellen. Unterstützende Engines und Bibliotheken für die Spieleprogrammierung wären kivy, Pygame, Pyglet, Cocos2D, Panda3D, o.a. (siehe hier: https://wiki.python.org/moin/PythonGameLibraries).

Die Option Lua (wenn es auch ebenfalls eine einfache Sprache ist) würde ich nicht unbedingt empfehlen, denn da ist das Literaturangebot (zumindest in dt. Sprache) meines Wissens nicht so groß. Nichtsdestotrotz hier ein paar Engines, die Lua nutzen: https://stackoverflow.com/questions/5053134/what-is-a-good-game-engine-that-uses-lua)

Literatur / Lernquellen:

Und noch generelle Literatur zum Thema Game Development:

Hierbei sei gesagt, dass sich zu einigen Büchern womöglich bereits PDF-Auszüge via Google finden lassen.

Ich habe selbst schon zweimal ein Spiel programmiert.

Tiebreaker auf dem Commodore C64 (ja ich bin alt;)). Wurde 5000 mal in Deutschland und England verkauft.

und ein anderes geniales Spiel, dass aber nie auf den Markt kam.

Alles vom Design bis zur Programmierung in Handarbeit.

Damals war dies noch recht aufwendig. Damit die Spiele schnell genug sind auf den langsamen Rechnern habe ich große Teile in Assembler programmiert.

Heute gibt es spezielle Computersprachen zum erstellen von Flash-Spielen mit denen es viel einfacher ist. Erlerne die Computersprache Actionscript z.B.

Aber es geht noch einfacher:

Es gibt diverse Baukastensysteme für Computerspiele

Willst du jedoch ein aufwendiges Spiel machen wie Diablo oder andere brauchst du ein Entwicklerteam mit Designern und Programmieren und so round about mindestens mal eine halbe Million Startkapital - geschätzt, sofern deine Mitglieder Angestellte sind. Kostengünstiger ist es natürlich wenn Ihr dies auf Beteiligungsbasis macht nur dann kommt - bei solch aufwendigen Projekten - selten ein Verkaufbares Ergebnis dabei heraus.

und ein anderes geniales Spiel, dass aber nie auf den Markt kam.

Wenn da eine gute Spiele-Idee zugrunde liegt, hast Du mal probiert, die Idee Entwickler-Studios anzubieten?

Ich frage nur so aus Neugier - bin auch alt ;-) LOL

0
@funcky49

Ja die Idee ist gut.

Ich träume immer noch davon es nochmal selbst umzusetzen.

0

Das Problem ist, daß deine potentielle Kundschaft mittlerweile ziemlich anspruchsvoll geworden ist.

So was wie Tetris oder Pacman kriegt man sicherlich in wenigen Wochen hin. Nur...

...wird sich kaum jemand finden, der es dir abkauft.

...

Ich hab mal vor etlichen Jahren aus Spass an der Freude ein MineSweeper in Turbo Pascal programmiert. Etwa 2000 Codezeilen und hat zwei Wochen gedauert.

Was möchtest Du wissen?