Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.06.2013, 22:16

[Game-Design] Ordnerstruktur einer "Engine"

Guten Abend,

derzeit entwickle ich für ein bestimmtes Spiel eine kleine 2D-Engine, die nun eine beachtliche Größe angenommen hat. Als ich anfing war mir nicht klar, dass es derart "wachsen" würde. Da ich das Projekt übernommen habe und nun alleine entwickle, stehe ich also vor der Frage, wie ich die Ordner "besser" strukturieren kann. Gibt es hier eine Grundsatz-Regel, oder eine Richtlinie, oder .. an die ich mich halten könnte? Ich bin für jeden Tipp dankbar.

Falls ihr mehr Informationen benötigt - fragt bitte, ich war mir nicht ganz sicher, was jetzt alles von Nöten ist. :)

Grüße

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

2

25.06.2013, 23:08

Nun, generell gehören Header in ein /include/ oder /inc/ -Verzeichnis, Sources in ein /src/-Verzeichnis. Ich gruppiere meine Header in aller Regel nach Namespaces und Klassen. So z.B. findet man die Definition für Sapphire::Audio::Buffer im Verzeichnis "<proj>/inc/sapphire/audio/buffer.hpp". Früher hatte ich noch ähnliche Header-Guards (SAPPHIRE_AUDIO_BUFFER_HPP), aber seit ich hörte, dass alle meine Lieblings-Compiler (GCC und Clang) und dieses MSVC++-Ding "#pragma once" unterstützen, nutze ich dieses Zeug nicht mehr.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

3

25.06.2013, 23:32

Viel wichtiger als irgendeine Ordnerstruktur ist die Codestruktur. Wenn die sauber ist, kann man bei Dateien eigentlich nicht mehr viel falsch machen. Es kann gut sein, dass wenn du deinen Code umstrukturierst, du Dinge verallgemeinern kannst und damit insgesamt weniger Code und somit auch weniger Dateien benötigst.
Ich packe grundsätzlich Header und Sources in einen Ordner - so hat man alles an einer Stelle. VC unterstützt ja virtuelle Ordner, ich habe also meine Dateien in der Projektumgebung hübsch sortiert, auf der Festplatte dagegen in einem einzelnen Ordner - so bleiben auch sämtliche Includes konsistent und ich muss nichts daran ändern, sollte ich irgendetwas umsortieren wollen.
Lieber dumm fragen, als dumm bleiben!

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

26.06.2013, 00:23

Vorweg: dieses Thema hat rein gar nichts mit Game Design zu tun.

Dann wäre gut zu wissen, was du denn genau in verschiedene Ordner einsortieren musst. Sind es nur die Quellcode-Dateien oder sind es auch Skripte, Grafiken, Levelinformationen, Sounddateien usw.?
Viele gruppieren die Ressourcen nach dem Typ der Ressourcen (für Grafiken, Sounds, Code, ... separate Verzeichnisse), während andere die Ressourcen unabhängig vom Typ behandeln (auf oberster Ebene könnte zwischen "Gebäude", "Einheiten" und "Waffen" unterschieden werden und darunter wieder unter den verschiedenen Arten dieser, dürfte in Verbindung mit Unity aber wesentlich mehr Anwendung finden).
Es lässt sich meiner Meinung nach also keine allgemeingültige Aussage treffen, sondern nur Empfehlungen. Was die ideale Struktur darstellt ist ohnehin stark Fallgebunden bzw. zu einem großen Teil Geschmackssache.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige