Ich hatte letztens (okay ist schon ne Weile her) im Ideen-Forum einen Thread eröffnet, in dem ich die Idee zu einem Kartenspiel erläutert habe.
Aus verschiedenen Gründen kam ich in der letzten Zeit aber nicht dazu und ich hab mir jetzt wieder ein paar Gedanken gemacht ...
Jeder kennt ja sicher sowas wie Magic, Yu-Gi-Oh oder sonstwas. Ein Kartenspiel, in dem es Monsterkarten gibt, die verschiedene Eigenschaften haben (unter anderem Angriffs und Verteidigungswert und Lebenspunkte), Zauberkarten usw.
Es wäre auch kein Problem das Spiel einfach mal "hinzukritzeln" so, dass es zwar läuft, aber ziemlich unflexibel ist.
Ich würde es aber gerne flexibel haben und später bei Änderungen auch wirklich nur den Teil ändern müssen, den es betrifft und nicht das ganze Programm. Also alles schön in einzelne möglichst unabhängige Module/Pakete verlagern.
Ich habe aber bisher noch nie ein größeres Projekt in Angriff genommen so dass es hier schon an der Planung scheitert, hab ich das Gefühl.
Zum Beispiel sollte eine Monsterkarte später beliebig mit einer Art Editor erstellt werden können, Werte wie Hitpoints usw sind ja auch kein Problem. Aber wenn ich der Einheit einen Effekt geben will, der zum Beispiel bewirkt, dass alle Einheiten auf dem Feld vergiftet werden, muss ich diesen Effekt auch noch implementieren. Aber all das will ich auch, ohne direkt in das Programm eingreifen zu müssen. Eher sowas wie:
Code: Alles auswählen
effect= Effect(blabla) # effect ist jetzt ein Effekt und in dieser Instanz wurden alle nötigen Informationen übergeben,
#damit bei einer Attacke eines Monsters mit diesem Effekt alle Einheiten vergiftet werden
effects.add(effect)
monster = monster(hitpoints, ..., effects(effects[bla], effects[blubb]) ...)
monsters.add(monster)
Aber wie gesagt ich hab bisher noch kein großes Projekt in Angriff genommen und ich glaube, wenn ich hiermit anfange, übertreibe ich es entweder und schreibe den Code unnötig viel zu komplex oder ich schreib einfach nur Bullshit und am Ende kann man den Code gar nicht richtig benutzen weil ich a) nicht mehr durchblicke oder b) mir irgendwo Fehler unterlaufen sind, die das ganze Konstrukt sinnlos machen.
Vielleicht könnten mir ja ein paar von euch irgendwelche hilfreichen Tipps geben.
Ich würde die Kartenklassen (für jeden Kartentyp eine Klasse) als unabhängiges Modul auslagern, die Effekte, die Grafikengine (vorerst nur Konsole) und das Kampfsystem bzw die Game-Engine, die alles zusammensetzt.
Aber jetzt weiß ich schonmal nicht, wie ich diese ganzen Module aufbauen soll, damit das ganze danach auch wirklich mehr oder weniger reibungslos funktioniert.
Es entsteht ja erstmal ein ziemlicher Overhead aber dann wenn ich das zusammensetzen will, sollte das alles ganz einfach klappen und genauso, wenn ich was daran ändern will, da ja alles im Prinzip unabhängig voneinander ist.
Naja danke schommal für's durchlesen