My wrists hurt from writing so much code yesterday. -_-
- Fixed the account activation link from email.
- Fixed a bug where people wouldn’t get past character creation and onto a zone.
- Fixed an issue where the character creation screen would sometimes be unnavigateable.
- Fixed completed quest-indicators not disappearing from the map.
- Fixed some issues from the last update where some descriptions weren’t showing.
- Fixed other player-character’s clothing not showing on their character card.
- Fixed many bugs with certain scenes.
- Simplified player character details for your own character.
- Changed the default adjectives for chest and rear descriptions on the “Born Male” trait.
- Changed the requirements-not-met colored text in dialog options to show better. (I hope)
- Updated character syncing between the client and server, and vice versa, to use much less bandwidth.
- Added some more PC descriptions to character cards.
- Added support for quests which have no location to point to.(No quest indicator)
- Added a method to alter writing based on whether the player has met the character before or not.
- Added a method to alter writing based on whether or not you’ve seen the scene already.
- Tons of changes and improvements to the item creation dev tool. (Just something I and anyone who works on content sees. In short, it’s easier to add items and more can be done with them)
- Updated the items section of your character card to contain buttons. (A better inventory menu, and a keyboard-navigateable interface will be added later)
- Added scenes for a female researcher, Gail, at the Wilderness Research station, partially written by Swapper.
- Added more scenes for Sliushtha when you have the item given by Gail, written by Swapper.
Of all these updates, the big one is for items.
Before, items behavior was hard coded on the client. There was no API or tool to create their behavior. The server also didn’t oversee this behavior. This change, which for now just has things equipable or not, required items to be recoded, which took a few days. There is a whole lot more that can be done with them, I just haven’t thought of what sort of items to add to do those things, or how they pertain to the story.
Below is a screenshot from the dev tool for item creation/editing, so you all can see what you otherwise couldn’t:
This works just like how functions on scenes work, except they’re triggered by a button press instead of a scene loading.
Multiple functions can be added for each button press, in order to chain things together for a greater effect. This is done on the Phallic Symbiote, to change many things about the character when equipping and unequipping.
These functions are also context sensitive. “consumeItem” with no arguments knows you mean to consume that item that has the button pressed. But another item could be added as an argument, perhaps as a recipe where many items are consumed for something and requiring all of them.
The other difficult part of this was just wrapping my head around how I’m supposed to display descriptions and intelligible phrases in a scene’s writing about what someone is wearing.
In most(all?) text games, your character has an entire outfit that is just removed or put on.
In 3D games, it’s really much easier because you equip some items that attach to the bones for the animation rig, and they limit how thing can overlap. Some newer games have done neater things where mesh intersections are detected, and things can be tucked and such, to overlap things.
Even something like shirt, bottoms, and underwear was too simplistic. What about one piece bodysuits? I had to figure, well what if I want eyepatches and other accessories?
I came up with a system of where clothing has a checklist of what it covers, and an order of its depth for when multiple ones are stacked.
Using this map, the writing parser figures out how to describe what item(s) are over a body part that’s described, and how to describe an overall look.
It’s really not finished. It’s such a complex thing, but at least I figured out where to head with it. As of now, it doesn’t flawlessly detect what should be removed, or if things should be removed at all, but it will in the future. There’s probably some other bugs with it as well.