Actions - Questions for best practises

  • #1, by SuroWednesday, 09. April 2014, 18:05 10 years ago
    In my next tutorial I want to look at a couple of things that makes sense for me to do, so stuff is organized and easy to access.
    Here are a couple of ideas, and you can either add more or tell me what you think of those.

    "Where to put my actions?"
    You can put actions EVERYWHERE. So this can be very good or very bad, depending on how cleaned up your project is.
    I add ALL actions that will play in a certain scene IN that scene. No matter if it is a dialog, a cutscene or anything. Meaning, even if it is something simple as a 1 Sentence "Look at Chair" command, I'll put it into the scene itself, as a seperate action and NOT in the actionslot of that sceneobject.
    The reason for that is simple (in my mind):
    -everything is organized at one spot (of course you have to have propper naming conventions)
    -you can easily add stuff in the actions, without the need to go into a sub-window
    -duplicating those actions is easy pease
    -if you work with several people, they can easily add stuff to those actions and leave the scene object in peace

    In the action slot of the sceneobject I simply call that certain action.
    (this hasn't been tested yet, but it should work)

    Setting markers. Lot's of markers.
    I will never ever use the "Move Character to Position x/y" action. I rather add 5-10 more markers (remember: propper naming conventions).
    The reason for that is, that if I ever want that person to go 10 pixels to either side, I can simply pixel-perfect move that marker, instead of typing in numbers.
    Also, very important, this can be edited WITHOUT the need to go into that certain action.

    Naming conventions:
    I love to name stuff so it makes sense. Here is what I came up with after working on my project and from working at Telltale (Actions specifically):

    CS_[Scene]_[ShortDescriptionOfCutscene]
    CS stands for CutScene obviously. Also, to get rid of spaces, I simply capitalize every letter of a new word. This is something I stole from programmers. I saw them doing it and it just made sense.

    Idle_[Scene]_[Character]_[ShortDescriptionOfIdle]
    Idles are actions I leave running in the background. Rather than having a randomized animation, I set up actions (like people chatting in the background) to have better control over it.

    USE_[Scene]_[Item]
    LOOK_[Scene]_[Item]
    USE_[Scene]_[Item1]_[Item2]
    Since I have a simple 2 mousebutton inteerface (similar to The Dig) I only need "use", "look" and "Use with Object" commands.
    If you move the actions to that one specific scene (See "Where to put Actions") then there is no need to name the scenes in the actions. However, it makes clean.

    Sooooooooo!
    Tell me, what do you think?
    Are those good hints? What would you consider best practises?

    Newbie

    36 Posts


  • #2, by afrlmeWednesday, 09. April 2014, 18:55 10 years ago
    sounds good.

    I recommend always joining up words with an underscore_like_so as it is better for anyone who might be accessing certain objects, actions, conditions etc with Lua script.

    I tend to name things in a similar way also...

    cond_name
    int_name
    act_name
    obj_name
    etc...

    I would recommend not differentiating between UPPERCASE & lower case at all. It's just quicker to use one or the other & makes it easier to remember & faster to type - again - if you plan on using Lua.

    Prefixes & ID codes are good idea also, as you can use them to quickly identify what something belongs to. So is creating separators - empty object/scene/character which you rename to something like -- playable characters -- or -- ch001 -- - as in chapter 001, which you would add all scenes or whatever belonging to that specific chapter, area or something along those lines.

    100% agreed on where to place actions, conditions, values etc. I prefer to place all scene actions/conditions/values into the actual scene tabs as opposed to the tabs in the scene object itself as it's just easier to find stuff. Same for characters, interfaces etc. For global actions, conditions, & values I tend to place them in a separator object in either the characters or interface tab as it just makes more sense for me to do that.

    Imperator

    7278 Posts