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

cFx

Frischling

  • »cFx« ist der Autor dieses Themas
  • Private Nachricht senden

1

03.01.2016, 11:41

Projekt Ordnerstrukturen

Hey zusammen!

Da mein Projekt zZ mit immer mehr .cpp und .hpp zugemüllt wird und das ganze langsam unübersichtlich wird, wollte ich mal in die Runde fragen, wie ihr eure Projekte strukturiert. Im Web hat sich ja das MVC-Prinzip durchgesetzt, wie sieht es da im GameDev aus?

Wie sieht eine "professionelle" Ordnerstruktur aus?

mfg

Thandor

Frischling

Beiträge: 84

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

2

03.01.2016, 12:28

Also ich versuche immer gerne die einzelnen Module nach Graphik, Logik, (IO), ... zu sortieren.
Ich mag pewn.de.

3

03.01.2016, 12:45

Ich schliesse mich da Thandor an.

Bei kleineren Projekten splitte ich nur Code- und Header-Dateien und sortiere dann (ich nutze Visual Studio) im Solution Explorer mit hilfe der Filter.

Bei größeren Projekten versuche ich nach den einzelnen Modulen (nicht Klassen!) zu trennen..

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

4

03.01.2016, 13:25

ich schliße mich auch Thandor an.
es ist praktisch die dateien nach ordnern zu sortieren, besonders wenn man dann z.b. 3;4 varianten von derselben datei hat

Thandor

Frischling

Beiträge: 84

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

5

03.01.2016, 14:17

Ach Leute er wollte doch etwas "professionelles" :vain: :vain: :vain: :vain:

wie ihr eure Projekte strukturiert
:)
Ich mag pewn.de.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

6

03.01.2016, 15:13

Es ist zwar nicht von mir, aber:

http://gordonglas.blogspot.de/2012/09/ho…-completes.html


Das ist die Ordnerstruktur aus "Game Coding Complete".
WIP Website: kevinheese.de

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

7

03.01.2016, 15:34

Also, ich bin zwar nicht mehr (oder garnicht) im Spielebereich unterwegs, aber für meine Webanwendungen sieht die Struktur aktuell so aus:

root
- src (Backend, also bei mir i.d.R. Go)
-- modul1
-- modul2
--- untermodul (sehr selten)
-- ...
- docs (Dokumentation)
- public (Webclient, angular)
-- css
-- js
-- img
-- pages
-- index.html
- weitere Ordner (z.B. "raw" für Rohdateien aus irgendwelchen Programmen)

Für Spiele baue ich aber ähnlich auf.
Was zusammen gehört in einen Ordner, hpp und cpp Dateien. Wenn du z.B. für ein Dateiformat 2 Klassen, also 4 Dateien hast lohnt es sich evt. schon die in einen Ordner zu packen. Für Tests einen eigenen Ordner (für Go mache ich das aber nicht, dort muss eine *_test.go mit im src Ordner liegen).

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

8

03.01.2016, 17:26

mein ordner sieht so aus:
[] = Ordner []= dateien ohne ordner
Projekt
--standard engine dateien und sound
--test scripts
--modelle
--texturen&stripes

-*wip Bilder und originale
----entwurf 1
----entwurf 2

----xyz.jpg/tga/png/files mit ayern/bilder aus dem internet
-*wip modelle
---- tests
---- xyz.blend/obj/3ds/mdl
-*testprototyp1
-----*.c und andere projekt dateien
---- modelle
----texturen&stripes&wipbilder

-- shader
--ordner für fx files
--Output


und pflegen tue ich nur ordner in die die fertigen prototypen reinkommen, den ersten ordner und modelle texturen shader fx scripte.
vielleicht mache ich noch einen sound ordner (und für notizen habe ich gute erfahrungen mit Chary tree gemacht aber zurzeit benutze ich nur noch bleistift und Block)

cFx

Frischling

  • »cFx« ist der Autor dieses Themas
  • Private Nachricht senden

9

03.01.2016, 17:45

Danke euch =D

Ich bin eigentlich echt davon ausgegangen, das man da spezifischen Design-Regeln für die Ordnerstrukturierung folgt ... wie MVC eben^^

Das habe ich halt gefunden und fand es ganz gut:

Application-Layer: deals with hardware and OS
- Devices (Input/Files/Ram/Time)
- OS (Language/DLL/Threads/Network)
- Game Lifetime (Core Libs/Main Loop/ Init/Shutdown)
- system clock
- String handling
- Threads/Thread sync

Game-Logic-Layer: manages gamestate
- Game State & Data Structures
- Physics/Collision
- Events
- Process Manager
- Command Interpreter (Input)

Game-View-Layer: presents the game state
- Display (3D scenes/User Interface/Video)
- Audio (SFX/Music/Speech)
- Input Interpreter
- Process Manager
- Options
- AI (Stimulus Interpreter/Decision System/Process Manager/Options)

Bin zwar noch relative am Anfang von der Game-Entwicklung, aber wollte mir schonmal einen gewissen qualitätsstandard bei der Strukturierung von solchen Projekten zulegen und nicht mit jedem Projekt eine komplett andere Strukturierung haben^^ Aber hört sich ja so an, dass es echt eher individuelle Strukturen sind ... wie man selbst am besten damit zurecht kommt =)Dann glaub ich, dass ich mir auch das beste von allen Welten zusammenbaue =D

Unterteilt ihr denn jeden Unterordner nochmals in header/cpp-Dateien?

Momentan siehts bei mir innerhalb meines VS grob so aus, werde aber ja im Laufe der Zeit sehen, obs taugt oder nicht =D Habs nach dem oben geposteten Schema aufgebaut, was dem MVC ziemlich ähnlich sieht.


- Application
-- Header Files
-- Source Files

- Logic
-- Header Files
-- Source Files

- View
-- Header Files
-- Source Files

Assets und Docs sind dann im Projektordner

- Assets
- Doc

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

10

03.01.2016, 19:04

Ich mache es immer so:

[Projektodner]
-(code)
(src) - erklärt sich von selbst
(include) - erklärt sich von selbst
-(assets)
(textures)
(fonts)
(music)
(sound)

Alles hat halt noch entsprechende Unterordner

Werbeanzeige