Coding Standards

These are some loose coding standards. The main thing that you should follow is to be legible with your code. If you are going to look back at your code in a few months and wonder what you were doing, you should leave a comment please.

C++
These aren't a very strict requirement, but there should be a good reason if you aren't going to follow these

There are also other requirements in these cases to append to the beginning of a name: (*) In the case of public member variables, the 'm_' can be ommited. An example of this could be a Point class where the different dimmesions of Point are public variables and it would be weird to access them with an 'm_' in the front.
 * Use PascalCase:
 * Files
 * Functions
 * Methods
 * Classes
 * Use camelCase:
 * Variables
 * Member Variables (*)
 * m_
 * Static Member Variables (there is no 'm_' requirement in this case)
 * s_
 * Global Variables (whether they are static to the file or to the whole project)
 * g_

Lua
Pascal Case Camal Case
 * Serialized Lua variables (variables you put into the header)
 * Any public Lua variables attached to a table
 * Functions
 * Private Lua variables (any variable put on a component for internal use)

Other
Pascal Case
 * Component Names
 * Archetype Names
 * Folders

C++
File Header

/******************************************************************************/ /*!  \file   File.cpp  \author First_Name Last_Name  \par    All content © 2014 DigiPen (USA) Corporation, all rights reserved.  \brief  A long and detailed description of all the contents inside this file.  */ /******************************************************************************/ Function Header /******************************************************************************/ /*!  \author First_Name Last_Name  \brief  Describes what the function does, and how it is used.  \param  parameter  Describes what the parameter is used for, or what to                       pass to the function.  \return A description of what is returned. <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F"> */ <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F">/******************************************************************************/ Class Header

<span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white">/******************************************************************************/ <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white">/*! <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white"> \class  ClassName <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white"> \author First_Name Last_Name <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white"> \brief  Description of this class. <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white"> */ <span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white">/******************************************************************************/

<span style="font-size:8.0pt;mso-bidi-font-size:11.0pt;font-family:"CourierNew";mso-fareast-font-family:"CourierNew";color:#6AA84F;background:white;mso-highlight:white">Lua
-- --  Name: First_Name Last_Name   All content © 2014 DigiPen (USA) Corporation, all rights reserved. --

C++
All C++ files should go into their respective folders for the projects that Visual Studio generates.

Data Files (lua files, rooms, archetypes...)
When creating files that go into the data folder, make sure to group them into folders if you can. For example, if you have a lot of components relating to a player, they should go in a folder called "Player".

Source Control
There are two repositories that this project uses. The first is the Mercurial repository:  https://hg.digipen.edu/projects/nasg42.

This is where all code related stuff should go and is mainly used by people programming the game. The rules for this repository is to not push anything that can be generated by building the project, otherwise it is useless and wastes time while pushing or pulling.

The other repository is https://svn.digipen.edu/projects/nasg42 which uses SVN.

This is where all assets will be stored for our game, including music and art. This is also where our last known good build is stored. This is to accessed by everyone.