Devlog #37 - Loading…

PXL_20201017_042139406.jpg

Meowllo! It’s now pumpkin season. Which means you should go pick up a Trick or Trick Nobu Jr. sticker from the store.

You can give this fat baby pumpkin boy a new home. Sparkly!

Anyways, that aside, we have been working on some detail-oriented things in September. Stuff that you won’t really notice in the game, but if we didn’t do it, you would definitely notice. My favorite kind of work to do 😥

🏃‍♂️ Loading VERY FAST

So, one of our pain points in the past has been the absolute chonker that the Grassy Plains (and to an extent, all the other maps) has been in terms of resources to load. Well, it’s the Plains, right? So there’s a lot of grass, and flowers. And you can collect petals from the flowers, so they need collision. And you can chop the trees, so they need-

You see where I’m going with this, right?

grassyplains foliage.jpg

Anyways, this absolute chonker took about 28 seconds(!!!) to load on our computers, and it would just straight up crash the Nintendo Switch.

So we had to fix it. And fix it we did! With a combination of ✨magic✨ and 🥴headaches🥴 we have solved our conundrum.

Step One: reduce the number of foliage objects that had data in it

A no brainer, right? Less data to load, the speedier it becomes! Except we didn’t want to make the Plains completely bald. Instead of just wiping all the flowers and grass off the face of Snacko Island, we swapped out the foliage in places you couldn’t reach with instanced static meshes. They’re like shadow clones of things, so they don’t take up a lot of resources.

fakefoliage.jpg

This alone reduced the load time of the Grassy Plains from 28 seconds on PC to about 13. So much better, but still not good.

Step Two: bake down the data from the foliage objects when the game is being packaged

The thing that was taking the longest was the first load of a level. Once the code generated the data for the foliage objects, it would go much quicker. So, why not do that process before the game turns into an executable? That’s what we did!

Recursive made this handy Resource Bakery (sounds delicious, but there’s no bread involved, sadly). Every time foliage would be changed in a level, you’d just have to bake in the information. The data tied to each tree and flower then gets rolled up along with the rest of the game. Essentially, it’s almost like we’re pre-loading the game before it gets installed on your system.

This has reduced the total load time of the Grassy Plains to a snappy 3 seconds on our computers, and 6-7 seconds on the Switch!! Congratulations 🎉

Now that we can vomit more foliage everywhere, I’ve taken the liberty to fill up the horizon with more trees and bushes in the farm, and added vistas to the town so you get a sneak peek of the Mushroom Forest and Grassy Plains.

I mean, since you’re walking there from the town, it makes sense to be able to see it, right?

town vista2.jpg

All that optimizing aside, we’ve also been working on other things, like fixing our tutorials to include instructions for controllers, fixing inventory UI bugs because…of controllers. And adding controller support. We’re starting to hate controllers, just a bit. No one said it was going to be this hard?

🎨 Dye-ing to Try

Before I bore you with more…stuff. Here’s something we’ve been working on recently: multiple dye slot support for objects! It gives us the ability to define dye slots and parts on an asset, and apply a separate color for that part. You can have a circus barn set up with clown colors.

With adding Switch to release, it has made our work to-do list very fat. But it’s OK! Just knowing it isn’t crashing every other minute on the console is giving me a lot of happiness. We can’t wait for you to play Snacko! But first, finish the game…

Alright, well back to work. See you next month!

Extra thank you to our Patrons and Ko-fi supporters! Without you, Snacko development would look very different. We appreciate every one of you 🐾

Patrons.jpg
enralis

I make cat game with husband

Previous
Previous

Devlog #38 - Frozen in Time

Next
Next

Devlog #36 - Mushrooms…