Ogre unter Windows mit Codeblocks




Installation von Ogre

Vorweg: Obwohl die Programme dieselben sind wie unter Linux; obwohl die Codeblocks-IDE dieselbe ist, zwingt Ogre unter Windows zu einer anderen Arbeitsweise. Der Grund liegt darin, dass unter Linux alles seinen festen Platz (z.B. /usr/local/lib) hat, während es unter Windows keine entsprechenden Ordnungssysteme gibt.

Unter Linux ist die Installation und Inbetriebnahme trotz einiger (kleiner) Fallstricke einigermaßen gradlinig und unkompliziert. Das kann man bezüglich Windows nicht behaupten. Hier gibt es zu viele verschiedene Wege, von denen man nicht auf Anhieb weiß, ob sie sich ergänzen, tolerieren oder gar ausschließen. Hier ist die ansonsten recht gute Ogre-Dokumentation etwas verwirrend.

Ich wollte ähnlich vorgehen wie unter Linux und Ogre aus den Quelltexten installieren, doch das misslang. Trotz größter Sorgfalt meldete der Compiler eine Reihe von Fehlern, die ich nicht interpretieren konnte. An den Prerequisites lag es nicht; die waren alle sauber installiert, was allerdings ebenfalls nicht ohne Kopfzerbrechen und Irrwege abging. So entschied ich mich schließlich für das vorkompilierte SDK für MinGW, das neben Boost auch alle Prerequisites enthielt. Nach dem Entpacken nach D:\Ogre setzte ich entsprechend der Anleitung noch die Systemvariable OGRE_HOME="D:\Ogre. Zuerst war mir nicht ganz klar, wofür, doch später merkte ich, dass diese Variable praktisch unumgänglich ist.

Einrichtung von Code::Blocks

Als Anleitung diente ein Ogre-Wiki-Artikel, und um das Ganze zu testen, wählte ich das Basis-Tutorial 1, das auf dem Wiki-Tutorial-Framework aufbaut. In dem Artikel ist alles detailgenau beschrieben, und wenn man bei den Eingaben keinen Fehler macht, dürften Compiler und Linker auf Anhieb durchlaufen ohne zu mucken. Doch damit ist es noch nicht getan: Damit das Programm laufen kann, braucht es die richtige Umgebung, mindestens die Konfigurationsdateien plugins.cfg und resources.cfg. Am einfachsten ist es, dem Vorschlag in der Anleitung zu folgen und die Binaries von vornherein in $(OGRE_HOME)\bin generieren zu lassen. Die entsprechenden Einstellungen werden in den Projekt-Properties vorgenommen (Build targets). Dann ist alles beisammen.

Diese etwas ungewöhnliche Strukturierung macht deutlich, wie dominant Ogre auftritt. Die Ogre-Libs werden nach dieser Methode nicht einfach nur verwendet wie andere Libraries, sondern alles hat sich in der Ogre-Struktur einzufinden, eine Methode, die nicht ganz frei von Arroganz ist. Wer als Entwickler lieber selber alle Fäden in der Hand behalten möchte, kann alternativ die benötigten Dateien aus dem Ogre-SDK-Baum in den Codeblocks-Bereich kopieren. Die entsprechenden Pfade sind schnell eingestellt. Zu beachten ist jedoch, dass sowohl in bin/debug als auch in bin/release die Konfigurationsdateien plugins.cfg und resources.cfg liegen, im ersteren Fall mit der Endung _d (z.B. plugins_d.cfg). Ferner muss der Medienordner in das Projektverzeichnis kopiert werden. Wenn die Texturen usw. nicht geladen werden können, empfiehlt sich ein Blick in resources.cfg.

Noch eine Kleinigkeit dürfte interessant sein. Im Ogre-Verzeichnisbaum befinden sich zwei Ordner mit Libraries, nämlich bin und lib. Man kann ohne weiteres einen Pfad zum Lib-Ordner legen, doch dann müssen einige DLLs in den Exe-Ordner kopiert werden. Das erübrigt sich, wenn der Pfad zum Bin-Ordner gelegt wird. Natürlich muss der Bin-Ordner ebenfalls in den Codeblocks-Bereich kopiert werden.

Auf die Einstellungen will ich nicht weiter eingehen, die sind schon oft genug beschrieben worden. Stattdessen füge ich die Codeblocks-Projekt-Datei bei, die bequem kopiert und angepasst werden kann. Diese Datei ist relativ übersichtlich, im Gegensatz zu den von OGRE generierten Projektdateien.