Wie mache ich ein Spiel? [geschlossen]


20

Mein Problem ist, wenn ich anfange, einen Klon eines Spiels (zum Üben) oder meines eigenen Spiels oder eines anderen Problems zu programmieren, stoppe ich irgendwann mitten in der Entwicklung, weil ich das Interesse daran verloren habe.

Wie hältst du das Interesse aufrecht, ein Spiel zu entwickeln oder generell zu entwickeln?


4
Wirklich abseits des Themas - versuchen Sie Productivity.stackexchange.com für motivierende Vorschläge.
Cyclops


Holen Sie sich die Leute interessiert und sammeln Sie eine Community rund um Ihre Arbeit. Sie können Leute mit Ihnen an einem kleinen Projekt arbeiten lassen und sich so gegenseitig motivieren. Versuchen Sie auch, die Arbeit in möglichst kleine Teile zu zerlegen, damit Sie das Gefühl haben, sehr schnell weiter zu kommen, ohne zu viel Zeit zu investieren.
Thomas

Antworten:


28

Als Designer neige ich dazu, Menschen als Sammlungen von Statistiken und Variablen zu betrachten. Wenn Sie Ihre Frage stellen, kann ich mir leicht vorstellen, dass [Pong_Dev_Interest] abnimmt und [Spa_Inv_Dev_Interest] zunimmt. Wenn der Unterschied zwischen den beiden Werten größer als [Dev_Project_Inertia] ist (etwas im Zusammenhang mit [Dev_Completion_Desire]), wird die Aktivität für [Pong_Dev] angehalten und [Spa_Inv_Dev] gestartet.

Auf Englisch: Sie können das Projekt nicht abschließen, weil Ihr unbegründeter Wunsch, ein fertiges Produkt zu sehen, durch Ihr mangelndes Interesse am aktuellen Projekt außer Kraft gesetzt wird. Wenn Sie wirklich eine beenden möchten, ist die einzige Lösung, eine auszuwählen (ich würde mit Ihrem Pong-Klon gehen) und sie zu beenden . Sag dir selbst "Ich weiß, dass ich diesen Klon vielleicht noch etwas verfeinern hätte können, aber meine Güte, es fühlt sich sicher gut an, ein Projekt aus der Tür zu schmeißen." Dann arbeite weiter.

Wenn Sie sich langweilen, arbeiten Sie weiter. Wenn es gut läuft, arbeite weiter. Wenn es zum Kot wird, mach weiter! Beharren! Sei der kleine Entwickler, der es könnte! Ich glaube an dich!

Hm. Habe da ein bisschen überladen. Aber Sie bekommen den Drift.

Ich folge täglich meinen eigenen Ratschlägen. Ich habe meine Umgebung und meine Schauspieler zum Laufen gebracht, meine Gewinn- und Verlustbedingungen berücksichtigt und die Objekte erstellt, die der Player verwenden wird. Ich bin im Grunde genommen bereit, ein Level-Design zu machen und mein Interesse ist geweckt. Aber ich mache jeden Tag welche. Jeden tag. Eines Tages werde ich fertig sein.

Und es wird sich so gut anfühlen.


12

Ich stelle mir immer die gleiche Frage und es gibt ein paar Dinge, die Sie tun können, um sich selbst zu motivieren (viele davon sind bereits hier veröffentlicht). Was für mich gut funktioniert, ist etwas, was ich bei einem der Indie Talks auf der diesjährigen GDC gehört habe. Ich denke, es war der Typ, der das Monaco-Spiel gemacht hat :-)

Suchen Sie zunächst ein Projekt, das Ihren Erfahrungen entspricht. Wenn Sie nicht einmal die Grundlagen von OpenGL / DirectX kennen, beginnen Sie nicht damit, FPS zu erstellen. (es sei denn, Sie verwenden eine Spiel-Engine, aber darum geht es hier nicht ;-))

Machen Sie sich dann eine Liste mit Aufgaben und Meilensteinen, die Sie gerne erreichen, damit Sie immer wissen, wohin Sie gehen müssen. Die TODOs ist der wichtige Teil. Definieren Sie Ihre Aufgaben so, dass jede Aufgabe problemlos an einem Tag oder in wenigen Stunden erledigt werden kann . Wenn Sie also mit dem Codieren, Entwerfen, Modellieren usw. beginnen, sehen Sie bereits das Licht am Ende des Tunnels. Nichts ist bedrückender, als einen Monat lang Ihre Big Game Engine zu entwerfen und zu programmieren, ohne sich der Ziellinie zu nähern. Teilen Sie große Aufgaben in kleinere auf. Eine Aufgabe schnell zu erledigen ist wirklich lohnend und hält Sie am Laufen. Zum Beispiel war dies meine Aufgabenliste für ein kleines Weltraum-Shooter-Spiel auf einmal:

  • Soundeffekte
  • Musik
  • Schiff umbauen
  • Remodel Rockets
  • Colission Detection zwischen Schüssen und Spieler / Feind
  • Lass deine Feinde schießen
  • Titelbildschirm
  • Score / Lives / Energy Whatever Overlay

All diese Aufgaben waren einfach zu erledigen und sobald sie im Spiel funktionieren, können Sie diese Bereiche durchlaufen und polieren.

Und hey, ich habe ein kleines Spiel beendet. Es ist nicht schön, aber im Grunde genommen ist es fertig, was sich am Ende wirklich gelohnt hat :-)


3

Sie müssen das Problem identifizieren, bevor Sie es lösen können. Warum verlierst du das Interesse?

Für mich passiert es normalerweise, weil ich so viel Zeit mit dem Framework verbringe und nach Wochen konnte ich nicht einmal ein einziges Gameplay-Element aufbauen.

Eine Möglichkeit, meine Motivation zu verbessern, ist das iterative Prototyping oder irgendeine Form der testgetriebenen Entwicklung. In der Regel werden dazu Testfälle automatisiert. Da Spiele jedoch sehr grafikintensiv sind, können Sie Bildschirme und Animationen nicht als Tests automatisieren, Ihre Spielelogik könnte jedoch automatisiert werden.

Für die Teile, die nicht automatisiert werden können, plane ich im Grunde ein paar Meilensteine ​​für das Spiel. Meilenstein 1 wäre wahrscheinlich, ein Sprite auf dem Bildschirm zu rendern und WASD zum Beispiel zum Laufen zu bringen. Nach und nach werde ich weitere Funktionen hinzufügen und umgestalten.

Es ist eine Form der Teilung und Eroberung. Brechen Sie in kleine Stücke, arbeiten Sie an dem, mit dem Sie sich wohl fühlen, und integrieren Sie es dann. Spülen und wiederholen. Möglicherweise finden Sie eine bessere Methode zum Neuanordnen von Inhalten und können Ihren Code überarbeiten. Es ist chaotisch, keine Architektur im Vorfeld zu haben, aber normalerweise ist es schwierig, die Architektur zu visualisieren, wenn Sie mit der Programmierung beginnen, bis Sie einige Jahre Erfahrung haben.


1
Ich mache das schon lange und es gibt nichts aufregenderes, als das erste Sprite Ihres Spiels zu laden und es auf dem Bildschirm zu bewegen.
Ausverkauft Aktivist

2

Ich versuche, ein einfacheres Teil zu finden. Zum Beispiel, wenn ich nicht weiß, wie ich etwas machen soll oder nicht will, schalte ich die Gänge um und modelliere oder schreibe einen Shader usw.

Siehe diesen und diesen anderen Beitrag.


1
+1 Ja, das ist eine sehr gute Taktik. Lass deine Gedanken für eine Weile von den harten Dingen los, mache ein paar grunzende Arbeiten und wenn du zurückkommst, werden die harten nicht mehr so ​​hart erscheinen. Funktioniert bei mir.
Ingenieur

2

Wenn Sie nicht wissen, wie Sie ein Spiel richtig strukturieren, sollten Sie lernen, wie Sie deren Elemente in spielunabhängige Blöcke abstrahieren. Dies kann Ihnen in vielerlei Hinsicht helfen (und ist nicht nur interessant), wie zum Beispiel: Erleben Sie, wie Sie Abstraktionen von Implementierungen trennen, Vererbung und Schnittstellendesign besser ausnutzen oder einfach, wie Sie das Spiel in mehrere Dateien aufteilen, damit es professionell aussieht (oder es bereitstellt) eine Flexibilität von Implementierungen durch die Verwendung dynamischer Link-Bibliotheken oder anderer Schnittstellenverwendungen). Früher oder später werden Sie feststellen, dass alles getan werden kann, und dann werden Sie sich ohne dieses Motivationsproblem wiederfinden (Sie tun es einfach).

Ich hatte das gleiche Problem, als ich anfangs feststeckte, aber die beste Lösung ist, in Bewegung zu bleiben, oder Sie können für immer stehen bleiben, bis etwas Sie irgendwie zurücksetzt (und es kann zu lange dauern). Es spielt keine Rolle, ob Sie einige Tage nur 2 Zeilen codieren, aber jeden Tag müssen Sie mindestens das Projekt öffnen und versuchen, etwas zu verbessern (es ist eine unendliche Aufgabe, aber das ist nicht das Problem).

Wenn das Programm irgendwann nicht mehr funktioniert, sollten Sie das, was Sie zuletzt getan haben, rückgängig machen (behalten Sie eine Sicherungskopie bei, verwenden Sie eine SVN oder mindestens eine .rar-Datei mit dem Namen des Datums) und versuchen, dies zu tun Versuchen Sie es erneut oder bearbeiten Sie andere Änderungen, bis Sie es erneut versuchen möchten.

Zunächst sollten Sie versuchen, den Fehler mit Hilfe des Debuggers zu beheben, aber ich weiß nicht, ob Ihre Sprache überhaupt einen Debugger unterstützt ... aber wenn Sie zufällig C ++ oder so etwas verwenden (was ich Ihnen empfehlen würde) Wenn Sie Spiele erstellen möchten, sollten Sie Ihren Debugger besser nutzen, da er Ihnen sehr dabei hilft, den Fehler in einem einzigen Durchgang schnell zu finden.

Lesen über Spieleprogrammierung ist auch eine gute Sache, um das Thema beizubehalten, wenn Sie nicht an etwas Besonderem arbeiten möchten. Es gibt einige gute Bücher und Artikel über Game Engines und Design, die Sie online finden können.

Sie werden nichts tun können, wenn Sie nicht üben. Der Versuch, einen Fehler zu finden, kann zuerst sehr frustrierend sein, aber dann lernt man, dass es eigentlich einfach ist, wenn man weiß, wie man es macht. Dies lernen Sie mit der Zeit zu vermeiden, indem Sie Ihre Änderungen so codieren, dass sie sich nicht auf das gesamte Programm auswirken. Dadurch wird die Anzahl der Stellen verringert, an denen nach Fehlern gesucht werden muss. Wenn es Ihnen jedes Mal schwer fällt, aufzugeben, geben Sie jedes Mal auf, wenn Sie über ein Spiel nachdenken, bevor Sie anfangen. Lernen Sie einfach, wie Sie den schlechten Moment überwinden, indem Sie ihn überwinden: P Wenn Sie den Moment, in dem Sie die Motivation verlieren, nicht überstehen, gewinnt Ihre Faulheit und Sie verlieren, so funktioniert das, bis Sie lernen, wie Sie die Motivation wiedererlangen ohne großen aufwand.

PS Ich habe mich gefragt ... womit machst du das Spiel?


+1 Für die Verwendung der Quellcodeverwaltung. Das Fehlen von SC war der Hauptgrund, warum ich vor 4 Jahren aufgehört habe, an meinem Spiel zu arbeiten (ich habe die Quelle zu stark modifiziert, um zurück zu gehen). Glücklicherweise habe ich kürzlich die Vorteile von XNA erkannt und das Spiel ist wieder in Arbeit.
Richard Marskell - Drackir

2

[wollte als Kommentar zu Anons Antwort hinterlassen werden, die gelöscht wurde, als ich sie gepostet habe. Er erwähnte, dass er all diese Funktionen hatte und dann den einzelnen Dateicode in mehrere Dateien aufteilte, nur damit alles auseinanderfiel.]

Re: Refactoring, Dinge können passieren, auch für Profis. Manchmal kann sogar mit guten Tools wie Git eine Zusammenführung fehlschlagen, sodass nicht Feature A und Feature B funktionieren, sondern beide! Die einzige Möglichkeit ist, zu A zurückzukehren und es erneut zu versuchen. Glücklicherweise speichert die Versionskontrolle diesen Code für Sie. Wenn Sie keine echte Versionskontrolle verwenden, tun Sie dies zumindest manuell, indem Sie Ihren Entwicklerordner regelmäßig komprimieren - HD-Speicherplatz ist billig! Abschließend kehren Sie in kleineren Schritten zu dem zurück, was funktioniert, und überarbeiten Sie es, um sicherzustellen, dass das Spiel bei jedem Schritt noch funktioniert. Es ist wirklich deprimierend, Code aufzuräumen, nur um zu sehen, wie alles auseinander fällt. Kehren Sie einfach zum alten Code zurück.


1
"Wenn Sie keine echte Versionskontrolle verwenden, starten Sie " - ist die richtige Antwort. :) Wirklich - es ist leicht zu lernen und ein wichtiger Kraftmultiplikator. Jede VC spart Ihnen viel mehr Zeit, als Sie zum Lernen benötigen.
Cyclops

In einem kürzlich durchgeführten disziplinübergreifenden Designprojekt an der Universität, an der ich gerade studiere, war ich überrascht zu sehen, dass das CS-Team kein Interesse an der Quellcodeverwaltung hatte, während die EEs SVN gründeten, bevor sie etwas anderes taten. Seltsam!
3Dave

1

Um motiviert zu bleiben, sagen Sie sich immer wieder, dass Sie ein Spiel machen, keine Spiel-Engine - na ja, es sei denn, das ist Ihr Ding. Und das ist cool, Game Engines sind großartig, aber sie behindern zu oft die Erstellung von Spielen.

Um meinen Standpunkt zu verdeutlichen, kann ich Ihnen sagen, wie häufig Dinge ablaufen: Zuerst erstellen Sie ein paar Sprites, bewegen sie mit Ihrem Proto-Framework auf dem Bildschirm und Sie sind begeistert! Sie können Ihren Fortschritt sehen und es läuft gut; Sie können Ihren Freunden zeigen.

Sobald Sie mit Ihrem Konzept ein wenig gespielt haben, stellen Sie fest, dass Sie Ihr Framework (oder Ihre Game-Engine) flexibler gestalten müssen. Oder dass Sie eine Klasse neu faktorisieren sollten, die nicht den neuesten Mustern folgt. Und von dort aus beginnt eine Spirale des Todes: Sie hören auf, an einem Spiel zu arbeiten, und Sie beginnen, an einer Spiel-Engine zu arbeiten. Und Spiele-Engines machen bei weitem nicht so viel Spaß. Sie können stundenlang umgestalten und haben nichts zu zeigen - im Spiel. Und dann verlierst du das Interesse.

Denken Sie also daran: Erstellen Sie Spiele, keine Spiele-Engines. Refactor nur wenn Sie müssen. Seien Sie nicht zu flexibel - nur das Nötigste. *

*: Natürlich sind Refactoring und Flexibilität wichtig. Aber nicht so wichtig wie ein fertiges Spiel.


1

Versuchen Sie, an einem Tag eine spielbare Version zu erstellen, egal wie einfach. Dann iterieren.


1
  1. Versuche nicht, dein Spiel zu kompliziert zu machen!

  2. Teilen Sie Ihre Aufgabe in kleine, spezifische und messbare Unteraufgaben auf. Wenn eine Unteraufgabe zu groß erscheint, unterteilen Sie sie weiter.

  3. Stellen Sie sicher, dass Sie "FERTIG" in großen Buchstaben in Ihre Aufgabenliste schreiben (ich verwende eine TXT-Datei), wenn Ihre Aufgabe erledigt ist. Entfernen Sie die Aufgabe nicht, da es dann nicht so aussieht, als ob Sie Fortschritte machen.

Das ist was ich mache. Es hat in der Vergangenheit gearbeitet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.