Jetzt wo ich die Matura hinter mir hab (yippiiiiiiiie, Erleichterung, haha
) und 3 Monate Ferien hab, will ich mal wieder anfangen, ein klein wenig zu programmieren.
Dazu mag ich mit einem Strategiespiel "anfangen". Eigentlich ist es nicht mehr anfangen, denn ich hab sowas schon mal in "1D" begonnen (Textbasiert in der Konsole) und in 2D angefangen, was dann aber letztendlich etwas in einem Chaos geendet ist.
Meine damalige Version hatte ein Spielfeld, man konnte in Gebäuden Einheiten erzeugen, andere abschießen und man konnte die Einheiten natürlich durch die Gegend schicken.
Jetzt mag ich soetwas erneut beginnen (wieder mit C++ und SFML und zusätzlich mit SFGUI), diesmal vielleicht eine kleine Spur besser geplant, so dass ich vielleicht weiter komme als letztes Mal.
In diesem
Link wurde mir damals beim Einheitenhandling sehr geholfen. Folgendes hab ich davon umgesetzt: Es gibt die Basisklasse Einheit, abgeleitete Klassen Fahrzeug und Flugzeug. Diese hatten jeweils eine Variable Fahrzeugtyp, bzw. Flugzeugtyp, wo zum Beispiel drinnen stand LEOPARD_PANZER oder EUROFIGHTER. Je nachdem, welche Einheit es war, wurde diese Einheit eben mit anderen Werten initialisiert. Das mit dem Update und Render, sowie den überladenen Funktionen hat eigentlich ganz gut funktioniert.
Dann hatte ich eine main.cpp, in der ich das Fenster initialisiert habe und eine Spielschleife hatte. Außerdem gab es die MainClass mit Update und Render.
Diese MainClass ist nun glaub ich mein Hauptproblem. Die ist damals riesengroß bei mir geworden, weil einfach alles da rein kam. Sie war verantwortlich dafür, heraus zu finden, wo der User hin geklickt hat, die Einheiten dementsprechend woanders hin zu schicken, Einheiten einen Abschussbefehl zu geben, die Einheiten überhaupt zu handeln (in einer Liste zu halten), genauso wie alle Gebäude und all das. Die Update-Funktion dieser Klasse hatte letztendlich wohl schon über 500 Zeilen. Ich glaub, für die meisten Programmierer sind mehr als 50 Zeilen pro Funktion schon ein Graus, 500 Zeilen sind dann auch für mich als unerfahrenen Programmierer schon einfach nur noch ein Graus.
Deswegen mag ich das diesmal besser machen und hoffe auf Vorschläge, wie ich eventuell meine Klassen einteilen kann, und wie welche Klasse mit einer anderen verstrickt ist, damit es nicht in so einem Chaos endet.
Zum Schluss also nochmal eine Erklärung zum Spiel selbst:
Das Spiel soll mit C++, SFML und SFGUI umgesetzt werden. Es stellt keine Ansprüche darauf, auch wirklich mal fertig zu werden - wenns nicht klappt, klappts eben nicht (deswegen bitte kein "mach erst mal ein Pong" - denn das hab ich schon gemacht
).
Es soll ähnlich dem Spiel Empire Earth sein, allerdings sollen Rohstoffe zum Beispiel nicht global verfügbar sein. Das heißt, es gibt ein Lager, von dort müssen die Rohstoffe erst geholt oder hin gebracht werden. Von dem her soll auch auf "Logistig" bei diesem Spiel etwas Wert gelegt werden. Außerdem ist die Munition der Einheiten begrenzt (sie müssen sich also immer wieder "Nachschub" holen, die auch produziert werden muss). Es soll keine Multiplayerversion davon geben, das wäre sowieso zu aufwändig für mich. Aber eventuell mal eine KI (deswegen sollt ich die von Anfang an mit einplanen), gegen die man spielen kann - zuerst muss ich mal natürlich so weit kommen, Einheiten auf das Spielfeld zu bekommen, sie zu bewegen und mit Funktionen auszustatten.
Ich hoffe, jemand liest sich diesen langen Text noch durch und macht sich die Mühe, mir zu helfen.
Bei Unklarheiten bitte einfach fragen, wahrscheinlich fehlen noch einige essentielle Infos.
Vielen Dank im Voraus.