Media Repository Layout

Introduction

This media repository layout is used for both working on media files and when distributing the media files. When media is distributed, the various source files and files with development notes and sketches are filtered out and only the actual release files are distributed. This can be done with a combination of filtering by file extension, filtering by patterns of expected file names and by manual filtering or some list of files to include/exclude in the release.

Layout

The media module contains the following directories:

3d_objects

Contains 3D models and textures, organized in templates that allows models and textures using the same template to be combined.

The 3d_objects directory has the following structure:

       3d_objects->media_group_name->template_set_name->textures->template->template_set_name.png
                 |                 |                  |         \>texture_name->template_set_name.png
                 |                 |                  |         \>other_texture_name->template_set_name.png
                 |                 |                  |
                 |                 |                  \>models->model_name->skeleton_name->mesh_set_name->mesh_name->template_set_name.cmf
                 |                 |                                     |              \>other_mesh_name->mesh_name->template_set_name.cmf
                 |                 |                                     |
                 |                 X                                     \>template_set_name.3ds

For example:

       3d_objects->clothing->shirt->textures->template->shirt.png
                 |         |      |         \>simple_brown_shirt->shirt.png
                 |         |      |         \>green_wool_shirt->shirt.png
                 |         |      |
                 |         |      \meshes->generic_humanoid->malebuilder->short_sleeve_shirt->shirt.cmf
                 |         |             |                 |            \>long_sleeve_shirt->shirt.cmf
                 |         |             |                 |            
                 |         |             |                 \>femalebuilder->short_sleeve_shirt->shirt.cmf
                 |         |             |                                \>long_sleeve_shirt->shirt.cmf
                 |         |             |
                 |         |             \>short_sleeve_shirt_on_ground->shirt.3ds
                 |         X             \>short_sleeve_shirt_hanging->shirt.3ds
                 |
                 |
                 |
                 \>environment->stone->textures->template->stone.png
                 |                   |         \>granite->stone.png
                 |                   |          
                 |                   \>models->boulder->stone.3ds
                 |                           \>hewn_block->stone.3ds
                 \>body_parts
                 \>plants
                 \>creatures
                 \>items->building_block->textures->template->stone_wall.png
                 |                      |         |         \>stone_wall_top.png
                 |                      |         \>granite->stone_wall.png
                 |                      |                  \>stone_wall_top.png
                 |                      |          
                 |                      \>models->normal_wall->building_block.3ds
                 |                               \>door_wall->building_block.3ds               

3d_skeletons

Contains skeletons for 3D models and animations for the skeletons. Also contains character assembly files (.cal), linking skeletons and animations to media in 3d_objects.

The 3d_objects directory has the following structure:

     3d_skeletons\>skeleton_name->mesh_set_name->character_name.cal
                 |              \>skeleton.cmf                                  
                 |              \>animation_name.caf 
                 |             

For example:

     3d_skeletons\>generic_humanoid->malebuilder->settler1.cal
                                   |            \>settler2.cal
                                   |            \>pig_seller.cal
                                   |         
                                   \>skeleton.cmf                                       
                                   \>walk.caf

sprites

Contains game ready sprites for 2d clients like uclient and the original files used to create these.

Directory layout should make automated filtering of game media from originals possible.

artwork

Contains illustrations, clip art, artwork and sketches used as concept art on the web and in documentation or for in-game illustrations of different types.

Should not contain diagrams, graphs, web page border details or similar pictures that are not illustrations.

For example:

    artwork->syllus->the_great_mage_orc_war_in_syllus.jpg
            \> moraf->glitterdark_forest.png

resources

Media that is used as tools or resources when creating new media. For example, brushes for paint programs, image brushes for creating specific effects like stone, grass or noise textures that are useful for adding un-eveness or dust to other textures.

For example:

     resources->image_brushes->stone_picture_tube_hh.tub
              |
              \>patterns->rough_noise.png

soundfx

Sound effects ranging from ambient sounds to sounds produced by different kinds of activities and various creature sounds.

music

Contains a common instrument library, mod-based music using that instrument library and music in mp3 or ogg formats.

For example:

     music->instruments->funky_tuba.wav
          |
          \>songs->picking_acorns_all_day.xm

icons

Icons for various generic purposes, such as map icons, spell icons, etc.

Should not contain theme specific icons as those are in themes/, nor application specific icons as those are stored with the application.

themes

User interface themes for uclient and other clients.

scratchpad

The scratchpad is an area for various artists to work on personal and experimental projects that don't fit in any of the existing categories, but that could, never the less, prove to be useful for others. Each artist can create a directory under scratchpad named as their nickname, or named after the project if there's multiple people working on it. For example, media/scratchpad/pato/scene_setups/isometric_ground_tiles_jo.blend or media/scratchpad/syllus_comic/.

junkyard

A collection of old material that is currently not used, and doesn't belong in any of the other categories. The junkyard is a place where you can dump things that are not needed but still are too good to throw away and where you can search for reusable parts. It differs from the scratchpad in that the material is not being actively developed by anyone and is usually old material that could not be placed elsewhere.

More examples

media
    3d_objects  
        environment
            stone                    // <- determines the name of the meshes and textures
                meshes
                    boulder
                        stone.3ds    // <- named the same as the template directory
                    hewn_block
                        stone.3ds

textures template // <- the textures/template/ directory contains a template texture that determines the texture layout. stone.png // <- named the same as the template directory, if there is only one texture. If multiple textures, each have an own name. granite stone.png

ground_type

plants leaf fir_tree mushroom

creatures dipvira quadruped eye teeth

items building_element furniture sheet tool

clothes ...

humanoids ...

Version History

2003-03-11 zzorn: created by Hans H�ggstr�m (zzorn) using proposal by Munin and after discussion with Munin, Pato, Bear, Anubis and others.

2003-03-11 zzorn: Added scratchpad.

2003-03-12 munin: Moved doc to WorldForge Media section to make modifications easier, added some details.