Project Coding Standards
UnKnown
Package/Project Folder Structure
- Logic
- Model
- View
- Interface
- Abstract
- Data
Object Oriented Programming (OOP)
So what I am thinking here for all package and projects is we follow the folder structure above. We will use abstract class as the only way to communicate with the project. The abstract class will house the logic, model, interface, and data that is needed for the functionality of the project. So we are clear on what each folder reasoning is lets cover them one at a time.
- Logic - Will house all business logic that controls the functionality of this project/package.
- Model - Holds all the properties of an object and only properties no methods of any sort.
- View - Are finished components or gizmos or anythign else that is a completed item that will be used without coding or inheriting from.
- Interface - All classes that need to be directly accessed by the abstract class will have an interface attached to it.
- Abstract - Will be the interface the in/out mechanism used by the game engine game code, or plateform code
- Data - Is for data gathering and modifying in any form including but not limited to SQL, System Files like XML or anything else we determine is needed. This may turn into a Package to referance later for all packages to handle it the same.
With these the whole idea is to make it so we dont get stuck retyping stuff between multiple projects and dll/packages. I think this will allow for the flexibility we would like to modify anything in the game.
Project Control Level
- Package - will be for business logic and the starting place to wrap paradox with us.
- ProjectName.Game - Will be the logic of the game using the design document.
- ProjectName.Plateform - Will be the combined coding for both the ProjectName.Game and Package with the ProjectName.Plateform targeting a single operating system.
Project Namespace
We will not put our company name in the name space if we start getting namespace issue we will use an alias in the code for it. However I think this namespacing will good enough without redundancy of Thou Curator... We know we made it why type it 500 times for using statements.
Package.PackageName
ProjectName.Game
ProjectName.Plateform
Coding Standards
https://msdn.microsoft.com/en-us/library/ff926074.aspx
https://msdn.microsoft.com/en-us/library/aa260844%28v=vs.60%29.aspx
Known Package Needed
These are package we will use to wrap the Paradox Engine with our own classes so that if we need to use 3rd party utilities we can and keep the project organized. This will also allow our team to know what has been explored and what has not, also this will let us know when we need to research thing to import them into the game when new funcitionality is developed from the game engine or 3rd party utilities we may use.
- Package.InputManager
- Package.InterfaceManager
- Controls
- Screens
- Package.DebugManager
- Console
- Logging
- Package.AudioManager
- Package.ArticialIntelligenceManger
- Package.CacheManger
- Downloadable Content (This will allow us to have the unit stats in a database instead of hard coded on the game for easy adjustments)
- Package.FileManager
- Package.NetworkManager
- Client UDP/TCP
- Server UDP/TCP
- Package.CameraManager
- Package.StateManager
- Package.EntityManager
- NonPlayableCharacter
- Character
- Package.ScriptManager
- LUA (but we will use C#)
- Package.ResourceManager
- Package.PhysicManager
- Package.WorldManager
- Enviroment
- Light
- Weather
- SkyBox
- Water
- Terrian
- 0