carrotcake Blog 🍃


official devlog for carrotcake written by Louis Durrant

Thursday Report: Content of Character

Posted on Oct 8, 2020

‘Tis the season of Inktober in the online art world, and while I usually enjoy the challenge of taking a step back from digital art, I figured this year I would utilize the time usually spent on the official prompts (of Jake Parker’s) to aid the development of the project.

If you’ve not been following me elsewhere, I’ve been posting a new vegetable resident each day on social media, and will be doing so until the end of the month – in theory leaving us with 31 new faces.

With a total of 50 residents planned for release, and roughly 10 residents completed prior to the month starting, this will put me in a very good position for release. Do note that all time spent on these characters is in addition to usual development time, so everything else is still being built in tandem. Inktober should always be a challenge, and this approach poses both new perks and new trials.

I’ve built the style of The Garden Path to allow for quite rough artwork, which allows for quick art generation on a good day, but difficulties expressing certain shapes and shadings with such broad strokes on a bad one. I imagine very few of the villagers I share will be considered ‘final’, as I need to draw the line under each piece at some point so I don’t totally burn out.

I’m generally happy with each resident so far, although with each one I’m learning a little more about expression, colour and shading as it fits into the game as a whole. I’m sure I’ll be revisiting each one before the final release.

Stay tuned for many more to come.

Progress otherwise has been polishing and expanding the game’s existing systems, particularly the seemingly-never-ending work on the game’s item and inventory systems.

As mentioned in my last blog, items with the same ID but different characteristics will form ‘stacks’. This is something I wanted to weasel out of, but eventually admitted to it being a necessity. By allowing items to carry their own characteristics, you open up a huge wealth of interesting possibilities within the game’s economy, but you need to allow the player the agency to select what item with what characteristic they want.

You can do this by either creating a separate item slot entirely, using up the player’s inventory space, or you do it by providing a new menu. While still in development, progress on the latter is coming along nicely, and has been my primary focus this week. In theory, if an item is in a stack, when selecting that item the various versions of that item become available, grouping those with identical characteristics, and those with unique ones.

This will be especially useful for the player to avoid or select higher grade items when trading, or possibly a system where items age the longer they are held in the player’s inventory.

It’s not entirely glamorous, but it’s working. I suspect adding in an option so that the player can skip the middle man and just pick an item regardless of it’s characteristics would be a good quality-of-life inclusion.

Another mechanic I couldn’t face omitting was the inclusion of planters and pots.

It occured to me that I could use the same system as storage items for the player to move small plants in and out of a planter. Larger planters will have additional slots, so you’ll be able to mix and match different plants, or have one bursting with one type of plant.

The trouble came with the practical element. The planter itself a is a ‘prop’, but so too are all the plants in the game. Originally I had intended for the plants in a planter to be purely aesthetic, but this seemed too shallow – it feels wrong that you can only collect roses from those grown in the ground, but not those grown in a planter, for example.

Plant props contain a large amount of data – how old they are, how far into bloom, how healthy they are, and so on. All props are individually registered in one map file – the prop would have to somehow be contained within the other prop for it to work, as the plant and planter don’t exist tangentially to one another, they are intrinsically tied (the plant is in the planter)

Fortunately, since I introduced a way for any prop to save and load any amount of additional data (by essentially appending a dictionary to it), I was able to build onto the code I had so that any changes made to the plant will be superseded and written directly within a single class to the parent prop instead. In essence, props in props.

Currently the code only allows for two levels of props, but there’s no reason it couldn’t be infinite – I just can’t think why I would ever need to.

Follow me on Twitter, or maybe even Mastodon.