Difference between revisions of "Naming Conventions and Structure"

From The Official Visionaire Studio: Adventure Game Engine Wiki
m
Line 7: Line 7:
 
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.
 
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.
+
<span class="inlinecode">this is far quicker to type</span> than: <span class="inlinecode>This</span>, Because This Requires Me To Keep Reaching Over With My Right Hand To Press The Shift Key. Now on the other hand: <span class="inlinecode">THIS IS REALLY HORRIBLE TO READ</span> & STILL REQUIRES ME TO KEEP HOLD OF THE SHIFT KEY OR TOGGLE THE CAPS LOCK KEY ON.
  
 
=== Whitespace ===
 
=== Whitespace ===
Line 13: Line 13:
  
 
=== Prefixes ===
 
=== 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.
+
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: <span class="inlinecode">101_</span>, which would be episode/chapter 1, scene 1. I also tend to add these numbers at the beginning of certain objects & animations so that I know that that particular object/animation is only to be used in that specific scene/chapter/episode.
  
=== Separators ===
+
Here is the actual list of prefixes I use for scene objects & interface buttons...
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.
+
<hr>
 
+
◻️ interactive scene object: <span class="inlinecode">obj_</span><br/>
Here's a few examples of what I use as separators/headers... -- menu --, -- scene --, -- playable_character --, -- npc --, -- misc --, ...
+
◻️ point of interest that can be examined: <span class="inlinecode">poi_</span><br/>
 +
◻️ non-interactive animation: <span class="inlinecode">anim_</span><br/>
 +
◻️ non-interactive image: <span class="inlinecode">img_</span><br/>
 +
◻️ object that can be added to inventory: <span class="inlinecode">itm_</span><br/>
 +
◻️ interactive interface/scene object button: <span class="inlinecode">btn_</span><br/>
 +
◻️ command: <span class="inlinecode">cmd_</span>
 +
<hr>
 +
=== Collapsible Separators ===
 +
Visionaire Studio supports separators, which also double up as collapsible groups; however moving the separator will not move the content listed underneath it, so keep that in mind. You can create collapsible separators almost anywhere in Visionaire Studio where you can create something, just add a **-** before the name, like so: <span class="inlinecode"> -example </span>, & it will automatically be turned into a separator.
  
  

Revision as of 23:21, 21 August 2022

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: 101_, which would be episode/chapter 1, scene 1. I also tend to add these numbers at the beginning of certain objects & animations so that I know that that particular object/animation is only to be used in that specific scene/chapter/episode.

Here is the actual list of prefixes I use for scene objects & interface buttons...


◻️ interactive scene object: obj_
◻️ point of interest that can be examined: poi_
◻️ non-interactive animation: anim_
◻️ non-interactive image: img_
◻️ object that can be added to inventory: itm_
◻️ interactive interface/scene object button: btn_
◻️ command: cmd_


Collapsible Separators

Visionaire Studio supports separators, which also double up as collapsible groups; however moving the separator will not move the content listed underneath it, so keep that in mind. You can create collapsible separators almost anywhere in Visionaire Studio where you can create something, just add a **-** before the name, like so: -example , & it will automatically be turned into a separator.


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.