carrotcake Blog 🍃

official devlog for carrotcake written by Louis Durrant

Thursday Report: Quality Of

Posted on Mar 18, 2021

It’s been a short while since our last report, but it’s certainly been one of the busiest and most productive months the game has seen.

Let’s begin with a small semi-announcement on the game’s release. While never concrete, there’s been some recent developments that have likely meant the game’s official release might be pushed back – hopefully no more than six months. I can’t express how much I value those who have been with me the whole way, anticipating the game for the last three years, and it’s disheartening to know the wait will likely be that much longer.

I can’t say much more right now, but what I will say is that these developments will (should they go ahead), without question, result in The Garden Path being a better game for it.

There will be more information on this in about a month’s time.

In somewhat-related news, The Garden Path is slowly easing back into testing — let’s go through just some of the things I’ve been working on since the last report.

I’m generally happy with the performance of The Garden Path – there’s a number of now quite sophisticated (at least by my standards) series of systems that help define the game’s large map, especially compared to a year ago when the game stuttered and dragged. Now it maintains a clean 60fps on my mid range 2017 system, only dropping some frames here and there when moving, which are mostly disk-read related.

It occurred to me that when there’s a great deal of repeating assets throughout the game that it was a waste of resources loading everything in and out as the player moves through the map.

I realized that I could instead swap items that were out of sight into the place of a prop about to come into sight, if they were the same prop, and quickly adjust its settings to match the nuisances of the new prop.

This essentially works by having each prop declare themselves available to be swapped before unloading. They then wait 5 seconds, and if another prop matches with the prop unloading before those five seconds, the old prop will be transferred over – no loading or unloading.

The result is a far smoother experience moving through the world with much less noticeable frame drops, as a great deal of loading is skipped as things just rearrange themselves seamlessly. Not all of the props are swapping out, but a good deal of them are.

I’ve ran into a problem however where memory usage creeps up and up and up while playing the game this way. It’s frustrating because I can’t quite pin down the exact cause. It’s surely because certain props that should unload aren’t unloading, but where exactly that hiccup is in my code I can’t quite figure out.

The game is still smooth without it, certainly playable, but it’s a noticeable improvement I’m hoping will make it officially into the game soon.

My primary focus at the moment is the experience of returning to the game, as well as focusing the player toward goals and immediate gameplay targets.

Looking forward to the next day, or returning to the next day excited to see what the game has in store is an absolutely integral feeling that I want to capture in The Garden Path.

I currently have the bulletin board that the character will be able to go up to and interact with to see the latest news in the garden. This is okay, but the map is fairly large and it can take time to reach if the player is far away enough — they may even forget about it entirely.

As such something the presents itself at the start of a new day would likely be more appropriate. At the same time though, I’m eager for the game to feel as snappy and as quick to jump into as possible, and any hoop I add to the return experience should be taken seriously.

Animal Crossing has Isabelle report to you every time you return to the game on a new day, but it’s a long cumbersome dialogue tree where 90% of the time she reports that there’s nothing to report. It’s possible this screens a longer load time, but I would rather at least have the option to divert my attention elsewhere.

My plan then is to have a short 2-3 second animation of a dove delivering a telegram to the player on daybreak or new-day-load. The ’telegram’ provides the same information as the bulletin board – which NPCs have declared their presence for the day, the weather, events, and so on.

Does this render the bulletin board useless? Maybe.

The bulletin board has other purposes, so it makes sense not to ditch it, but having it’s primary focus be rendered useless should probably be designed around.

I might have it so the message can only be read the once. It could be that the message is a shortened version suggesting the player see the board for more details.

Hopefully I’ll land on something soon.

I also had the idea of a ‘morning brew’ system, whereby you could set aside a cup of tea the day or days before, and upon a new day you can drink the tea with increased effects.

Just an idea at this stage, but I like that it encourages some forward planning, and sets the player up for the next day, rewarding them for doing so.

I can’t think of an elegant way for the player to submit that item into the system, so it’ll be a little longer before I plan it out concretely.

I’ve introduced a few small features that help aid player knowledge.

The trowel and shovel now have an X to mark the player’s aim. The X also hides itself if the player isn’t able to dig. Before it was a little hard to determine where the hole was going to go, especially from different angles.

Previously trees only had their foliage go transparent when a player or NPCs moved behind them, but now the trunk fades out too – this makes moving around the 2D world a vast deal easier, when trunks were the main visual obstruction.

A new errand tracker appears on the right side of the screen, just as it might do in an RPG, providing a handy reference on how far along you are on each errand. This also works with stars, allowing you select a number of stars to include on the tracker to track your progress to unlocking them. I’ll likely allow this to be turned off for those who want a cleaner look to the game – the same information is available in the overview menu.

The focus aim system, which allows you to use a crosshair to better select a prop in the world, now also returns useful information of the prop highlighted by the prop returning a package of information to the aimer. Still in early stages, but this could display all kinds of otherwise hidden information to the player, perhaps most usefully it’s age, name, and how long until it grows into its next phase.

I want the game to feel like it’s not deliberately making things hard for the player, and every little helps to smooth out the gameplay experience.

I’ve begun more concretely entering the data for each item that will appear in the game. It’s a gruelling task, especially with 250+ items already in the game and many, many more to come. I imagine the kind of task that’s easier to do as you go along than in one big lump.

All the different items have an array of different information they need to hold. The trading system relies on a hidden inherent value, for instance, and every single herb and spice needs to carry it’s own effects for when brewed into tea, and every piece of equipment needs it’s own stats and description.

Once a good body of items are in the game and the return-to-game experience is ironed out, I reckon I’ll be ready to starting labelled the game as ‘beta’.

Until then…

Follow me on Twitter, or maybe even Mastodon.