Textadventure

HC_Krieg

Grünschnabel
Hallo,
weil ich schon seit einiger Zeit C++ lerne, aber halt mit einigen Motivations Einbrüchen, wollte ich mich langsam mal meinem ersten richtigen Projekt widmen. Ich habe mir gedacht mal mit etwas echt leichtem zu beginnen einem Textadventure ohne GUI oder ähnliches. Ich habe auch schon damit begonnen mir Story und ähnliches auszudenken auch beim Programmieren steht das Hauptmenü und das Grundgerüst vom beginn des Spiels aber das scheint mir noch alles ein wenig unstimmig. Und hier kommt das Thema ins Spiel ich würde gerne Fragen was es für Möglichkeiten gäbe Z.b ein Inventar zu Programmieren was Automatisch Aufgenommene Gegenstände hinzufügt und benutze entfernt außerdem wie man ein Skillsystem programmieren könnt wobei man durch Level aufstiege Skills bekommt die dann z.b Auswirkungen auf den Schaden haben, ich meine das wenn man Stärke Skillt man auch mehr schaden machen würde. Ich Erwarte hier keinen Quellcode mit einem hier, super wären Vorschläge wie man etwas in der Art am leichtesten programmieren könnte.
 

Jennesta

Erfahrenes Mitglied
Hallo,
ich habe wenig Erfahrungen mit einem komplexen Spiel, aber durch diverse anderer Projekte kann ich dir nur sagen, dass OOP in deinem Projekt unabdingbar ist.

Scheue dich nicht davor auch für die kleinsten Objekte Klassen anzulegen, sofern es natürlich einen Sinn hat. Dadurch ist gewährleistet, dass auch kleinere Module oder Funktionen einfach ausgetauscht werden können, aber Schnittstellen dieselben bleiben können.
Dazu solltest du dir aber gründlich dein Grundgerüst überlegen, denn das baut dir alle kleineren Sachen später zu einem Ganzen zusammen.

Ich gehe davon aus, dass du eine Hauptschliefe besitzt, in der dein Handlungs-Zyklus und alles andere abläuft. Hier werden Benutzereingaben und regelmäßig stattfindende Events abgearbeitet. Wichtig finde ich hier, dass du nicht versuchst hier jedes Detail zu handeln (damit meine ich: delegiere die Aufgaben an kleinere Einheiten weiter und vorallem an die richtigen).
D.h wenn die Benutzereingabe dazu führt, dass ein Kampf stattfindet führst du den Kampf aus. Wenn dabei Erfahrung, Items oder Ähnliches fallen, würde ich damit ein Event queuen, welches am Ende erst von einem Erfahrungs-, Drop- oder sonstiegem Handler abgearbeitet wird. Damit hälst du deine Kampfklassen einerseits kompakter, weil diese sich nicht um Items kümmern muss. Aber auch deine Items werden alle durch dieselbe Klasse gehandelt. Dadurch vermeidest du auch Vermischung von Klassen. Bei größeren Projekten passiert es immer leicht, dass dann doch eine Verbindung von einer Klasse zur anderen besteht (ist manchmal auch nicht so schlimm), aber dann kommt auf einmal eine neue Funktion und du musst an 3 Klassen, in 6 Dateien, ... xyz ändern nur damit das neue Feature funktioniert.


Ich glaube das war es erstmal mit meinem Senf. Da das ganze nicht nur für C++ interessant ist, da sich solche Konzepte in allen Sprachen wieder finden, hätte ich dir das Unterforum "Coder Talk" empfohlen.
Aber erstmal viel Erfolg mit dem Projekt.

Grüße Jennesta
 

HC_Krieg

Grünschnabel
Hallo
Erstmal Danke für diese tolle Antwort wird mir auf jedenfall weiterhelfen, bin nur am Überlegenheit wie ich das mit dem Skill system mache. vll kann das hier ein mod dann in den Bereich verschrieben