Hallo!
Ich beginne gerade damit, ein rundenbasiertes Online-Multiplayer-Strategiespiel zu entwickeln.
Mein Anliegen ist es, Model und View komplett voneinander zu trennen, um erst den Kern des Spieles entwickeln zu können (Logik, Server) auf einer simplen Testimplementierung (slick-Engine) und dann später entscheiden kann, ob ich das Spiel für Android, iPhone etc rausbringen lassen möchte, bzw eine komplett neue PC-Version mit einer anderen Engine. Ich möchte die Models und die Logik sowohl auf dem Server als auch auf den Clients benutzen können, wobei der Client dann in seiner persönlichen View-Komponente das Rendering übernimmt.
In meinem Spiel gibt es zB Pieces (Spielsteine):
Ein Piece hat zB eine x/y position auf dem (8x8 ) Spielbrett.
In diesem Piece möchte ich jetzt aber nicht den Fortschritt oder sonstige Details der aktuellen (möglicherweise sogar client-spezifischen) Animation speichern.
Also war meine Idee, dass ich eine extra PieceAnimation Klasse schreibe (von der ich dann ableite), und dann eine PieceAnimationFactory, die die richtigen Animationen liefert. Ein Piece würde dann mit getAnimation() immer eine passende Animation liefern. Also wenn das Piece sich bewegt eine gehende Animation, wenn es angreift eine Angriffsanimation,...
Die GameLoop würde sich dann nur mehr die aktuellen Animationen holen und dann abspielen.
Natürlich ist das jetzt stark vereinfacht, aber klingt das im Allgemeinen nützlich? Bzw ist das in der Branche auch üblich, das so zu machen?
Danke und lg,
Aaron