carrotcake.studio

official devlog

Keeping a player engaged in a game is like keeping a flame alight. It's one thing to start a fire, and it's another to keep it going, and eventually that flame will burn out.

What exactly turns a game from something you dip a few hours into, be glad you did, and never return, to something the player feels they could play for hundreds hours, is a magic bullet, and one every developer is looking for.

The trouble is that what motivates some players might not motivate others – not everyone can share the same imagination, patience, enthusiasm, and so on – we all bring different amounts of each to everything we engage with.

And I'm feeling confident that The Garden Path provides decent enough medium-to-long term motivations that suit the sort of players that would engage with the game to begin with.

The dilemma I was facing was short-term motivations – what drives the player to perform any individual action. When a player starts a game, what makes them want to start chopping a tree? Perhaps to obtain crafting materials, or maybe to sell resources for an in-game currency?

A friend made a good point – money in games is always a motivator because money tends to be infinite and money is never a bad thing to have. In Animal Crossing, for example, when most players log in to play, they know they can catch a few bugs, fish some fish, and make a bit of money. They don't need to worry about what to spend it on, because they know it'll provide them with utility in the future, and more is always better. I have friends who spend hours figuring out how they can best squeeze the most money out in their games, often without a clue or aspiration what to spend it on.

The trouble, of course, is that The Garden Path has no money. Going out and doing things is all well and good, but you're filling up your inventory with things that might not even have any value to you, depending on which travelers are around. More is not always better, because inventory space is limited and valuable.

In some games, an XP system compliments this even more so, meaning every action you take in the game, you get a sense of earning something. And again, more XP is never bad – you're working toward something, even if you're not sure what it is yet.

The idea I've settled on is more abstract, but I think it suits the world well. It's more rigid than money or experience, but that I think there's a chance that could play to its benefits.

The idea is 'work' flies (name very much pending).

The loops goes as follows:

  1. The player is given a special jar that can catch a certain type of firefly that inhabits the garden. The flies, they are told, feed on the energy the player exudes while in the garden. The player will then need to explore the garden in order to find some fireflies to catch.
  2. Once caught and jarred, the jar sits on the player's belt. Certain actions will charge the jar – chopping trees, pruning flora, planting seeds, catching fish, and so on. After so many actions, the jar will be fully charged, and further actions will not charge the jar.
  3. The jar can then be traded in with any NPC, who all highly value a charged jar of these fireflies. Each jar is either worth one of their services, or one of the items in the their inventory.
  4. The jar now empty, the player will learn that it is in their interest to go out and find more fireflies so that they can charge them.

There is no downside to charging the jar, and it provides a small sense of accomplishment after every action. Unlike money, it has a cap, meaning it needs to be exchanged quickly to obtain it's maximum value – it cannot be horded.

It encourages the player, without forcing them, to perform three important actions – explore their garden, work their garden, and find someone to talk to.

While the system in itself might sound a little bit dull and repetitive, the key here is what the player should experience while charging their jar. By chopping trees, they are not only charging their jar, but will also end up with new resources as a result. When finding an NPC to turn-in the jar to, they may also try their hand at trading these new resources for something else. They may even find themselves accepting an errand from the NPC, or learn about a new star they could unlock, which ought to motivate them further.

I had considered complicating the system, where different fireflies reward different actions – say, red glowing flies only reward the cutting of flora. But I think this system works because it doesn't discriminate, and gives the player the freedom to do what catches their interest. It should quietly guide the existing gameplay, rather than take center stage.

It's a start, and while it might just be enough of a change, it might also fall short.

As always, all we can do is test.

*

Follow me on Twitter, or maybe even Mastodon.

I think the systems are in place now, at least for the most part. I feel as though the right step forward, after reviewing the previous alpha release – is to b-line the game to playable a state as close to the final product as possible.

'Playable' being the key word here. Development time is ultimately a balance between playability, variety, and quality.

The Garden Path's gameplay loop relies on variety to a degree, so I'll need to generate a good, sizeable amount of content to test the game's playability.

Quality, at least right now, matters the least. So while it may be tempting to pour time into a really good looking chair, what's important is that the chair is in the game as an identifiable object, not the artwork itself

Fortunately, since all the the items in the game are created by a single spreadsheet, if an item is on the spreadsheet, it's in the game. That means that over 200 items are already readable by the game and entirely functional, even if the artwork doesn't yet exist.

The artwork that's crucial are props, NPCs, and (to some degree) player equipment. While it doesn't matter how good ferns (as an example) look at this point, it's crucial that they're there in some form. Likewise, all NPCs play an important role in the game, so while they might sell items with no artwork, their presence and function is still felt by the tester.

This means essentially making quick splashes of colour for a concept, and moving on quickly to something else. As a result I've got lots of pretty crazy looking artboards at the moment! I'm sure the time will come when I clean it all up – but its all form over function.

Unfortunately this dampens my plan of sharing hoards of artwork content on social media to help promote the game, as most of this content is maybe 30% complete. In due course things will begin to take shape, but for now I'm a little reluctant to litter people's feeds with half drawn wood burners.

Which is one factor that lead me to consider live-streaming parts of the game's development – half-completed things are more interesting when they're being worked on.

So I did just that! Yesterday for about 2 hours I did my first ever live stream. It went better than expected, exceeding my personal goal of 2 live viewers (since 1 would just be me monitoring the stream). While I knew it wouldn't be as by-the-minute productive as a typical session working on the game, the goal is hopefully get more people interested in the development, and provide an easier place to answer questions.

I'll definitely be streaming again next week. I had a handful of folks tell me that they would have watched live if they had more of a heads up, so I'll likely be tweeting something out in advance from now on as a reminder.

But, if you're interested in live development, do check out my page on Twitch. Don't feel any pressure to make an account or follow if that's not your scene. I want to make an effort to have Twitter and Mastodon as active platforms during the stream so people can contact me there, since I know some may be reluctant to register.

*

Lets just take a look a couple gameplay decisions I've made over the last couple weeks.

The player character, in any game really, always has a funny relationship with the player themselves. Some people want to play themselves, some people want to play anyone but themselves, and in some games it not even questioned that the physicality of the player-character is given to you rigid.

We all love customizing our Legend of Zelda Link, for instance — deciding which armour we like the look of best with what colour dye and so on. We never question why we can't make our Link a woman, or give our Link a beard, perhaps by way of convention, or perhaps because he's a fully formed character with a name and backstory (although, plenty of games do exist where the latter is true and you can still customize the character to your heart's content).

In some games, however, if a certain customization option isn't available when so many others are, it's only natural to feel a little robbed.

I've wondered if I could do a successful balance in The Garden Path, one that's somewhat centred in the 'respect the world' philosophy I've tried to bring to root everything back to. In theory, it should reduce character-creation fatigue and keep the excitement of customization into the gameplay loop, all while still feeling as though the character is (at least in someway) an extension of the player's person. I realize I might just end up displeasing everyone.

I've mentioned before that skin colour is probably the one option I feel uncomfortable taking the option away for. I recall Animal Crossing back-in-the-day had a kind of 'tanning' system where the character would gradually get darker-skinned the more they stand in the sunny weather. That's a can of worms I don't want to open, and lends almost nothing to the player themselves.

Having struggled with an idea for hairstyles, however, it occurred to me I could utilise a similar principle – hair growing over time. The player can have it cut back should they want to, but can't cut their hair 'long' like in so many games.

I like this, because it goes hand in hand with the theme of passing-time that's core to the gameplay, but also with the absence of binary gender options. Long hair is long hair, short hair is short hair – should the player wish to couple that with a more masculine or feminine look, they can do so. I've made an effort to have all the different tiers of hair look appropriate either way.

*

Finally, a few thoughts on tea. As anyone knows tea is going to be a core part of The Garden Path's gameplay and identity, so it's important to me to get it right.

It always irked me that in a game that I want to feel is 'anti-crafting' that tea brewing ultimately a form of crafting.

Instead, I'm in the process of building a system that will feel more akin to Breath of the Wild's cooking than a traditional crafting system. That is, the player should never be punished for what they choose to combine. With the removal of hard-recipes, the player might not be brewing things most efficiently, but it will always be worthwhile.

As such, teas will only be different teas by why of identification, functionally all teas will follow the same rules. Certain ingredients will increase stats, some will multiply particular stats, some ingredients will combo with others. For instance, adding mint to any tea will always increase a character's charm, and sweetening a tea with honeycomb or syrups will multiply any charm benefit already there.

The game's job is to calculate what that tea will be called. It would be boring if everything was just named exactly what's in the tea. So, if certain criteria are met, it will receive its appropriate name – adding ginger and cardamom and other sweet spices will likely result in a Masala Chai, for example.

And this, to my delight, has brought everything full circle. It never felt right requiring tea leaves for a tea. After-all, pouring hot water over a hibiscus isn't a 'true tea', but it is still widely viewed as a tea. Tea itself is a plant that requires a very particular climate and geography, and a long drying and oxidisation process to become what we know as tea.

Tea would begin to consume the game – players would feel compelled to have huge tea farming operations. 'Black' teas, and 'white' teas, and 'green' teas are all the same plant of course, so there would need to be a system in place to oxidize the leaves at different stages in order to give the player choice.

I don't want that. I want a garden that feels abundant with a huge variety of different herbs and spices, each with a similar sense of importance-of-function.

So — tea will not a growable plant (its visually pretty boring, so no great loss), instead dried tea leaves will be a valuable traded resource. A resource that, when brewed with other ingredients, becomes a 'true tea', greatly multiplying the benefits of that tea.

Who is the sole trader of our valuable resource? Our good friend Tabbal the Toad, of course.

And so, finally, his impatience becomes an obstacle worth overcoming.

*

Follow me on Twitter, or maybe even Mastodon.

Development progress on The Garden Path has been steady since our last report. As I close in on finalizing the key highlighted points from testing so far, I've found some time to begin rolling in some new features and content that's been in the oven.

The two most important points have been interaction and performance. As we discussed last week, I've rebuilt the world loading system to allow assets to smoothly load in and load out as the player moves through the map, rather than the hard loading from before that was causing major stuttering.

The game actually now becomes smoother the longer it is played, as assets that have already been loaded into the game's memory can simply be re-used.

This is fine for now, but could be a point of failure as more and more assets get introduced to the game. This is not only because it would take longer for the player to process all the different assets, but also because there may come a point where too many assets are in memory than what's reasonable.

The solution for the former would be simple – elongate the initial loading screen, loading in all the assets before the player begins playing the game. It's a trade-off, some players would prefer to jump into the game as quickly as possible, and suffer a small bit of stutter as they start off. Others might be glad to be a little more patient, and have the heavy-loading out of sight and out of mind. The answer is probably somewhere in the middle. I could ensure the most important and more frequent assets are always preloaded, whereas the more unusual assets are left to load in as they are needed.

The latter? Who knows. I'll just have to keep an eye on memory and cross that bridge should I ever come to it.

*

The interaction system is based on code I wrote a couple years back, and it became clear pretty quickly that it would need to be re-thunk.

For instance, if the player was stood by some flowers with a pair of secateurs, but a tree is technically closer to the player, the game would assume the player wants to interact with the tree, and return no action. This lead to a lot of dead inputs, especially in dense areas with lots of overlap and conflicts between all the different props.

The previous system actually pinged everything that was on the map at the time, reporting which one is closest, which, while not completely impractical, is still overkill. Now the game only pings the props that the player is stood in the area of – if the player happens to be in range of some flowers and a tree, it will ping those. It also pings those props directly, where previously it functioned by emitting a signal to any and all props in the hope one would answer.

The new system also introduces a priority system, where the game can make a guess from what the player has equipped, what they might want to be doing. So, even if a tree is closer, if a player is facing some flowers with secateurs, they likely want to cut the flowers, instead of do nothing to a tree.

*

I spent the last week or so restructuring the map saving system to be more comprehensive. The map data now saves separately to the player data, which makes things more manageable. Map data can get quite large and complicated, so it only makes sense to have it controlled in its own little pocket, away from simple things like 'what hat is the player wearing'. It also means that tinkerers, should they want to, can swap gardens with one another and load in their own player character to that map.

The goal was to have a map that updates itself on-the-fly as the map changes, instead of recording all the changes all at once.

This is for two reasons – the first is so that we get as close to a permanent world as possible. Meaning, if the player makes a mistake, or makes a weighty decision, or gets an unlucky outcome, that's all part of the game, and it shouldn't be circumvented by simply closing the game without saving. The second is to hopefully take the edge off the saving system. By not having to write the entire map each time it should (in theory) keep things running smoothly. All of this goes hand-in-hand to create a game the player can boot into and forget about their save file, and feel more like they're entering a persistent environment.

It seems tiny saves still lag the game out a bit, which I haven't yet been able to solve. It's currently not realistic, unfortunately, to save the map file every time the player makes a cut into a tree, for example. My research has lead me to believe this could just be the nature of the beast, although I wonder how other games manage background saving in they way they do. I imagine I'll either need to save the game during times when it's less obvious (although this could be exploited), or ensure the game is always saved on exit (also exploitable, but less so).

I think it's important not to get too hung up on preventing players who would go out of their way to exploit certain aspects of the game. There's going to be a point of resistance where 'cheating' simply isn't worth the know-how or time for the average player, and that's probably the sweet spot.

*

Fishing and errands will be the two biggest feature introductions in 0.0.3. While errands is somewhat by-the-by, fishing will likely need a very close eye in order to ensure it's a satisfying system that's fun to play.

After all, if you can't kick back and enjoy some fishing, why play at all.

*

Follow me on Twitter, or maybe even Mastodon.

The Garden Path dropped its first alpha release to testers last week, and a second release is being tested today.

The first alpha test went down a treat, and was even more valuable than I could have hoped. Not only did we unearth new strange bugs, but the testing also helped me begin cataloging and prioritizing bugs I was already aware of, but had maybe needed a reminder of.

Indeed, just as important as discovering what didn't work was discovering what did work. It's an incredibly satisfying payoff when, after all the hard work, things go according to plan. Hearing that testers were able to gather nuts and seeds, discovering a traveling NPC, and then make a successful trade with them, was remarkably reassuring.

But we're still early days — things didn't always go off without a hitch.

Generally stability and performance were highlighted as focuses, which was my focus for the week.

One bug, known now as the 'bug of death' crashes the game with no warning. The console leaves a cryptic message that could not be solved with either google or the debug.

The game, despite being a lot smoother than before, still stutters when the player is moving through the world. Some stutter inevitable, and to be expected, but in an ideal world we want things as smooth as possible.

In this second release, the way objects are loaded and unloaded has been entirely rebuilt. Now, rather than each of the many thousands of Spawn Points issuing their own loading commands, a central script now queues and manages all of the loading for them — the Spawn Points simply make the requests.

This way, the engine isn't being bombarded all at once, it's less like holding a glass bottle upside down, and more like pouring it gently. Things don't come out as quick, but we all benefit from it. Each prop in the garden path is very simple, but there's a lot of them. While loading them takes no time at all, things can get a little stuck when they're loaded all at once. This way, should the player enter the loading zone for multiple props at once, they'll still be loaded in a neat order.

I also discovered a trick in Godot of using 'call deferred'. By 'deferring' different functions, they are given less priority, and run during idle frames. This not only seems to reduce the number of complications, as things are only processing when safe, but prevents more stuttering by, again, not overloading the engine.

With those two tricks, it seems as though the bug of death is no more. In fact, for the first time since I can remember, The Garden Path runs with no reported scripting errors in the debugger — masterclass!

Alas, one sacrifice had to made. While Godot can handle thousands of nodes on screen, the dream of having each leaf on each tree rendered individually was proving to be a pipe dream. While it ran fine with ten, maybe even twenty trees on scene, frame rates began dropping hard once the garden got more dense.

It simply wasn't worth it for such a simple effect that's hardly noticeable. And, with the new shader that adds a subtle sway to all foliage in the game, it's difficult to tell the difference.

Now we can have attractive, densely populated forests, at a fraction of the performance loss. Just think, rather than all of those thousands of leaves rendering, we can spend those resources on filling the world with interesting flora and vegetation.

Not to mention, it's infinitely easier to build trees when the artwork is a single sprite. It offers vastly more control over the colour and shape of foliage, and takes much less time now that I'm not placing each individual leaf on the tree (I wish I joking). My seemingly endless attempts of syncing the foliage position to the position of each tree matters no more.

It's shaping up to be a pretty stable little package now, I think. Which, it should be, the game is too simple for things to be falling over.

Most of the bugs are from systems from some years ago when I was still learning code. That stuff's invaluable, it's messy and it hardly works, but it got me to my place of understanding today.

If this test goes all well, the next release will be focused on new content, rather than plugging holes.

That'll be more fun for all parties.

*

Follow me on Twitter, or maybe even Mastodon.

The key words in last week's report were 'if all goes to plan'.

Alas, I wasn't able to get the game to a good place to release to testers last weekend. A few bugs reared their heads with the introduction of much more content. But that's okay! Deadlines like these are designed to motivate, and by that metric it certainly worked.

With four days to totally commit to the project, I made some incredible progress and also learnt a good number of lessons to take with me moving forward. I figured, since I 'failed' to release the alpha last week, I could go over the mistakes and hurdles I faced and how I've since overcome them.

As this was the first time I actually booted a large amount of content into the game, this came with a few surprises. Some were good – my brother has been writing a large amount of dialogue for the game, and I was finally able to load a portion in. It was such a joy to suddenly be able to talk to the characters and experience new dialogue as I would a player playing the game for the first time. It made the characters feel so much more alive, and it really gave me an insight into how the experience would be, playing the game for real.

On Monday evening, at the end of crunch, I encountered a bug that essentially left me to throw my hands up and call it quits. While some characters operated their dialogue perfectly, others would repeat the same line, over and over, no matter what the player did. What really tripped me up here is that all the characters share the same code, so I couldn't figure what the variable was.

I won't bore you with too much minutia, but I had made some glib decisions in my code early on that tripped me up.

As I was testing the game, dialogue files were much smaller, and might have taken a millisecond less time to load in. With the larger files, that extra millisecond meant everything else was flying out of sync. So, while to the naked eye it was loading instantly, that fraction of a second made all the difference — hence why some characters worked better than others, some had larger dialogue data than others.

All it took was a simple line of code, something I previously neglected, that sits and waits for the data to be processed before confirming and continuing.

*

I had felt confident about The Garden Path's performance, having done tests where I would load hundreds of trees in and maintain a steady framerate.

While The Garden Path runs a single, large and seamless map, I had developed a simple system where all trees, flowers, plants and so on, are just co-ordinate data on the map until the player gets close enough.

In testing, however, the player does a whole lot of moving, which I rather sillily hadn't accounted for. Once the map was full of plants, the sheer amount of loading in and loading out as the player triggers the areas to load in, and leaves the areas to load out, for hundreds of plants — the game grinded to an absolute crawl.

This was especially demoralizing, as I had pinned so much of the game on being a large, seamless map, but fortunately there was a solution I landed on that worked a charm.

The big 'aha' moment for me was remembering Godot has something called a ResourceInteractiveLoader. It's primarily there to be used for loading screens, to prevent the game from crashing as it's overloaded from loading in a large game.

I use it for my own loading screens, and I was able to lift the code directly and place into each spawn point for every item.

Essentially, instead of the game demanding something be loaded now, it delegates the loading to the background, dripping in the loaded content as the game has resources to do so. As loading in a flower (for instance) is actually an incredibly low-resource task, the reality is that there's no waiting time at all – it just prevents a hundred flowers, say, being loaded all at the same time, all at top priority.

(Writing this I stumbled on a commit that says this feature will be removed shortly in favour of multithreading. So that'll be on the to-do.)

Couple this with a new system that holds onto already loaded assets so the game isn't unnecessarily loading them twice, and a simple timer that times down should a player leave the zone (preventing it from loading in and out if the player backtracks) and The Garden Path feels smoother than ever to play — a real boost.

Lastly, I've slightly adapted the artwork in the game to be both quicker to produce and easier to read on screen. It's only a minor stylistic change from the big update some months back. It'll be a big time saver in the long run, prioritizing larger and more bold brush strokes over the fine detailing I had used before. So much of the detail was getting lost and even confused once assets were shrunk down into world, so it made sense to double down on the details that really matter. Best yet, none of the old artwork goes to waste, as it only takes a minute or two to adjust the shading to fit into the new scheme.

I had a moment of clarity on Monday as I watched the variety of different veg headed villagers wander around the game, as I thought just how close this was to how I visualized the game in my head 3-4 years ago. It occurred to me the only thing that still didn't feel quite right was the player character.

I decided it was time for a complete rebuild of the player node, which was still using the puppet structure I set out in 2018. Adapting the existing artwork, I've settled on a look for the player that's more mature and proportioned.

It allowed me to rebuild the character from the ground up with everything I've learnt over the last years, resulting in a puppet that's really good to work with. This has allowed me to ditch the old running animation (my first ever animation in Godot) and create a new running animation that I'm very proud of, one that actually feels like you're running through the garden, rather than just gliding.

It's hard to describe without playing it yourself, but moving through the world feels so much more satisfying now.

If I can get something as fundamental as that right, then I'm hopeful the rest will follow.

*

Follow me on Twitter, or maybe even Mastodon.

A quick Thursday Report for today – I've just gotten back from a queue for the supermarket after a mad week of work.

But I knew I couldn't leave this Thursday reportless, as this Easter weekend I'll be using this lockdown as the perfect opportunity to prepare The Garden Path for it's 0.0.1 alpha release! It's going to be a long arduous weekend, but an exciting one too, as if all goes to plan The Garden Path will finally be out of my hands and into the hands of testers.

This first alpha release is going to be pretty barebones, but it's important to get testing things as early as possible to test the core functionality of the gameplay loop. Progression mechanics will not be included, but instead we'll be testing the random generation of new gardens, interaction with a set number of NPCs, curating the garden itself, and saving and loading functionalities.

The testing will be closed to a very small number of volunteers for now, as things will gradually open up as the game becomes more and more polished.

The other big news is that I was granted r/TheGardePath on reddit a few days ago. As it turns out the subreddit was, seemingly, just a spam subreddit used to bait search engines – nothing to spicy. It was handed over to me as-is, and I spent some time this week adding a lick of paint and getting it on-brand.

I'm not anticipating a bustling community to appear from nowhere, but it's important to try out these different platforms and see which ones stick. Perhaps the kind of people that would play The Garden Path hang out on reddit, but also perhaps not.

I'll be posting any and all updates I have to the subreddit, as well as some additional commentary, as reddit is a better fit for larger content drops than microblogging platforms.

I also invite anyone and everyone to post whatever content and discussion points they would like to share, I'll be sure to respond to everything that gets posted.

So, if you have a reddit account, head on over and subscribe if you like the idea of The Garden Path being on your frontpage.

That's it for now! Expect a bigger drop of news next week as things unravel.

Cheers, and have a great Easter!

*

Follow me on Twitter, or maybe Mastodon.

BIG ANNOUNCEMENT! (April Fools)

After much deliberation, and it grating the back of my mind, I'm actually really excited to share that 'The Garden Path' will be renamed 'Le Garden Path'.

I thought I'd take some time to explain my thought process behind the decision. Firstly, this is not because I am French. I am not French, despite my French sounding name. French is a beautiful language, and one that I wish I could speak fluently. Indeed, I could really have chosen any translation of the word 'the' – the language itself is not what is important. More and more so in today's age, we live in an international community and languages do not matter. I'd like to think I could use any language and it would be equally as embraced.

Also, if it truly was because of the French language, I would have renamed the title entirely to 'Le chemin du jardin', but I have not done so. As I am not French, I do not want to pose as though I was French.

And it goes without saying that some could see this move as an cynical attempt to glamourise the title, to give it some kind of higher status or class that it already has. While adding 'Le' to the beginning of everything does give it an air of poetry and whimsy – and, surely, these made the decision that much easier – it is not the reason I have settled on the new name.

No, the reason I have decided to change the name of the game is because my name is Louis. 'Le' and 'Louis' both begin with the letter 'L', and alliteration is a beautiful and powerful thing. It just rolls off the tongue so much better when I say it all at once, which I often do. It pained me each day that I did not decide, from day one, to begin the title with the letter L, and I have finally found a novel and neat way to do just that.

Also, my name has every vowell in it except E, and 'Le' has the letter E in it. Y, of course, is not a real vowell.

Name changes are no small feat, as I'm sure you all appreciate. In this time, I can't help but remember when 'Google' changed their name from 'Yahoo!', and where I was at the time, and how it made me feel. It goes through everyone's minds – 'It won't be the same'. And yet, here we are. Google even has email now. It also has maps.

I'll be spending some time today updating the name throughout the internet, so it may take some time before you see the full change.

I hope you'll join me on this exciting journey, and continue to follow the development of 'Le Garden Path'.

*

Follow me on Twitter, or maybe Mastodon.

Thursday Report: Capture my best side.

It's been a big couple of weeks for The Garden Path. With the deadline of the Godot showreel looming over me, I had a few late nights and lunch-time-break-less days, but ultimately got the footage wrapped up submitted on time (I think, I haven't heard back, but I'm sure they're busy!).

It was a slightly conflicting experience. Since the amount of artwork in the new style was very slim, and being an artwork heavy game, I knew I would need to generate a good chunk of new art. On one hand, it was magic finally seeing all my systems begin actually taking content. I could draw an acorn, for instance, input a few details into a spreadsheet, and voila – it was in the game. I could draw a hat, much the same, and the player would be wearing the hat.

On the other hand, it felt counter intuitive once again making placeholder artwork, when in my head I was moving away from doing so. It's not placeholder, at the end of the day, because it will only be improved to eventually become the final artwork, but a lot of it went in with the mantra – 'it'll only be on screen for a few seconds!'.

I needed a little breather from the game for a few days, but feel as though I've come back to it in a new, even more positive light.

Excited again, I couldn't help but do a bit of branding work, finally updating the itch.io page to better reflect the game as it is now, and reword the description to something less municiple.

I also put in a request to take ownership of /r/TheGardenPath on reddit. For whatever reason (I don't know if you can check these things), the subreddit is currently banned. This obviously had nothing to do with me (I hope) – either the subreddit went unmoderated for too long, or was home to some dodgey content (I suppose 'The Garden Path' could be some kind of 'wake up sheeple' conspiracy theory forum). Either way, it's been sat unused for some time. Apparently these requests take upwards of a month to go through, and apparently they don't send you any kind of heads up if you've been declined, so I may have to settle on a different name. Time shall tell.

The latter part of this week is being spent slowly bringing smaller elements into the new modular UI system. For example, stars, the encyclopedia, or even choosing the quantity of something when trading. Taking a break from artwork to help iron out some of the game's code itself will help streamling the process of introducing new items down the line.

I recruited some of my more mathsy friends to inspect some of my code that allows the game to move between different points in the UI. This code is particularly important when browsing the star map, as stars are not in a strict grid, pushing left, right up or down should feel like it makes sense.

I had some rudimentary code, but it would cause too many hiccups where navigating didn't feel natural – maybe you'd hit up to go to a star clearly above the star you're currently on, but the game is insistent it's to your left. Or, maybe, the game would decide the star a few stars away was the star you wanted.

It took a bit of knowledge about radians and degrees, positive, negative and absolute values, but we got there in the end, and navigating the map feels like a breeze.

Speaking of stars, the beginning of this week was the brunt of actually filling in the database for them. Stars are certain achievements the player unlocks throughout the game. Currently I have 99 stars completed, all with fairly linear, numbers based achievements – grow this many flowers, meet this many villagers, and so on.

Those will form the backbone of the system, but I'm hoping to eventually form some more quirky and unusual star requirements to catch the players off guard. The more the merrier, I'm sure.

Each star has a name of a fictional gardener the relates to the achievement itself.

Will your name be a star? If my database of names speaks truth, probably not. Most of the names I've chosen range from uncommon to deliberately obscure. Most, but not all.

Turns out choosing 100 names that feel as though they suit certain objectives is quite a sink! I sought to include as many cultures and nationalities as possible, both to give the system a colourful, international spirit – as gardening is something enjoyed universally, but also to harbour the sense of placelessness the player's garden has.

It's going to be a challenge filling out the star map, making decisions on how each section branches out and connects with other sections of the map to allow for constellations. Fortunately, constellations in our world tend to leave a lot to the imagination, so I won't need to stretch too far to create the shapes I need.

Constellation count is currently nearing 20, which is a decent number. Most dictate sunrise and sunset times, or the length of certain seasons. More difficult to unlock constellations with allow your garden to be permanently cast in autumn, or night time, for example. Again, some quirkier constellations will surely need to be included, maybe doubling the current number.

I've given myself the next four weeks to get the game into a state that feels playable, then it's testin' and trailer makin'.

*

Follow me on Twitter, or maybe Mastodon.

Thursday Report: The Big Push

Welcome to the first development blog of the new year! A fair bit of time over the last couple months have been spent moving out of my old flat, and redecorating the new office, which accounts for my absence.

I'm all set up now in the new den, and ready for the big push for The Garden Path.

A new deadline is on the horizon: The Godot 2020 Showreel. I can't believe it's already been a year since the last showreel. I've been looking back at the progress that's been made, considering what's worth sharing, and what will garner the most interest in the game — 10-15 seconds isn't a whole lot of time to fill.

With the majority of the game's systems in place, the showreel has been a great motivator to start getting some artwork down and imported into the game. This means villagers, flora, different clothing and furniture, all to showcase what the game is really about.

Somewhat under the hood, I've been preparing all the databases for which items and props will appear in the game, labelling my progress on each ones artwork as I go along. I think I've settled on a good number of different items, that's both realistic to achieve, while also pushing myself to make the game as rich as possible.

A visual update to the Overview menu (hopefully closing in on the final design this time) has opened up some new items for the player to customize their character. A lantern is the latest addition, a simply cosmetic item that the player can pull out and put away at anytime. This helps should be player be playing in the dead of night, if their garden isn't well lit.

Pouches are another small addition. While I was hesitant to have backpacks carry different stats on how much the player can carry (what if a player's favourite backpack is objectively worse, for instance) I figured a simply way to add some progression is with pouches. Two slots allow for gradually increasing the capacity of the player's inventory, while not affecting the visuals of the player character themselves.

While previously a player's trousers were dictated by their 'garb', now they're a separate item to collect and customize.

The final addition are dyes. Combining certain botanicals, the player can unlock different colour combinations to change the look of their character. This comes along with the change that there are no longer dozens of colour variations to collect and clutter, but instead if the player finds a hat they like, they can swap in and out any dye they desire.

For now, the main focus is getting key elements in presentable order for the showreel – these will be equipment, furniture, and villagers.

I've somewhat shied away from showing the vegetable villagers in my screenshots before, and this is only really because I only needed one in order to test – and that was Hubert the apple. No more! I want to make sure that they are the centre of the game's aesthetic, as they should be.

Currently 50 different villagers are planned with names, all with their own unique combination of personality, requirements to grow, and personality types. I've already made a good start on a handful of them, as each of their heads will be individually illustrated.

Along with the showreel, I'll be developing a proper announcement trailer for the game, closer to one minute in length, as well as finally pushing the new look and design for the game to Itch.io to give people a better feeling for the game's updated aesthetic.

It's been full steam and ahead, and no slowing down! I'm feeling burningly close to finally having a playable experience in my hands – with play testing still looming over me.

*

Follow me on Twitter, or maybe Mastodon.

Thursday Report: A World of Difference

Things are starting to really fall into place for 'The Garden Path', as 2019 is drawing to a close.

It finally feels as though the seeds I've been planting this year in development are starting to grow into something that feels like an actual game. That is, moving through the game is beginning to have its own sense of identity.

This is largely down to the introduction of the new music and artwork, that I've been holding off from introducing this year as I focused on the mechanics.

It's been wonderful having so many positive comments about the visual style of the placeholder artwork, and I hope that this new look of the game will be welcomed with the same open arms.

I've learnt a great deal over the last year about my own way of working in illustration, and it's been great finally lending that experience to this project. The game now has it's own colour palette that I am developing alongside the artwork, allow for much better visual consistency. Better use of perspective, as a top down game, is also being stressed, to help make the characters feel as though they are occupying the same space.

The style is admittedly more subdued than the previous art, which makes it slightly less eye-catching initially. But this was a very deliberate choice, as my originally vision for the game was to be a subdued experience. Bright colours and trees make good screenshots, but it's important to make the game easy on the eyes for long periods of play, and readability on screen.

But the tone is important too. Games in the same genre like Stardew Valley, Animal Crossing or even Ooblets, have an almost unapologetically upbeat and colourful tone. This isn't what I want to achieve in The Garden Path – instead I want something that strikes a balance between that sense of comfort and that sense of melancholy.

That isn't to say I want everything to be riddled with doom and gloom. In fact, it's the opposite. I want to invite players in with that sense of fun and colour, but through every action the player should start to feel that perhaps everything isn't awesome, but, crucially, that that's okay. Despite starting the game in Spring, they'll soon encounter the stillness of Winter, with the hope of Spring to come.

I decided to drop a little bit of money during 'Cyber Monday' on some sound libraries for the ambient sounds of the game. I've been sourcing most of my sound effects from freesound.org, which is a terrific source for almost any sound you can think of, and often freely licensed. While I had been using different sound pieces, cut and pasted together, for the ambience of the garden, I felt that I needed more consistency.

When you're using different sounds from different recordings, you get a different sense of space and place. Some microphones have a more intimate sound, other more wide. Some recordings feature more white noise, others less so. By picking up a library from a single recording artist, there's no subtle, nor more jarring differences, to draw the player out of garden.

I found a library that I'm pretty happy with – it's all recorded in the same forest, somewhere in Eastern Europe. There's this kind of slightly sinister vastness to the recordings that I love. It really feels as though you're lost in the middle of nowhere, even though there's some very beautiful birdsong and insect sounds that give it a sense of life. The biggest perk is that each season has its own recordings, which really helps provide that variety as time in garden passes.

I also finally picked up the last instrument library I was hoping to purchase, which gives me access to more realistic sounding mallet percussion — the backbone of the soundtrack for the game during the game's light hours. I've been revisiting my compositions from the last years, and restructuring them to better suit the game.

I found through playing that music with long, drawn out openings were much more appropriate, to bridge the player between experiencing the garden with and without music. Most of the songs have been rewritten to feature very subtle beginnings, that the player might not even notice at first, but gradually reveal themselves.

To carry across the theme, the soundtrack is mostly upbeat, melodic rhythms, but I've undercut them with very broody strings, to help balance the faster pace with a kind of swooping pensiveness.

With animations still missing (waiting for Godot's multi key frame editor) and the soundtrack and assets still limited at this early stage, it's more of a peek into what the game could eventually be.

Still, it's all coming together, and it may only be some months away until we finally get the big picture.

*

Follow me on Twitter, or maybe Mastodon.