Thursday Report: Picking Things Up Where We Left Off
Some more 'juice' this week, and making a start on some more serious scripting that should be keeping me busy for the month of March.
Last week I was expressed that, regarding analogue controls, I also wanted to have both walking and running states for the character depending on how far the analogue stick is pushed. This isn't necessary, but I thought it would a shame if the player couldn't walk at a slower pace through their garden – perhaps for a cinematic moment, or just while they think about what they want to do next.
The trouble I encountered last week was that I had the script running whenever the analogue was pushed further than a certain amount (say, if the analogue stick push is greater than 0.8, execute the running script). The trouble with this is that the script executed itself every 60th of second while the stick was pushed so far – returning the run animation to its very first frame (the animation is being initialized sixty times a second), making it appear as though the character is stuck on one frame, but sliding around the map.
This was a bit of a head scratcher, but the solution was easy once I saw it – check the current animation: if the player is already playing the 'run' animation, don't play the animation again.
Then everything fell into place. It was just a case of tuning the speeds so that the character's feet align roughly with the ground, so it doesn't look like they're walking on ice.
Holding Shift or either of the Triggers on the controller will have the character move at an even faster rate. I'm still undecided whether this should be put on a recharging limit. Speeding around the garden seems counter to the mood for the game, but I also don't want to dictate how anyone should play.
Trouble is, you give players power and they tend to use it, even to the detriment of their enjoyment. I think I'll just keep the speed in a reasonable place for now.
We're at the early stages of inventory management. The player can now drop items and pick them back up. It's not the cleanest piece of code written, but it successfully carries over the item's icon, it's name, and it's quantity – the bare minimum. The inventory will also now search for the first empty slot to fill upon doing so.
The animations are still baking, but picking up an item will have it find the top of the players head before lowering in – representing the item being picked up.
The player will exchange items with characters too, and I'll be soon needing a visual for this. Games famously obscure item transaction between characters, raising the camera just above elbow height as the two character lean in toward each other. It works – player imagination is a powerful tool, and it saves the hassle of mapping every item to each character's model's.
Animal crossing has a cute solution where each character has a 'holding out' pose, as well as a pocketing animation. The item kind of floats as an icon between the two characters, eventually shrinking into the receiving character's pocket. This works because each item is represented by its own icon, and all character share the same animations (and, obviously, we take the world of Animal Crossing with a grain of salt).
I'm considering an option that works similar to picking up items – having the item appear above the characters head, moving over toward the player's head, then lowering back down. It's representative rather than literal, and I'll be cautious with how well it really works, but I think it could be a fun compromise while I focus on more important things.
Lastly, I decide to begin dabbling in the world building script.
This came with a caveat that I thought I had an answer to, but turns out to be a more difficult question than anticipated: how big should the garden be?
This is obviously a question that I can't answer at this stage. The only way I'll really be able to know is by having a playable game, and seeing what 'feels' right.
It should feel expansive, but limited. I want players to feel like there's a thrill to exploring, but that they'll soon have it mapped roughly in their heads. To have curated the entire space should be a tremendous challenge, but most players should feel content that they have shaped a corner of the garden to their liking.
I've settled on not having the world entirely randomly generated, but compiled of different puzzle pieces (nostalgically named 'acres') that will be pre-baked. Each will have certain notable features, floor heights, rivers and so on, that will allow them to be put next to a series of other acres. Some will be more interesting than others, some will be rarer than other.
This way, while players who constantly reroll might experience some deja vu, I have a system that ensures a certain amount of reliability when a new world is generated, but also keeps things fresh.
An 'acre' will be approximately 9 screen sizes. A garden, for now, I've settled on being 36 of these acres.
This seems pretty big, and running from one side of the map to the other does take a fair bit of time, but currently the space is entirely empty.
As we all know, rooms feel so much bigger when all the furniture is removed.
The Garden Path was chosen as the featured image for Godot's 10th beta snapshot this last weekend, which gave the game a good little boost of publicity, especially over on itch.io with a spike of new followers.
If you're one of these new followers – hi! Thanks for reading. Hopefully I'll have some more exciting subjects for you soon.