Naming Conventions and Structure

From The Official Visionaire Studio: Adventure Game Engine Wiki

Naming convention & structuring are both useful methods for organizing & remembering file-names, folder locations & what should go where.


Naming Convention

Lowercase vs. Uppercase vs. Mixed-case

When naming your files & game assets, you should try to make it as simple as possible. I recommend using lowercase only because it saves a lot of time when you aren't having to mess around pressing the shift key or toggling the caps lock key on & off every two seconds.

this is far quicker to type than: This, Because This Requires Me To Keep Reaching Over With My Right Hand To Press The Shift Key. Now on the other hand: THIS IS REALLY HORRIBLE TO READ & STILL REQUIRES ME TO KEEP HOLD OF THE SHIFT KEY OR TOGGLE THE CAPS LOCK KEY ON.

Whitespace

Using whitespace between words is ok in this modern day & age, but I do recommend joining your file-names & object names together with dashes-or_underscores_like-so. Why, you ask? Well it stems from a long, long time ago, in a system, far, far away, when it was common practice to join words together with underscores & dashes; mainly to access things via command line, or whatever. A lot of people still name things like this out of habit, but it's actually just good practice to name things in this way & is more likely to be accepted/understood by various programs & code formats.

Prefixes

Prefixes are a great way for quickly determining where something belongs, what it is for, or what it is linked to. In Visionaire Studio I tend to name things like, so: obj_object-name, anim_anim-name, act_action-name, v_value-name, cond_condition-name etc. For scenes I tend to use a number based prefix like, so: 001-001, which would be chapter 1, scene 1. I also tend to add these numbers in (brackets) at the end of certain objects & animations so that I know that, that specific object/animation is only to be used in that specific scene/chapter.

Separators

Technically Visionaire Studio has no separators but you can easily create headers/separators in the object list by creating an object/script/animation etc, renaming it to something like -- blah -- & leaving the object, scene etc blank. For scene separators/headers I recommend creating them as a menu scene & for scripts I recommend setting them as execution scripts inside of the scripts properties tab.

Here's a few examples of what I use as separators/headers... -- menu --, -- scene --, -- playable_character --, -- npc --, -- misc --, ...


Folder Structure

Folder structure is just as important as name convention, as it can mean the difference between spending ages searching for a specific file, instead of simply browsing to the most logical place. A good name convention is also required for a good folder structure!

Here's a quick example of how I might organize my game/project:

root (contains the .ved & various sub-folders)
  • data (sub-folders for various game assets)
    • character
      • tom
        • idle (various sub-folders containing the characters idle/standing animations)
        • walk (various sub-folders containing the characters walk animations)
        • talk (various sub-folders containing the characters talk animations)
        • random (various sub-folders containing the characters random animations)
        • character (various sub-folders containing the manually triggered character animations)
      • npc_barry
        • etc...
    • menu
      • main_menu (background image, static image assets & various sub-folders)
        • animations (animation assets)
        • buttons (button assets, such as: new game, resume, load, save, quit etc)
    • scene
      • 001-001 (background image & various sub-folders)
        • objects (static image assets)
        • animations (sub-folders containing animation assets)

This is just a small sample of my folder structure. I tend to group things together that need grouping together. It's a good idea to remember to add prefixes to your game assets such as sounds/voices/animations etc if they are only to be used in one specific scene. It's also a good idea to separate images/audio files containing different languages into separate folders.