Image credit: SmokingMan
23.07-09: 2023 3rd Quarter Devblog
Saturday, October 7, 2023
Written by: CosmicCoincidence
“Medicine is a science of uncertainty and an art of probability.”
– William Osler
This quarter we have some fun things to show, albeit they are still in their infancy. We made further progress on the clothing system, started a health system, and made lots of fixes.
Inventory Rework and Basic Clothing
In preparation for his health system, Nath made some changes to the clothing and inventory systems. He made the inventory dynamic and now the slots are based on your limbs and clothing.
If a player loses a hand, they will lose that ui slot. No left hand, no left-hand slot. No torso, no backpack slot. If the player grows a third arm/hand, they get a 3rd hand slot.
Nath also set up some basic clothing to pair with the inventory rework. Similar to the limbs, if a player is wearing a jumpsuit, they will notice two pocket slots in their inventory UI. If they remove their jumpsuit, the pocket slots will be removed. In fact, they remain attached to the jumpsuit. So if you place an object in your pocket and remove the jumpsuit, the object stays in the jumpsuit. Articles of clothing are now searchable containers and different types will have different quantities of pockets in the future.
Currently gloves/shoes must be equipped separately due to the constraints of the system as is, but we intend to make that more intuitive in the future. Also, some bugs to fix.
Nath, inspired by past medical systems we had, wanted to make something more robust and is doing just that based on our recent designs. The system uses a combination of body parts and body layers to create a modular health system.
Body parts are what they sound like, that’s the character’s limbs, head, torso, organs, etc.. They are fully autonomous networked objects. The only special body part is the brain. If the brain dies, the character dies.
Body layers are essentially the separate sub-systems within the character. Body layers have their own health (can be damaged individually) and will eventually have special behaviors. A human has several biological sub-systems such as muscular, nervous, skeletal, circulatory, and organs which all work in various ways to keep the human alive. Whereas a cyborg may have various electrical sub-systems that keep them operating (cyborgs not implemented yet).
He also added detachable limbs and different types of damage; brute, energy, chemical, and oxygen loss. Body layers can have resistances or vulnerabilities to different damage types. Damages all behave the same, they contribute to the total damage amount of a body part. If the body part takes enough damage it is destroyed (simply vanishes for now). Body parts can be severed however as long as it is not destroyed first. Severing hands prevents the character from using hands in any way. Severing feet currently prevents the character from walking/running. If the head is severed, the “soul” stays with the head since that is where the brain resides. If the brain dies somehow the soul becomes a ghost.
Since combat hasn’t been worked on yet, Nath simply added some basic ‘click to add damage’ actions and console commands to use as testing for now.
Container System Simplification
First, Nath merged our Container and AttachedContainer scripts since there were very few situations we may need a container not attached to a game object. Then he removed the size feature on items which allowed them to take up different amounts of space in a container. This feature is nice in theory but as of now, we haven’t agreed on how that should be visualized and can be re-added in the future.
Finally, he fixed several bugs with the system; item sprites no longer glitching when moving them, dropping item sprite on container window edges no longer causes glitching, removed redundant calls and events, and items now get placed in containers where the mouse released them.
- Fixed held item rotations.
- Fixed the command system not being able to be called on clients.
- Updated fishnet from 2.6.6 to 3.10.
- Added stylecop for linting scripts.
- Moved some things to editor-only to fix build errors.
- Fixed issue with containers causing a possible stack overflow.
- Added an editor configuration file.
- Refactored game screens and smoothed the embarking process.
- Refactored Save and Tile systems to be more log-friendly.
- Added a missing asset in the project settings.
- Added Runtime Inspector, Runtime Hierarchy, & Inspect Plus plugins.
- Fixed commands failing to execute.
Konstantin is keeping the asset section alive this quarter with a couple of AI faces based on JC Denton from Deus Ex.
SmokingMan made this month’s blog art!
Interested in more frequent updates or hanging out with our community? Join our Discord!