User Tools

Site Tools


z:code:gamemanager

This is an old revision of the document!


SectorMania Code - GameManager und Startup

Der GameManager ist nicht unbedingt das Herz des Spiels, aber de facto der Rahmen. Er ist zuständig für die Initialisierung des Spiels und entsprechend auch den Shutdown und bringt die Main Loop ans Laufen.

Startup

Der Einstiegspunkt main (bzw. später WinMain für Windows) befindet sich naheliegenderweise in main.cpp. Die Funktion hat nicht viel zu tun, im Wesentlichen erzeugt sie eine Instanz des GameManagers und bringt ihn ans Laufen. Darüber hinaus werden hier unbehandelte Exceptions abgefangen, die gemäß der Plattform dem User mitgeteilt werden und dann einen Shutdown des GameManagers auslösen. Eine Besonderheit von main ist die Schleife, in der der GameManager erzeugt und gestartet wird. Die Schleife hat die Funktion, dass das Spiel im Prinzip beliebig oft reinitialisiert, also beinahe neu gestartet werden kann. Das ist insofern interessant als dass Änderungen an den Grafiksettings in den meisten Fällen einen Neustart erfordern. Solange der User im Hauptmenu ist, kann sich das Spiel so also quasi selbst neustarten, um die neuen Einstellungen zu übernehmen (in einem laufenden Szenario wäre das aber problematisch und werden wir folglich nicht unterstützen). Das funktioniert dann so, dass die Hauptfunktion von GameManager, run(), einen Rückgabewert hat, der signalisiert, ob eine Reinitialisierung gewünscht ist oder nicht. Falls nicht, wird die Schleife verlassen und das Spiel beendet sich.

Übersicht GameManager

z/code/gamemanager.1211714984.txt.gz · Last modified: 2015/08/23 14:03 (external edit)