Projektstruktur

Aus PantheonWiki


Inhaltsverzeichnis

Die Verzeichnisstruktur

Auf oberster Ebene gibt es vier Verzeichnisse:

docs 
Die Dokumentation des Projektes für Programmier-Schnittstellen, später auch Design-Dokument und diese Richtlinien. Dieses Verzeichnis enthält, wie bereits beschrieben, alles was an veröffentlichter Dokumentation für das Projekt verfügbar ist. Diese sind im Grundverzeichnis abgelegt. Das api-Unterverzeichnis enthält die mit Doxygen erstellte Schnittstellenbeschreibung in HTML. Das Unterverzeichnis src enthält Skripte und Konfigurationsdateien zur Dokumentationserstellung, momentan sind das Dateien für Doxygen.
engine 
Der Quelltext von Rastullahs Lockenpracht. Dieses Verzeichnis enthält die Programm-Module von Rastullahs Lockenpracht. Momentan sind es acht Module. Jedes der Module kompiliert zu einer Bilbiothek, deren Schnittstelle mittels Doxygen dokumentiert sein muss. Das Ergebnis ist jeweils eine DLL/so-Datei. Ausnahme ist hier das Modul startup, welches zu einer ausführbaren Datei wird, die das Programm startet.
modules 
Die Abenteuer und dazugehörigen Dateien. Dieses Verzeichnis enthält die Dateien für die jeweiligen Abenteuermodule. Das common-Unterverzeichnis enthält dabei Dateien, die in allen Abenteuern verwendet werden können. Die einzelnen Mediendateien werden dann in die entsprechenden Unterverzeichnisse gepackt.
tools 
Sonstige nützliche Programme und Skripte, die die Arbeit am Projekt erleichtern. Hier befinden sich nützliche Skripte und später auch Codegeneratoren, die die Arbeit am Projekt erleichtern sollen. Momentan befindet sich darin lediglich ein Skript, zum Erstellen einer Testumgebung für das Minidemo-Abenteuermodul.

Die Quelltext-Module

ai 
Die Steuerung der NPCs und Kreaturen.
common 
Kein Modul im eigentlichen Sinne, mehr eine Zusammenstellung von Routinen und Strukturen, die in den meisten der anderen Module anwendbar sind. Dazu gehört das Exception-Handling und allgemeine Dienstklassen.
core 
Die Basis des Projektes. Dieses Modul enthält die Grundlegenden Klassen für die graphische Darstellung und die Basis für die Ruby-Integration.
ui 
Die Interaktion mit dem Benutzer, sowohl Steuerung als auch GUI.
rules 
Die DSA-Basis, also alles was regeltechnisch eine Rolle spielt(Charaktere, Gegenstände, Proben, Talente etc.)
sound 
Die Sound-Integration des Projektes.
script 
Fasst die Ruby-Schnittstellen aller anderen Module zusammen.
startup 
Der Startcode mit Laden und Initialisieren eines Abenteuers, Hauptmenu etc.

Struktur der einzelnen Module

Jedes der Module hat eine ähnliche Verzeichnisstruktur, die auch für neu zu erstellende Module gelten soll. Die Verzeichnisse im einzelnen:

include 
Die Header-Dateien.
lib 
Die fertige DLL/so-Datei, für Windows jeweils in den Unterverzeichnissen Debug und Release für die entsprechenden Versionen.
obj 
Zwischenausgabedateien.
src 
Die C++-Quellen

Direkt im Modulverzeichnis befinden sich Projektdatei und Makefiles für das Modul und eventuell nötige Bemerkungen in einer Textdatei.

Die Namensregeln für Dateien

  • Alle verwendeten Datei und Verzeichnisnamen sind Case-Sensitive.
  • Alle Namen sind ohne Leerzeichen.
  • Keine Sonderzeichen benutzen!
  • Verzeichnisnamen sind klein.
  • C++-Dateien beginnen groß und jedes weitere Teilwort beginnt wieder groß, Sonderzeichen wie Binde- und Unterstriche sind zu vermeiden.
  • Skriptdateien sind frei in der Bezeichnung. Üblich ist klein und Wortteile durch Unterstrich getrennt.
Persönliche Werkzeuge
Link zur berliOS-Projektseite