First Steps of a Live Mode: Interactions (Patreon)
Content
Hello everyone, Anna speaking today!
While everyone else on the team is extra focused on the build tools and new assets to include in the future chalet video, Iâm progressing on the animation and action systems basics.
So, what is an action system exactly, you ask? By action, or interaction, I mean everything that the player will be able to order their Para to do around the town: petting a dog, cooking a dish, watching TV, or taking a long bath. These would be triggered by interacting with an object or a Para, but some actions will also play autonomously, if the player stops controlling a Para or when thereâs something urgent to do. Itâs still a bit separate from the animation system, as some actions could be performed in a rabbit hole, so you wouldnât see any animation playing for those.
Action Queue Ideas (For Patrons only. Please donât share!)
[Boring disclaimer] Right now as you may know, weâre still in the design phase of the live mode and action system, so everything that will be shown here is only under consideration and not confirmed.
First of all, let me show you some thoughts and ideas I had about the action queue and some features that it could offer.
- Action queue rearrangement: cancelling an action, reordering an action, showing progress for the current action.
- A contextual menu showing up on certain actions:
- To choose when to finish the action (you may want to take a shower until youâre clean, or until you have to go to work)
- To precise the action without cluttering the interaction options too much, or when you donât want to trigger the interaction from the object (âchange channelâ or âlower volumeâ on a TV for example)
- Routines! The ability of setting up routines with custom actions have already been widely suggested by the community. Triggering a routine would just add the corresponding actions to your current action queue and you would be able to cancel one or multiple of them without trouble, just as regular actions.
- Scheduling an action. Instead of adding an action to your queue and playing it when everything else is finished, you could be able to choose an hour or maybe even a day for performing this action. This would allow you to plan the hour where you want your Para to take a nap and switch control to another Para knowing the first one will get their sleep at the right time. There would be a limit for these scheduled actions so it doesnât get too easy!
What do you think about all of that? If you have other ideas, please feel free to share them in the comments!
Now letâs dive into a more technical aspect of this system!
Action System Technical Design Deep Dive (For Patrons only. Please donât share)
Even the most basic action system entails a lot of things to take into account, programming-wise. In Paralives, we want to give easy-to-use features to users for creating mods and that includes interactions. As developers, we use these tools ourselves to add content to the game!
Here are some settings describing an interaction and that should be available in our modding tools, in order to add a new interaction or modify an existing one:
- Type of action. Actions can be driven by gameplay (e.g. âpaint somethingâ ends when the painting is finished), by animations (e.g. âpet Doggoâ ends when the animation ends) or by time (âbe at workâ lasts from 9 to 5 for the typical job)
- Steps of actions. Some actions require a certain amount of steps that are âinvisibleâ to the player. In the UI, a player will see that the selected Para is currently doing an action called âcookingâ, but they will never see the extra steps of pathfinding between the fridge to the counter, or the counter to the oven for example.
- Constraints. The code will need to check whether or not the constraints are satisfied, and if not, try to satisfy it in order to play the action. For example, when cooking, a Para needs both of their hands to open the fridge, chop off ingredients, and carry a plate from one place to the other. If those constraints are not met (e.g. if your Para carries a book), extra steps will be needed to start the action. Getting to a specific posture, rotation or position could also fall under these constraints settings.
- Animations and sounds. Both have their own system, but they need to be linked to the action system somehow to know which animation or sound has to play for the different actions.
- Items and their states. Some actions can alter the state of an item and it needs to be specified and timed during an action. For example, chopping off vegetables during cooking will alter both the look and the state of the vegetables items. Itâs used for visual feedback but also for the ability to remember at what state an item is (to resume cooking from there, for example). Another example would be to read a book and update its reading progress through time.
- Gameplay consequences. Some actions alter the state of the Para who does it. We don't have our full needs, mood or skill systems ready yet but actions will definitely have various sorts of impact on gameplay!
- Autonomy conditions and pathfinding. Some actions arenât played at the exact same spot as the one theyâve been triggered and require an extra step of pathfinding and autonomous choice. For example, when choosing something to eat by clicking on the delicious-looking bowl of chips, the controlled Para will need to know where they eat it. The most convenient spot to eat is subjective, but there could definitely be different options: eating at the closest table, eating at the most/less crowded table in a restaurant depending on your personality, eating on the closest couch or bed (we wonât judge). These options are subject to conditions: the availability of tables and spots at the tables, the possibility of reaching them without any obstacle blocking the way, and the Paraâs personality or other autonomy modifiers.
Thank you for bearing with me through this post, those systems are really complex and it takes a lot of time to design, implement and test. I hope youâre as excited as us to see more live mode updates in the upcoming months!
Have a nice day!
Anna
Ê á” áŽ„ á” Ë” Ê