Quite some time since the last news post. This has been mainly due to story writing work. More than 3 weeks went down the drain to building up a document to hold the important corner stones of the story. If this would be a boring FPS or an MP game then story would be a no-brainer. Since this is though a game where investigation is part of the job the requirements on the story in terms of logic and coherence are quite high. This is especially time consuming if you write such a story for the first time. Another problem is to allow the player a certain degree of freedom in how he pulls off his investigation. All this together ate up a lot of time leaving less for working on the game. Nevertheless I'd like to take the opportunity to talk about the new stuff concerning the actual game itself.
Most of the work went into improving the conversation system. For this Target
have been added. Targets simplify the process of defining targets for cameras or other kinds of actions in a conversation. In addition to the existing parameters for actor speaking 3 new Look-Ats have been added: Body, Head and Eyes. Targets can be anything from actors in the conversation to world objects nearby. The system is thus quite variable. The major improvement though is adding the conversation system to the game (as it worked so far only in the editor). Besides that new interactions have been added. But it's easier to see it in action. Read the text below the video to learn what each sequence shows.Video ModDB
First part shows the memo pad handling
to work with the new player character (especially it's now right-handed as it should be). Shown is picking one pad up. I know it's strange as he grabs it with the right hand but holds it with the left but I had only the right hand animation already from the previous model. Will be changed later on. Pads are now used using animations (your finger there). Also dropping shown. Next is picking up a story memo pad. You have to pick this up to get a conversation going later on.
Next shown is the entire conversation system
. Added support for conversation introduction
thus saying hello and stuff like that to make it more natural. Then selecting the appropriate topic to talk about. That topic only exists if the memo pad has been picked up beforehand. Then comes lots of new stuff. Added more camera shots for variety. Added face and eye look-at targets
. Also included eye-blinking
now. More things I added is one actor giving stuff to the other
. This is a matched animation so if you look at it from the outside they properly hand over an item no matter the distance between them (IK stuff). This works using player actions which means it can be used for anything including the player and NPCs. Added a command interface
for that. A rather simple system sending a text command to the an actor.
Every actor in the game has a PlayerActions
object assigned. This one defines how the actor behaves right now. The action can be changed by assigning a new PlayerActions object (typically a sub-class). The trick is now that for everything these actions are used. The only thing that changes between a player actor, an NPC actor as well as conversation is how commands are given. For player actors commands come from keyboard/mouse. For NPCs the commands come from an AI object. And during conversation commands are send to these actor actions. So I have to implement an interaction only once, as a PlayerActions sub-class and can then use it for everything just by giving the right input. Here a bunch of actions are involved, HAGrabProp, HAGiveProp and HATakeProp. A simple system to use but powerful.
There's also support for player choices
not shown in the video. Simply shows a list of options on screen the player can select one from. Each option has a list of conversation actions assigned so you can alter the course of conversation if required.
Last but not least the same as with starting the conversation. Shows some goodbye stuff
when the player leaves. Same idea as with saying their hellos. All of these are conversation topics so you create them the same way as any other conversation.
Out of conversation the next thing shown is some interactions. The first one is taking a seat
, here on an infirmary bed. Introduced here the actor align action
. That's a glue action which aligns an actor before running the next action. Used to position the actor in the right place for the next action to work properly. Showing this in the second time he sits down where the player is standing far away. So sitting down is 3 chained actions (HAAlignActor, HASitDown, HASitting).Simply but versatile. This sitting down might not look useful yet but it will be used for NPCs (talk to them while they sit behind there desk) and using computers (player sits down on the chair in front of it).
Last thing shown is an idea I had to make investigation a bit more interesting. Here an action to look under the bed
. The idea is to be able to look for clues in less ordinary locations. For this one I filmed myself and used this as reference making the animation.
Besides this a bunch of under-the-hood stuff has been added to. This includes a bunch of conversation actions and conditions including working with local variables (integer, valid during a conversation session) and working with actor parameters (integers). Actor parameters
are interesting as they store information like the mood of the actor and other information. Asking irrelevant stuff or otherwise annoying an NPC with questions drops their “like you” parameter. If this one is too low they won't talk with you anymore. So think first what you ask. Careless pressing makes your life just harder. The mood system is though still work in progress so I'll talk about that later on.Outlook
I wanted to get this conversation system out of the way as quickly as possible so I can do more engine work. There are a few things on my list to do including AI, Path-Finding and Global-AO. Stay tuned.