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

Perforce Documentation

P4V Perforce Client

Perforce + Unity Tutorial

Tips

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:

    1. A designer writes a verbal description of a character, including abilities and animation lists

    2. An artist creates the artwork and front and side views for a character

    3. A modeler uses the orthogonal views for modeling

    4. A texture artist uses the artwork to design the textures

    5. A rigger and animator uses the designer information to create the required animations

    6. 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:

  1. Name

  2. Description/Backstory

  3. Parameters (i.e. power, health, ammo, etc.)

  4. Animation list

  5. Color Palette

  6. Action pose(s)

  7. Modeling poses (front, side views in A-pose or T-pose)

  8. Naming convention

  9. Associated file names/locations

  10. Technical requirements (i.e. Polygon count targets, image dimensions/resolution)

  11. 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.)