Wie entwickelt man ein Spiel ohne Anfangskenntnisse zu haben?
Hi Leute,
weil es mich interessiert und ich alles mögliche mal ausprobieren möchte, um zu sehen in welche Richtung ich in Zukunft gehe, würde ich gerne mal ein Spiel entwickeln,aber ich habe keine Ahnung wie das geht. Ich habe keine Programmierkenntnisse, Modelierungsfertigkeiten oder sonstiges was so benötigt wird. Ich bin also ein kompletter Anfänger und weiß deswegen also auch nicht was alles benötigt wird. Daher würde ich mich freuen, wenn ihr mir den kompletten Prozess von null bis 100 (möglichst deatiliert) beschreiben, Bücher und ähnliches zum Lernen empfehlen könntet oder irgendwelche Tutorials hättet.
Zurzeit besitze ich nur die Programme Unity3D, Blender und die Unreal Engine.
Vielen Dank im vorraus.
4 Antworten
Hmm also ich würde Erstkontakt mit dem Plot beginnen. Daraus kann sich dann vieles entwickeln wie zB Fragen zur Steuerung, Animation, Anmutung,etc.
Nein, ein Game Design Dokument ist etwas anderes und deutlich aufwendiger.
Ich empfehle dir nicht, mit dem Plot anzufangen. Ein Spiel ist kein Buch, du kannst dir die wildesten Geschichten ausdenken, aber das bringt dich kein Stück näher an dein Spiel.
Soll ich dann einfach erstmal grundlegende Ideen stichpunktartig aufschreiben und erst später wenn alles entschieden ist das Dokument schreiben?
Brich deine Spieleidee auf den Kern des Spieles herunter und setze diese in einem Prototypen um. "In Mario läuft der Spieler von links nach rechts, er kann springen um Hindernisse zu überwinden und Gegner zu töten."
Ob er jetzt die Prinzessin dabei rettet oder nicht, ist Nebensache.
Design Dokumente sind eine tolle Sache, aber bringen dir ohne Erfahrung nicht viel. Der obige Ansatz ist einfacher für den Anfang.
Ich würde dir Processing empfehlen. Die Sprache bietet einen sehr einfachen Einstieg in die Programmierung und schnelle grafische Erfolge (trotz allem ist es kein Klickibunti). Damit kannst du einfache Spiele wie z.B. Pong oder Breakout entwickeln, später kannst du auf Java umsteigen, um komplexere Anwendungen aufzubauen.
Unreal oder Unity jedoch würde ich an deiner Stelle erst einmal sehr weit weglegen, sie werden dich vorerst nicht weiterbringen.
Dass Unreal oder Unity ihn nicht weiterbringen, stimmt so nicht,. Ews hängt komplett davon ab, was er machen möchte. Da er gerne jeden Bereich der Spieleentwicklung kennenlernen möchte, ist es gar nicht so verkehrt, sich eine Engine zu schnappen.
Low-Level Spieleprogrammierung ist halt nur wichtig, wenn er diese auch lernen möchte.
Ich bin der Meinung, dass man erst lernen sollte, was man da wirklich macht. Ich habe schon zu viele kennengelernt, die das offensichtlich nicht wussten. Die Resultate waren nicht verwunderlich. Eine extra Spielebibliothek (wie LibGDX) zu lernen, ist nicht notwendig - in der Hinsicht würde ich dir zustimmen.
Wenn er (auch) modellieren möchte, muss er erst modellieren lernen. Das kann er mit Cinema4D, Maya, oder irgendeinem anderen Modellierungstool. Die Engines helfen auch hier nicht.
Könnte ich nicht eigentlich auch Spielprogrammierung und Modellierung gleichzeitig lernen und später meine Kenntnisse mit Programmierung generell etc. erweitern?
Das kannst du - verlängert den Prozess aber enorm. Gut modellieren zu können erfordert nicht weniger Aufwand, als gut programmieren zu können.
1. Ist der Umstieg von Processing zu Java einfach oder sollte ich lieber direkt Java anfangen falls der Umstieg schwierig ist?
2. Wann sollte ich ungefähr anfangen mich mit Unreal und/oder Unity zu beschäftigen?
- Der Umstieg auf Java ist enorm einfach, denn Processing basiert auf Java (es ist im Grunde fast nur eine Bibliothek, die das Zeichnen von grafischen Oberflächen ermöglicht). Wenn du auf Java umsteigst, werden lediglich neue Elemente und auch Konzepte hinzukommen, die du in Processing noch nicht kennengelernt hast. Und du verstehst die Zusammenhänge von Processing besser. Die Sprache ist der optimale Einstieg in die Programmierung.
- Meiner Meinung nach ist es erst einmal wichtig, dass du Java beherrschst (das bedeutet, nicht nur die Grundlagen / Theorie). Danach kannst du dich dem Thema Softwareentwicklung nähern (Spiele sind nichts anderes als Software), - das bedeutet du solltest dich mit Architekturmodellen, Design Patterns (wie dem Entity Component System) usw. auseinandersetzen (in dem Hinblick kannst du dich ja schon einmal etwas an Spiele herantasten, z.B. mit Hilfe von LibGDX). Eine Engine wie Unreal oder Unity wird zwar vieles im Bezug zum Coding wieder vereinfachen, doch das bringt dir nichts, wenn du trotz alledem nicht weißt, was du da tust. Rumhacken kann jeder!
- Für Unity musst du schlussendlich eine neue Sprache lernen. Entweder C#, Boo oder UnityScript. C# ist die einfachere Wahl, denn sie ist Java sehr ähnlich. Bzw. man könnte grob sagen, dass man Java genommen und um weitere Features aufgestockt hat.
- Für die Unreal Engine gibt es 2 Möglichkeiten. Entweder du lernst C++, eine der schwierigsten Programmiersprachen, die es gibt, und stellst dich dem Wagnis, damit auch noch eine Software zu entwickeln oder du nutzt virtuelles Scripting. Letzteres ist vorzuziehen.
Deine Lernkurve zeitlich einschätzen kann ich nicht. Mach dich nur darauf gefasst, dass es viel viel mehr als nur ein paar Monate dauert. Wenn du doch meinst, schneller zu sein, warst du wohl nicht gründlich genug.
Vielen Dank für die Antwort. Das hilft mir sehr. Zum zeitlichen Rahmen des Lernen und bis ich mein Spiel so weit entwickelt habe, dass ich damit zufrieden bin, habe ich bereits einen Zeitraum von 5-10 Jahren eingeplant, daher stören mich ein paar Monate nicht.
Du darfst halt nicht den typischen Fehler machen und dich an Sachen aufhalten, die dich nicht näher an dein Spiel bringen. Es sei denn, das Spiel ist nicht das Ziel, sondern das Lernen.
Die wenigsten können Programmierung, Modellierung, Animation, Zeichnungen etc alles zu einem professionellem Maße und regeln das alles selbst. Vielleicht nach 10+ Jahren Berufserfahrung, aber sicher nicht als Anfänger.
Wenn also dein Ziel ist, ein fertiges Spiel zu haben und deine Spielidee umzusetzen, wäre es quatsch nicht auf fertige Lösungen zu setzen. Unreal, Unity, Construct 2, Game Maker usw. sind alles etablierte Lösungen, mit denen sich alle möglichen Spiele umsetzen lassen. Du könntest deine Spielidee dann vielleicht sogar in 2-3 Jahren umsetzen.
Denk immer dran: "If you want to make a cake from scratch, you must first invent the universe". Du musst das Rad nicht neu erfinden, um ein Auto zu bauen. Etc. :P
Für den Anfang ist mein Ziel meine Spielidee in ein fertiges Spiel umzusetzen. Es muss nicht die beste Grafik haben und auch nicht viel Content, da ich sowieso vorhabe das Spiel auf lange Zeit am Leben zu halten, sprich: Spiel im Verlauf der Zeit mit Content, Grafikupdates etc füllen. Daher reicht es mir wenn ich erstmal nur das Nötigste zum Spielentwickeln lerne. Der Rest kommt nach.
Dann kannst du genauso auch andere Game Engines nutzen:
- Game Maker Studio (http://www.yoyogames.com/gamemaker)
- Visionaire (http://www.visionaire-studio.net/)
- Adventure Game Engine (http://age.seccia.com/)
- Godot (http://www.godotengine.org/)
- Frogatto (https://frogatto.com/)
Gibt es bei denen irgendwelche Vorteile gegenüber der Unreal und Unity Engine? Ich habe mir nämlich nur Unreal und Unity geholt, weil sie sehr bekannt sind.
Sie sind vielleicht einfacher, teils brauchst du nicht einmal Programmierkenntnisse. Schau sie dir doch einfach mal an.
Weitere:
- Construct 2 (https://www.scirra.com/construct2)
- Stencyl (http://stencyl.com/)
- Clickteam Fusion (http://www.clickteam.com/clickteam-fusion-2-5)
- Playir (http://playir.com/)
- Blitz3D (http://www.blitzbasic.com/Products/blitz3d.php)
- Game Editor (http://game-editor.com/Main_Page)
- Sludge (https://opensludge.github.io/index.html)
- Duality (http://duality.adamslair.net/)
- Adventure Game Studio (http://www.adventuregamestudio.co.uk/)
- Alice (http://www.alice.org/index.php)
- RPG Maker (http://www.rpgmakerweb.com/)
Vielen Dank. Ich habe mir die Engines angesehen und ich finde sie auch zum Teil ganz gut, aber so wie ich das sehe bieten sie nicht so viele Funktionen wie die Unreal und Unity Engine. Die meisten sind auch nur auf 2D beschränkt. Da ich aber ein 3D Spiel machen will, sind sie im Moment bzw. für meine jetzige Spielidee nicht interessant.
Hallo,
zuersteinmal solltest du klären, um welchen Part der Spieleentwicklung es dir geht. Möchtest du die Programmierung lernen? Das Game Design? 3D Modellierung, 2D Graphiken? Oder hast du eine konkrete Spielidee, die du umsetzen möchtest?
Da du in einer anderen Antwort von Informatik gesprochen hast, gehe ich davon aus, dass du die Programmierung meinst. Hier empfehle ich einen Low-Level Einstieg. Heißt: Unity3D, was hier auch vorgeschlagen wurde, nimmt dir sehr viel dieser Programmierung ab, und du verstehst viele Hintergrundprozesse nicht.
Ich persönlich habe mit dem Buch "C++ für Spieleprogrammierer" von Heiko Kalista angefangen und empfehle das bis heute auch noch jedem, der mit der Programmierung anfangen will. C++ ist Industriestandard und sehr weit verbreitet. Wenn du damit Spiele entwickeln kannst, heißt das einiges.
Das Buch vermittelt dir Grundkenntnisse mit Hilfe der "SDL", einem Programmierframework das auch heute noch Anwendung findet. Das Buch bringt dir sehr wichtige Programmierkenntnisse bei und zeigt dir dabei gleichzeitig, wie man Frameworks benutzt. Das sind zwei wichtige Sachen, um danach deinen eigenen Weg gehen zu können(mit erweiterten Büchern oder eigenen Spielen beispielsweise)
Solltest du Folgefragen haben, schieß einfach los!
Vielen Dank für die Buchempfehlung. Zu dem Teil welchen Part der Spieleentwicklung es geht, so wäre es alles. Mich interessiert zurzeit Programmierung zwar am meisten, jedoch würde ich gerne in alle Bereiche der Spieleentwicklung schnuppern und davon wenigstens die Grundkenntnisse lernen.
Nun, da hast du dir einiges vorgenommen :). Wenn dich die Programmierung am meisten interessiert, würde ich jedoch dort anfangen. Und da halt dann mit dem Low-Level Einstieg, wenn du möglichst viel wissen möchtest.
Geht es dir nur um ein wenig "grundsätzliche Programmierung", also mal reinschnuppern, wie man ein Spiel scriptet, dann kannst du aber auch gerne mit einer Engine anfangen (bspw. Unreal Engine 4, bei der du auch modernere Lösungen wie das Blueprint System testen kannst), um dann schneller in die anderen Bereich der Spieleentwicklung gehen zu können.
Ist das dann das Gamedesign-Document?