(785) 408-4717
Thou Curator
A company dedicated to helping people create video game ...
Created: 7/10/2015 11:16:25 AM
Updated: 7/10/2015 1:57:24 PM

Game Producer

Joined: 2/4/2017
Thread Replies: 0
Thread Followers: 126
Category

Project Coding Standards

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.

Project Coding Standards

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

 

 

 

 

 



Thanks,
James Fleming 
Facebook
Discord


Awards: Acquired more then 40 hours logged Acquired more then 120 objective in the role 5 Contribute to an agenda that is not yours more than 7 hours. Created 9 blogs or more in 18 month period. Has remained a member on standby for more then 28 days without quitting. Has not received a System Automation notice in over 9 months. Created 3 blogs or more in 6 month period. Member receives newsletter.

×
SERVICES
Animator Artist 2d Artist 3d Audio Engineer Game Creation Game Producer Graphic Designer Marketing Package Asset Programmer Story & Asset Writer Tutorial Video Production
ARTICLE CATEGORY
Services