arrow-left

All pages
gitbookPowered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

File Naming & Organization

Object Type

Object type sorting is specific to object-related assets. Which is all assets in the Art folder and many in the Content folder.

The Assets folder on the GoogleDrivearrow-up-right (and art repo) are organized the same as the Art folder on the game repo. First sorted by asset type, then by object type. Not all folders will have all types.

hashtag
Object Types:

(The first 4 types in the list below are where 95% of common objects are kept.)

chevron-rightEntitieshashtag

In-game objects that have 'life' per-se. This includes player races, animals/monsters, robots/borgs, and even vehicles.

chevron-rightItemshashtag

In-game objects which can be picked up, stored on your character, or moved in a variety of ways (physics?). EX. bikehorn, bananas, guns, clothing, etc..

chevron-rightFurniturehashtag

In-game objects which are too large to store on your character, most of which cannot even be picked up. EX. tables, chairs, plants, machines, etc..

chevron-rightStructureshashtag

In-game objects similar to furniture but are nearly exclusive to the structure of the station (tilemap). EX. walls (& wall mounts), floors, plenums, wires, pipes, etc..

chevron-rightWorldhashtag

In-game objects which are 'other' objects pertaining to the world itself. EX. skyboxes or other backgrounds, character customization room, VFX & SFX, etc..

chevron-rightEditorhashtag

Non-game objects which are used in the Unity editors for display or other reasons. (This will likely only be used in the /Art/ subfolder, NOT the /Content/ subfolder. Reason being is we use broad Editor folder in the /Content/ folder.)

File Organization

hashtag
/Assets

Most of our project lives in this folder and as a result we need to keep it organized. As you may have guess the folder itself it broken up into various sub folders. Here is the ruling:

chevron-right/Assets/Arthashtag

Art assets are "external" assets, meaning they are created via an external source (outside of Unity). EX. pngs, oggs, mp4s, fbxs, etc.. Although some assets will not saved in this folder (materials, shaders, etc.) because those assets are exclusive to Unity and were not created externally (see the "Content" folder below).

Due to the nature of our project being open-source and having a community of contributors with various skills, we have segregated the Art folder by asset type, using the following sub-folders:

  • /Animations: 3D animation files for our 3D models.

  • /Fonts: font files.

  • /Graphics: 2D images used mostly for UI.

This helps reduce clutter in individual folders and also some assets are used in combination with multiple other assets in various ways.

Next we sort the art assets by . This applies for all of the above folders except Graphics and Fonts because those are mostly for UI.

Most files in the Art folder are documented in the Art Asset Contributor list currently saved on our Google Drive.

chevron-right/Assets/Contenthashtag

Content assets are 'internal' assets, meaning they are created within Unity itself. EX. shaders, materials, prefabs, etc..

Unlike art assets, content assets, are NOT sorted by asset type, but rather their broad usage.

chevron-right/Assets/Editorhashtag

Editor assets do not go to built executables!

Editor assets are files exclusive to Unity editors. EX. the tilemap editor, or atmospherics editor.

chevron-right/Assets/Scriptshashtag

Scripts are code files that make up our codebase. This includes things such as UI code, networking code, camera & FOV code, game systems, etc.

They are separated by two main folders, SS3D and External:

  • /SS3D holds all the scripts made by us, it is our codebase.

chevron-right/Assets/Settingshashtag

Holds all the Scriptable Settings assets, which are global settings that can be custom created.

chevron-right/Assets/StreamingAssetshashtag

This is for file saved by the game, like map saves.

hashtag
/Builds

This folder is for storing builds and their related assets like .bat files which we currently use for running the game as a developer.

hashtag
/Documents

Documents is simple, it stores the basic documents for the repo.

hashtag
/ProjectSettings

ProjectSettings stores all various settings and managers for the project.

/Models: 3D models.

  • /Sound: audio files.

  • /Textures: 2D images and animations used as textures on 3D models in-game.

  • /Addressables:
    asset data files.
  • /Data: Holds all the Scriptable Objects and data files that are used by scripts.

  • /Resources: you will see a Resources folder here in the Content folder and maybe a few floating around other places in the project. This is used to house files that specifically require to be held in a folder called resources. I think this only effects 'object type' content assets. I think it had something to do with network IDs or the tilemap or both (Broodje would know).

  • /Scenes: unity scene files for menus, maps, and such.

  • /Systems: technical content relating to game systems like, substances, UI, controls, etc.

  • /WorldObjects: all the prefabs and related content that make up our interactable in-game objects. This folder is sorted by !

  • /External is where we put all the tools and frameworks we use, and that are not created by us.

    Object Type
    Object Type

    File Naming

    When (re)naming files and folders always do so using 'PascalCase'arrow-up-right, this makes naming consistent which helps with organization and clarity.

    hashtag
    ✔️ Correct

    LockerDoorAnimationController.file

    hashtag
    ❌ Wrong

    Locker Door Animation Controller.file lockerdoor animation controller.file AnimationController - LockerDoor.file

    Also, acronyms should be treated as words. For example: JanitorIdImage.file NOT JanitorIDImage.file