Project/Asset Management
Revision control
(From Wikipedia page)
Revision control, also known as version control and source control (and an aspect of software configuration management), is the management of changes to documents, computer programs, large web sites, and other collections of information.
Modern systems support version numbers and comments, multiple branches, merges, tagging versions, rewinding versions, etc. See above wikipedia page for glossary of terms.
Many different revision control packages are available. See wikipedia entry for comparison: http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Multiple Trees/Branches
When you create your directory structure for your project, you should make several trees:
1) One tree should hold your raw files
- this holds your pre-game assets such as Photoshop files, Maya files, etc. Any files that are not included in the game build
2) One tree should hold your game build files
- this holds in-game assets and scripts. In-game assets are assets converted over to a format supported by the game engine.
- This tree has two main branches :
2A) Your working version - in progress build with latest changes
2B) Your stable version - this version gets updated about weekly once you have a stable build of your working version. THIS IS THE VERSION YOU ALWAYS DEMO! This way, you have a version that you know won't crash if you have an unexpected visitor, or a version to fall back on if your working version has an unrecoverable bug.
Unity and Revision Control
Unity Pro has a built-in Asset Server, however we only have a limited number of licenses. Unity Pro also has support for external version control. See the following:
http://docs.unity3d.com/Documentation/Manual/ExternalVersionControlSystemSupport.html
SmartMerge
https://docs.unity3d.com/Manual/SmartMerge.html
Perforce
Typically, we suggest the use of Perforce for Revison Control as this is widely used in the industry and supports plugins for 3D packages such as Maya. Perforce's Client is multiplatform and called P4V. Perforce makes a local copy of the server files (called the Depot) on your local machine. To make changes, you must then check-out the file, make your change, and check it back in.
Our Perforce server address is:
digapp.westphal.drexel.edu:1666
Asset Management
Assets (models, audio, images, etc.) are frequently needed by many people on the development team, and there is an asset pipeline for production. For example, a simplified pipeline is:
A designer writes a verbal description of a character, including abilities and animation lists
An artist creates the artwork and front and side views for a character
A modeler uses the orthogonal views for modeling
A texture artist uses the artwork to design the textures
A rigger and animator uses the designer information to create the required animations
Audio (sound/dialog) is recorded based on design
Asset Templates
Because many people need to easily find information on the asset, you must set up an Asset Template. This is simply one place (i.e. a page in the GDD, a page on your wiki, etc.) where all information about that asset can easily be found. This should include information such as:
Name
Description/Backstory
Parameters (i.e. power, health, ammo, etc.)
Animation list
Color Palette
Action pose(s)
Modeling poses (front, side views in A-pose or T-pose)
Naming convention
Associated file names/locations
Technical requirements (i.e. Polygon count targets, image dimensions/resolution)
Associated script/code names/parameters
Examples are found in various GDDs, and some examples are seen below:
Knight (female), member of the Brawn class. Born in A.D. 1350, the knight is a balance of brains and brawn. She is thin and agile, but weighted by her armor and therefore slower. The armor gives her a high health and her broadsword can inflict moderate damage.
Asset Lists
Each stage of the pipeline should be assigned to the appropriate person and require sign-off for completion. This can be done through Gantt charts, a spreadsheet, or project management software.
IMPORTANT: You MUST maintain some method of asset list or asset tracking so that anyone, including the Producer, can see immediately the stage of production for every asset and who it has been assigned to!
Asset Naming conventions
Or why not to name something:
Wall47.jpg
midtermWorkingMattRevis_07_csc29NORMAL.wrl
Dan_screwed_up_first_model_so_heres_mine_2.mdl
Assets (models, audio, images, etc.) should follow naming conventions just as software code should. Information you might want the name to convey:
Asset type (i.e. model, character, object, texture, faction, etc.)
Name (i.e. character name, environmental name, identified)
Version # (is this required or handled by your VCS?)
Status (i.e. final, in progress)
Level of Detail (for both models and images)
Format (Raw vs. In-game) (i.e. is the format for the editor or for the game engine, i.e. photoshop PS vs. TIF, Maya binary vs. DXF?)
Any other identifier that lets you know more about the asset
Keep in mind: you don't want to have to change names in code every time you change the model, so come up with a naming scheme that is flexible.
Example:
gm_char_bob_lod3.mdl (game asset, character type, name, LOD 3)
Project Management
New: Digital Media previously used TeamworkPM. Many groups have used HackNPlan and other system. Alternatively, you can use any of the other Project Managment systems or use many of the Google features to make your own (i.e. Google site for Production Journals, Google Groups for communication archiving, Google Docs (now Drive) for a spreadsheet for asset management and task tracking (even has a Gantt plugin), etc.)