sfml Game Organisieren

DuffCola

Mitglied
Kennt jemand ein Tutorial / Seite / Buch in dem es ums oop Konzept, geht, wo speziell auf die Videospielprogrammierung drauf eingegangen wird?
Ich weiß einfach nciht, wie ich ein SPiel organisieren kann...
(Ich habe schon einmal einen ObjectManager geschrieben, aber das hilft mir auch nicht viel witer was das OOP KOnzept angeht und generell wieß ich nicht wie ich mein Spiel organisieren/strukturieren kann.
Ich hoffe ihr könnt mir ien paar Tipps geben.
 
Hallo DuffCola

Was Strukturen anbelangt habe ich ja schon im Thread mit C# diverse Varianten erwähnt, diese würde ich weiterhin verwenden.

Das schwere bei der Programmierung ist eigentlich nicht Strukturen zu finden sondern sie während der Programmierung zu behalten und nicht zu brechen. Hier gibt es viele Hilfsmittel aber am Ende ist es hauptsächlich Selbstdisziplin.

Hilfsmittel gibt es viele, wie ich sagte:
Ich empfehle dir nach folgendem Schema vorzugehen. Bevor du irgendwelchen Code schreibst muss ein UML-Diagramm hier sein. Erst wird modelliert, dann programmiert. Damit kannst du verhindern, dass du Abhängigkeiten hast die nicht sein sollen. Grundregel von mir ist: Abhängigkeit zu einem Interface ist OK, alles andere geht nicht.

Des weiteren habe ich gute Erfahrungen mit Test Driven Development gemacht, musst du für dich schauen, ob das was ist, aber bei Spielen gehe ich häufig so vor.

Also zusammenfassend:
- Grosse Zusammenhänge über UML modellieren
- Innerhalb von Modulen Zusammenhänge via Design By Contract
- Effektiver Code dann über Test Driven Development

Viele Grüsse
Cromon
 
OK Danke.
Ich habe mir auch Star UML mal angesehen.
Jetzt weiß ich nciht genau wie so ein Diagramm gemacht wird, wann benutzt man welchen Pfeil, wenn ich eine KLasse modelliert habe, die eine andere selbstmodellierte Klasse beinhaltet, soll das im DIagramm dann z.B. auch mit einem Pfeil zusehen sein.
Ich habe jetzt einfach mal versucht eins zu machen, vielleicht könntet ihr mir sagen, was falsch ist und anders gemacht wird:
Main.jpg
 

Anhänge

  • umlclass.gif
    umlclass.gif
    6,6 KB · Aufrufe: 12
Zuletzt bearbeitet:
Hallo DuffCola

Um das Rad nicht neu erfinden (bzw in dem Fall schreiben) zu müssen:
Zu UML gibt es schier unendlich viel Fachliteratur, auch kurze und bündige Sache, ein Beispiel hier:
http://www.highscore.de/uml/

Zu dem von dir geposteten Beispiel, ich werde da jetzt nicht direkt auf das Diagramm eingehen sondern eher auf das Konzept das du da eingebaut hast.

Kurz gesagt: Kein Interface vorhanden, das kann nicht gut kommen!

Das Game muss nichts vom DrawManager und auch nichts vom TimeManager wissen. Alles was Game anbieten muss ist einen Gameloop und die Möglichkeit sich da einzunisten. Das heisst du machst beispielsweise ein Interface ILoopEvent das dann von TimeManager und DrawManager implementiert wird und in Game bietest du die Möglichkeit an ILoopEvent-Implementationen hinzu zu fügen und wieder zu entfernen. Anschliessend hast du einen GameLoader der sich darum kümmert die richtigen Komponenten am richtigen Ort zu hinterlegen.

In diesem Fall hast du nun keine verteilten Abhängigkeiten mehr zwischen Game und den Managern sondern alles geht zentral zum GameLoader. Aktuell sieht das vielleicht nicht nach einem grossen Gewinn aus, aber sobald das komplexer wird bist du froh wenn du bei Änderungen nicht mehr an 100 Stellen suchen musst ob das einen Einfluss hat sondern wenn du so wenig Abhängigkeiten wie möglich hast.
 
Ok Danke, aber das:

Das Game muss nichts vom DrawManager und auch nichts vom TimeManager wissen. Alles was Game anbieten muss ist einen Gameloop und die Möglichkeit sich da einzunisten. Das heisst du machst beispielsweise ein Interface ILoopEvent das dann von TimeManager und DrawManager implementiert wird und in Game bietest du die Möglichkeit an ILoopEvent-Implementationen hinzu zu fügen und wieder zu entfernen. Anschliessend hast du einen GameLoader der sich darum kümmert die richtigen Komponenten am richtigen Ort zu hinterlegen.

verstehe ich nicht.
Wie meinst du das genau, hasst du ein Diagramm oder so was, was mir das verdeutlichen kann was du meinst?
 
Zurück