File System Architecture
UnKnown
So here is what I am thinking for the file structure of our game architecture. Start with Asset.PDX to save all precompiled assets in a folder of their type then category and sub category we will keep sub dividing these until there is only 20 files max in a folder. Next we have Asset.RAW these will be the source files to be added to the project with the same file structure as PDX. After that we have Library.BIN which will be all DLL for the game 3rd party, system, or package. Next seems when building paradox / visual studio has a OBJ file that is created outside of the project folder so we will find it and rename it Cache.OBJ I think. Next ProjectName.Game and ProjectName.Windows the game will be for the logic of the game which will contain any shared logic/model&object/view&screen that will be shared on all plateforms from windows to ps4 etc... Folder structure I was thinking we would do Logic in one folder labeled like below. We will keep all the logic in a single folder labeled whatever and use packages / module code for complex logic dealing with the game. I am thinking at the start of when we need to start using base classes we can refer back to the package to make it happen and then bring it forward using the package to do the logic work per package item. This will allow the game to keep logic seperated and we can reuse it proven and debugged on other games. So the ProjectName.Game will be for the logic of the game and the ProjectName.Window will be the plateform which is runs on inheriting all logic only from ProjectName.Game. ProjectName.Game will only inherit from Package.PackageName.
File structure as it stands right now subject to change.
Client Application / Server Folder Structure
- Asset.PDX
- Texture
- Effect
- Model
- Building-V1-324
- Asset.RAW
- Texture
- Skin-V3-654
- Effect
- Model
- Texture
- Library.BIN
- Cache.OBJ
- ProjectName.Game
- Logic
- NetworkLogic.cs (Method Only)
- SoundLogic.cs
- ArtificialIntelligence.cs
- Model
- NetworkModel.cs (Properties Only)
- View
- Utility
- 3rd Party Source Code
- Logic
- ProjectName.Window
- Logic
- MouseLogic.cs
- KeyboardLogic.cs
- JoystickLogic.cs
- ScreenLogic.cs
- CinematicLogic.cs
- NetworkLogic.cs
- Model
- VideoModel.cs
- View
- Login
- Logic
Package / Module Folder Structure
- Asset.PDX
- Asset.RAW
- Library.BIN
- Cache.OBJ
- Package.PackageName
- Logic
- NetworkLogic.cs
- ConsoleLogic.cs
- Model
- NetworkModel.cs
- ConsoleModel.cs
- View
- ConsoleView.cs
- Interface
- IClient.cs
- IServer.cs
- Abstract
- Client.cs
- Server.cs
- Logic
Some of this came from this article and then testing and researching other forums/blogs
http://www.gamasutra.com/blogs/JustinLynch/20121009/179040/FolderStructureLessons_for_games.php
http://www.gamedev.net/topic/662317-standard-project-structure-layout/
These are steps / item needed for game functionality we may / may not need.
- Input
- GUI
- Elements
- Screens
- Error
- Debug
- CLI
- Status Monitor
- Audio
- Log
- AI
- Cache
- Console
- File I/O
- Network
- Camera
- State Manager
- Entity
- Npc
- Player
- Scripts
- Resource
- Physics
- Collision
- Pathfinding
- Render
- Library
- Shaders
- Scene
- World
- Enviroment
- Sky
- Weather
- Water
- Terrian
- 0