Sidetracked - Devlog #6
Hey friends!
Spent the last couple of months working on a few different things, but mostly more Snacktorio! Here's what I've been up to.
[hr][/hr]
[h2]Tutorial Island[/h2]
After finishing up the tutorial levels and the tutorial 'skip' level, I sent them over to Jamie to start testing them all out. While he was doing that I spent some time playing around with a design for the 'overworld' for the tutorial island.

Around this time I realised that actually I needed some sort of shading on the cubes, because the metal blocks blended too much especially when having the higher layers - wasn't as noticeable with the dirt because of the clear visual 'top' with the grass.

This felt a lot more readable even though it was subtle - however it was a pain having to go and edit all the cubes to see how it looked first as this is still just a static image.
That's when I got seduced by a great scope creep idea - what if I rendered all the cubes in-game? That way I could easily change the maps whenever I wanted, but it'd also mean I could animate the individual cubes for transitions or idle stuff...
[hr][/hr]
[h2]Making Life Easier[/h2]
Now I'd thought about the idea I couldn't put it back in the box, and thinking about it practically it also made sense because it'd save me so much time in the long-term to have an easy way to tweak the maps for all the islands. Like even just being like oh actually I want this level one block over would be a nightmare with static images.
To get started I made a hardcoded version of the map, each layer represented by a bunch of different codes that would then translate to the block/path/level to be rendered.

Using that nonsense I could then load in the layers, each 'block' of code being represented by a cube in the isometric view (some cubes just being empty, some being the 'top' of the water etc).
Below you can see all the different 'tiles' that would make up the overworld:

When loaded, with a bit of animation, the above set of codes turned into something like this:

This was already so much better, as I could tweak block positions and change decoration immedietely rather than having to redraw anything - however it was still very messy editing the codes to change things so that also wasn't really something I would be able to do long term.
Instead I then moved everything into Tiled, my beloved.

To replace the functionality I had with the 'codes' system, I actually had to make a lot of layers, because something like 'GG-F1-BL-AB' represented a lot:
- GG: Grass cube
- F1: Trees on top
- BL: a 'bottom-left' corner path
- AB: the cube is between the A and B level for visibility
So to get all the same info in Tiled with just tiles I needed to have a block, decor, path and level layer for each of the overall layers (i.e. layer 1 is water, layer 2 is blocks, layer 3 is higher blocks).
By turning the paths and levels into tiled objects I could add more properties which solved some of the limitations I was already running into as well. For paths for example I needed to have info of what levels they were between and for 3 or more direction paths, some flags for which directions are visible based on the levels unlocked.

With everything in Tiled it was so much easier to tweak things, or work on adding in the next island, so I played with the layout of the tutorial island and then added a rough idea for the tomato island.
I didn't need it perfect as this is just for the new demo so I know things will change once I know all the levels needed for the island, but for now I just need enough space for 3 levels so anything was good enough for now.

[hr][/hr]
[h2]Tomato Island[/h2]
With that setup, it was now easy to make changes to the world and add new levels whereever I wanted - and because of the existing system I made with the 'developer map' last month I could just add levels and they got loaded in automatically if the matching file name existing.
With that I got to work on the first level of Tomato Island. I knew roughly what I wanted for the demo levels and what they needed to introduce or teach you - there's a lot of different concepts in the game but they're staggered over the 3 main islands so we only need to cover a small amount for tomato island in the demo.

The main things I wanted was one to just be a full level, to put what you've learnt into practice in a 'proper' level where you can build anywhere. I then wanted a level to introduce secret ingredients + void manipulators, and then a level to introduce multiple orders/beasts.
For the first level I felt like it'd be good to re-use tomato soup - even though the player just did that in the final tutorial level a lot was already setup for them and they only needed to make 1 soup to finish the level.

This time they'd have to set everything up themselves (apart from some basic fabricators), so having a familiar recipe for the first level felt like it'll help ease players in.
The recipe itself is pretty simple, you harvest tomatos and blend them with mined spice, then add some bayleaf at the end - so pretty minimal process but for the first time you still need to:
- setup harvesters and route both plants into a blender
- setup a fabricator to make fluid pipes and pipe the tomato sauce
- mine the spice and more bayleaf and combine them with the sauce
- route the finished dinner to the beast

I think a lot of early levels will have some pre-existing structures, at least some fabricators because not only does it save you some boilerplate, but also shows you examples of how to do things or lay things out that you can use for the rest of your factories.
[hr][/hr]
By this point Jamie had tested the tutorial levels so I had a few bits to tweak but overall nothing major! The outstanding stuff now is to design and test the tomato island demo levels, and then just a bunch of polish and bug fixes.
I definitely got a bit sidetracked with the overworld idea, but it's ended up not only looking great but just being so much easier for me that it was absolutely worth being a bit behind schedule for.

I've been working on another game on the side, so if progress doesn't seem to be going that fast it's more because you're only seeing me work on Snacktorio at 'half-speed' - however for the next month I'm going to be just working on Snacktorio to whip the new demo into shape so can expect more updates soon!
I also think I might look for some playtesters around September possibly, so keep an ear out in the Discord or here on Stean for that :D
~ Ell
Spent the last couple of months working on a few different things, but mostly more Snacktorio! Here's what I've been up to.
[hr][/hr]
[h2]Tutorial Island[/h2]
After finishing up the tutorial levels and the tutorial 'skip' level, I sent them over to Jamie to start testing them all out. While he was doing that I spent some time playing around with a design for the 'overworld' for the tutorial island.

Around this time I realised that actually I needed some sort of shading on the cubes, because the metal blocks blended too much especially when having the higher layers - wasn't as noticeable with the dirt because of the clear visual 'top' with the grass.

This felt a lot more readable even though it was subtle - however it was a pain having to go and edit all the cubes to see how it looked first as this is still just a static image.
That's when I got seduced by a great scope creep idea - what if I rendered all the cubes in-game? That way I could easily change the maps whenever I wanted, but it'd also mean I could animate the individual cubes for transitions or idle stuff...
[hr][/hr]
[h2]Making Life Easier[/h2]
Now I'd thought about the idea I couldn't put it back in the box, and thinking about it practically it also made sense because it'd save me so much time in the long-term to have an easy way to tweak the maps for all the islands. Like even just being like oh actually I want this level one block over would be a nightmare with static images.
To get started I made a hardcoded version of the map, each layer represented by a bunch of different codes that would then translate to the block/path/level to be rendered.

Using that nonsense I could then load in the layers, each 'block' of code being represented by a cube in the isometric view (some cubes just being empty, some being the 'top' of the water etc).
Below you can see all the different 'tiles' that would make up the overworld:

When loaded, with a bit of animation, the above set of codes turned into something like this:

This was already so much better, as I could tweak block positions and change decoration immedietely rather than having to redraw anything - however it was still very messy editing the codes to change things so that also wasn't really something I would be able to do long term.
Instead I then moved everything into Tiled, my beloved.

To replace the functionality I had with the 'codes' system, I actually had to make a lot of layers, because something like 'GG-F1-BL-AB' represented a lot:
- GG: Grass cube
- F1: Trees on top
- BL: a 'bottom-left' corner path
- AB: the cube is between the A and B level for visibility
So to get all the same info in Tiled with just tiles I needed to have a block, decor, path and level layer for each of the overall layers (i.e. layer 1 is water, layer 2 is blocks, layer 3 is higher blocks).
By turning the paths and levels into tiled objects I could add more properties which solved some of the limitations I was already running into as well. For paths for example I needed to have info of what levels they were between and for 3 or more direction paths, some flags for which directions are visible based on the levels unlocked.

With everything in Tiled it was so much easier to tweak things, or work on adding in the next island, so I played with the layout of the tutorial island and then added a rough idea for the tomato island.
I didn't need it perfect as this is just for the new demo so I know things will change once I know all the levels needed for the island, but for now I just need enough space for 3 levels so anything was good enough for now.

[hr][/hr]
[h2]Tomato Island[/h2]
With that setup, it was now easy to make changes to the world and add new levels whereever I wanted - and because of the existing system I made with the 'developer map' last month I could just add levels and they got loaded in automatically if the matching file name existing.
With that I got to work on the first level of Tomato Island. I knew roughly what I wanted for the demo levels and what they needed to introduce or teach you - there's a lot of different concepts in the game but they're staggered over the 3 main islands so we only need to cover a small amount for tomato island in the demo.

The main things I wanted was one to just be a full level, to put what you've learnt into practice in a 'proper' level where you can build anywhere. I then wanted a level to introduce secret ingredients + void manipulators, and then a level to introduce multiple orders/beasts.
For the first level I felt like it'd be good to re-use tomato soup - even though the player just did that in the final tutorial level a lot was already setup for them and they only needed to make 1 soup to finish the level.

This time they'd have to set everything up themselves (apart from some basic fabricators), so having a familiar recipe for the first level felt like it'll help ease players in.
The recipe itself is pretty simple, you harvest tomatos and blend them with mined spice, then add some bayleaf at the end - so pretty minimal process but for the first time you still need to:
- setup harvesters and route both plants into a blender
- setup a fabricator to make fluid pipes and pipe the tomato sauce
- mine the spice and more bayleaf and combine them with the sauce
- route the finished dinner to the beast

I think a lot of early levels will have some pre-existing structures, at least some fabricators because not only does it save you some boilerplate, but also shows you examples of how to do things or lay things out that you can use for the rest of your factories.
[hr][/hr]
By this point Jamie had tested the tutorial levels so I had a few bits to tweak but overall nothing major! The outstanding stuff now is to design and test the tomato island demo levels, and then just a bunch of polish and bug fixes.
I definitely got a bit sidetracked with the overworld idea, but it's ended up not only looking great but just being so much easier for me that it was absolutely worth being a bit behind schedule for.

I've been working on another game on the side, so if progress doesn't seem to be going that fast it's more because you're only seeing me work on Snacktorio at 'half-speed' - however for the next month I'm going to be just working on Snacktorio to whip the new demo into shape so can expect more updates soon!
I also think I might look for some playtesters around September possibly, so keep an ear out in the Discord or here on Stean for that :D
~ Ell