ArkWorld:Explorer characters have a simplified set of attributes that are used to compute their interaction results similar to most role playing games.
The main attributes are referred to as SLIDE and vary in their effects to various character actions and interactions on the ship. Characters perform training actions to increase specific attributes such as working out in the gym and dojo to using the firing range or by successfully performing roles in various ship sections.
Character condition is tracked through additional stats that change over time and user actions.
- Level – Character Level (linked with Experience Points from character actions)
- Health – Should be higher than zero, get healed in the Medical Bay
- Rest – Doing work is hard, rest-up in the Crew Quarters
- Food – Must eat or Health gets affected
Special Skills are on the design roadmap and will be introduced when ship and character customization features are completed.
Implementing the Design
A key decision point is determining how much code separation is done between the controller logic and the game runtime especially when character state is tracked and updated while not necessarily visible on the game screen. Separating the control logic from the game engine provides future flexibility in case the game platform needs to be changed to another system.
In my setup, I opted to use script components to minimize the glue code between my code and the graphic elements and assets; I also get to use the Unity Inspector pane to update runtime values. Character commands and action are handled through the CharacterControl script that manage the various attributes, stats along with the other runtime components like the Animation Controller, NavMesh Agent, Colliders and coordination with the main Game Controller script that I will eventually call the Master Control Program.
I’ll post a mini-project in GitHub after I discuss how the room interaction is setup with the character attributes.