Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.03.2023, 20:50

Spiel komplett neu machen?

Hallo, liebe Mitforisten und Mitforistinnen!

Ich habe folgendes Problem, bei dem ich gerne eure Meinung wissen würde:

Ich entwickle seit 2017 alleine an einem First Person Survival Crafting Game à la The Forest. Dies ist mein erstes Unity Projekt, welches ich kurz vor meiner Ausbildung, als Fachinformatiker, begonnen hatte.

Das Spiel sollte ursprünglich folgende Features enthalten:
  • Crafting von Items (funktioniert bereits rudimentär)
  • Jagd nach Tieren (funktioniert bereits rudimentär)
  • Bauen von einfachen Strukturen/Häusern/Truhen (funktioniert bereits rudimentär)
  • Drag and drop Inventar, wie in einem marktreifem Spiel (fast fertig)
  • Tag und Nacht (aus dem Asset Store geklaut)
  • Krankheiten (nicht mal angefangen)
  • Überleben (fertig)

Jetzt zu meinem Problem: Mittlerweile bin ich ja mit meiner Ausbildung fertig und bin nicht mehr ganz so naiv, wie ich damals war (hoffe ich^^). Ich habe inzwischen z.B. festgestellt, dass ich damals den Scope meines Projektes viiiieeel zu groß für eine Person gewählt hatte :D
Vorallem in der Anfangsphase, wo der meiste Code entstanden ist, da ich da nicht in Vollzeit arbeiten musste, habe ich ziemlichen Mist programmiert, d.h. riesige Methoden, schlechte Variablennamen, aufgeblähte Klassen. Dadurch habe ich jetzt bei der Projektgröße mittlerweile ein Problem. Es kommen immer wieder Bugs auf, an denen ich Tage sitze bis ich diese gefixt habe. Außerdem wird der Code immer schwieriger zu warten.

Ich stelle mir jetzt die Frage, was soll ich tun?

  • Komplett von vorne anfangen?
  • Anderes Projekt mit kleinerem Scope?
  • Weitermachen und refactoren/bug fixen?

Ich würde halt gerne dieses Spiel weitermachen, aber bekomme Zweifel, ob es nicht sogar schneller wäre es neuzuschreiben, da es so ein Codegewurschtel ist, und mit jeder Änderung 20 neue Bugs am alten Code entstehen. Vom Scope her, wäre es wahrscheinlich vernünfiger ein anderes Projekt mit kleinerem Scope zu machen? Oder habt ihr einen Vorschlag, wie ich das gleiche Spiel vom Scope her, begrenzen könnte, sodass es trotzdem Spaß machen würde?

Vielleicht noch zur Info: Ich habe 48 Skripte. Mein längstes Skript hat bei mir ca. 1100 Zeilen. Gibt natürlich auch kurze.

So, hoffe mal, ich habe euch mit diesem langen Text noch nicht abgeschreckt. Danke schonmal! :)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »saschaw04« (02.03.2023, 21:09)


Powerpaule

Treue Seele

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

2

02.03.2023, 22:47

Hi,
also erstmal Lob dass du schon so lange dabei bist an deinem Projekt und anscheinend dabei auch gut weitgekommen bist!

Ansonsten bist du aber tatsächlich auf die gleichen Probleme gestoßen, auf die viele Programmier-Neulinge stoßen - aber auch so manches erfahrende Team.
Ich denke jeder Entwickler der schon einige Zeit dabei ist hat die Erfahrung gemacht, dass man Dinge entwickelt hat, die am Ende zwar irgendwie funktionierten, man aber am liebsten alles nochmal neu machen würden, nun da man weiß wie es geht und worauf es ankommt.

Ich denke du hast in den vergangenen Jahrens sehr viele Erfahrungen gemacht und durch deine Ausbildung sehr viel gelernt - daher vermute ich, dass du vieles jetzt besser machen würdest.
Vom Weitermachen würde ich dir daher auf jeden Fall abraten, gerade wenn du teilweise Tage brauchst um einen Bug zu finden - besser, du wagst einen Neuanfang, am besten ein ähnliches Projekt aber mit vielleicht weniger Umfang, da du jetzt bei vielen Dingen sicher weißt was du nicht so gut gemacht hast und dies nun besser machen kannst. Und irgendwann will man ja auch mal etwas fertig haben.

Wie du das Spiel so machen kannst, dasses trotzdem Spaß macht, ist ehrlich gesagt schwer zu sagen - das hängt sehr von deinem inhaltlichen Konzept ab. Aber wichtig wäre denke ich dass du mit was kleinerem anfängst und nicht an 5 Dingen gleichzeitig arbeitest, dann hast du auch früher Erfolgserlebnisse und kannst besser beurteilen was noch fehlt.

48 Skripte finde ich jetzt nicht zu viel, aber wenn es natürlich alles sehr kompliziert geschrieben ist, ist die Wartbarkeit und Erweiterbarkeit sehr schlecht, was dir natürlich viel Zeit kostet.

Hoffe das hilft dir etwas weiter : )

3

03.03.2023, 19:22

Danke erstmal für das Lob!

Ich schwanke jetzt noch zwischen anderes Projekt neu machen und dieses Projekt weitermachen und fixen/refactoren.
Das selbe Projekt neu programmieren, würde ich aktuell die Motivation nicht für aufbringen, da man wieder bei Null anfängt, die selben Dingen zu machen.

Eine endgültige Entscheidung habe ich aber immer noch nicht getroffen.
Vielleicht probiere ich es noch ein paar Tage, um zu schauen wie weit ich komme.

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

4

04.03.2023, 13:30

Refactoring, also das Umschreiben bestehenden Codes für bessere Qualitäten, kann sehr befriedigend sein. Und man lernt dabei ne Menge, allen voran, dass man nicht vorab irgendwas hyperflexibles mit großen Zielen bauen sollte, wenn ein einfaches TutErstmal-System auch reicht.

Andernseits wirst Du auch feststellen, dass auch bei "Von Null an" das zweite Mal viel schneller geht als das erste Mal. Sind also beide Möglichkeiten keine Sackgassen, vor denen Du Dich fürchten musst. Du könntest ja bei jedem Thema in Deine bestehende Kiste von Assets greifen und hast auch schon ne Vorstellung davon, was für Problemen Du begegnen wirst oder welche Code-Stellen Dir damals im Nachhinein viel Stress gemacht haben.

Gegen dieses "ausgetretene Pfade"-Gefühl, dass man sein eigenes Projekt über hat, helfen beide Ansätze nicht. Vielleicht lässt Du das Ding einfach erstmal liegen und machst nen kleinen Shooter nebenbei. Oder was ganz Anderes. In nem halben Jahr hast Du dann wieder Bock auf Dein Survival-Spiel und wenn Du es dann wieder lädst und bissl drinrum latschst, hast Du meist auch gleich ein Mini-Ding vor Augen, was Du mal schnell einbauen könntest. Und dann biste wieder drin mit neuer Kraft und noch mehr Erfahrung.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

5

04.03.2023, 13:56

Zitat

Refactoring, also das Umschreiben bestehenden Codes für bessere Qualitäten, kann sehr befriedigend sein. Und man lernt dabei ne Menge, allen voran, dass man nicht vorab irgendwas hyperflexibles mit großen Zielen bauen sollte, wenn ein einfaches TutErstmal-System auch reicht.


Ich glaube, ich hätte viel früher regelmäßig refactoren müssen, bevor ich neue Features einbaue. Vorallem bei meinem Drag and Drop Inventar und dem Truhensystem fällt mir das momentan dermaßen
auf die Füße, dass ich am liebsten alles aufgeben würde.

Ich hatte anfangs eine ganz andere Idee davon, wie das Inventar funktionieren sollte, und diese habe ich umgesetzt. Dann dachte ich, mache ich doch Drag and Drop daraus. Dann habe ich es nochmal umgebaut. Dann kam mir die Idee, dass man Truhen einbauen sollte. Woraufhin ich es nochmal umgebaut habe (hier vorallem den Fehler gemacht es nicht logisch zu trennen über Vererbung, also alles in eine mega super dupa Klasse Inventory gestopft). Mit jeder Änderungen kamen dann mehr Bugs und mehr Komplexität, wodurch ich erstmal alle Bugs fixen musste und dann bei der nächsten Änderung erneut. Dazwischen habe ich aber immer nur minimal refactored, d.h. nicht die Architektur betreffend und auch nicht alte Methoden komplett neugeschrieben etc.

Mittlerweile habe ich an dieser Komponente so oft herumgedoktort, dass es glaube ich einfacher wäre das komplett neuzuschreiben. Denn ich bin jetzt seit 2 Wochen nur noch am flicken, dass die einzelnen Komponenten miteinander funktionieren und jedesmal wenn ich denke, es kommt langsam Licht am Ende des Tunnels..bäm ..neuen Edgecase gefunden, wo etwas kaputt ist.

Und wie du bereits gesagt hast, ich habe ja immer noch Zugriff auf meine Assets und mein Wissen von damals.

Jonathan

Community-Fossil

  • Private Nachricht senden

6

06.03.2023, 10:03

Ich würde ein neues kleines Projekt anfangen. Einfach um durch schnelle Erfolge ein bisschen Extra-Motivation zu bekommen.

Du kannst kleine Projekte auch sehr gut nutzen um neue Ideen oder Konzepte zu prototypen. Dein Inventar war kaputt? Mach ein simples Spiel bei dem das Inventar im Vordergrund steht und nutze das Wissen später um dein Hauptprojekt fertig zu machen. Das muss nichtmal auf Code kopieren hinauslaufen, vielleicht fallen die fürs Inventar Option A und Option B ein, du setzt erstmal Option A um, merkst, dass das für dein Survival Spiel doch nicht so gut wäre und setzt da dann Option B um. Aber aus dem vorherigen Projekt hast du trotzdem viel gelernt und alleine weil du Option A umgesetzt hast, hast du Option B schon viel besser verstanden.

Und ein kleines Spiel fertig zu stellen erlaubt dir sehr schön den kompletten Entwicklungszyklus kennen zu lernen. Wie viel Zeit man später noch ins Polieren stecken muss / sollte. Ich würde behaupten, nach ein paar kleineren Spielen kannst du besser abschätzen wie umsetzbar ein größeres Projekt ist.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige