Weeks 154-155: Sugarcoat and A MAZE

Two very dense weeks!

I started making a lua library, to work as a bridge between the SUGAR API and Castle and/or Love2D!

This library, Sugarcoat, mimics SUGAR’s behavior (to a certain extent) so that you can make chunky low-resolution games with it! And since SUGAR itself is much inspired by Pico-8, I think this library should also help bridge the gap between making games with Pico-8 and making games with Castle and Love2D!


And Sugarcoat is already live and fully useable! (although the documentation is still coming – this week hopefully)

It took me a week and a half to get it all working. This library is very much the child of the systems I had made for Blast Flock two years ago and of SUGAR itself. I’ve been looking at the code of both repeatedly, for each subsystem, and figured out the best way to re-implement things using Love2D.

This library also features a shiny new palette system (internally) which should be much more efficient and clever than what was doing the job in my previous Castle games!

This new system uses a set of 3 shaders written with love, for:

  • converting a color image to a fake-ish indexed color image
  • drawing in indexed color image to another indexed color image
  • and converting an indexed color image back into a regular color image

So what do I mean by fake-ish indexed color image? I mean that any pixel of a such image will have the following format:

{ r = (i % 10) / 10,
  g = (flr(i / 10) % 10) / 10,
  b = (flr(i / 100) % 10) / 10 }

-- so that
i = r * 10 + g * 100 + b * 1000

And the shaders simply do the conversions to, from, and between those, also applying palette swaps.

This is something I’ve had in my head for maybe two months and I’m super happy to have finally coded it in and to see that it works!!

All in all, every subsystem of this library feels like a cleaner iteration of what I was working with previously, so that’s great!

You can already download and use Sugarcoat over there! Small fixes and additions might get made soon but it should be stable enough as it is currently. The documentation will come shortly.


And then the second week I went to A Maze in Berlin! And had a lovely time there!

It was very refreshing to see an event with almost exclusively weird and crazy indie games! People were super nice! The talks were very interesting! The music was nice! And there was some delicious food to be found around the venue which is always a plus!

I played a sort of semi-improvised role-playing game called ‘Brexit’ with a bunch of other people, about a kickstarter gone extremely wrong, and it was super fun!

I met my absolute hero Jan Willem Nijman!

Thorsten S. Wiedemann, the director of the festival, did a speech at the award ceremony with a VERY memorable line: “We are the punks of the digital age.”

So yeah, that was great, and exhausting, but great!


As usual, I want to thank my Patreon supporters! I really wouldn’t be leading the same life if it wasn’t for you! So thank you!!! Here are the names of all the 3$+ supporters!

★Joseph White, ★Spaceling, rotatetranslate, Anne Le Clech, bbsamurai, HJS, slono, Austin East, Jefff, Meru, Bitzawolf, Paul Nguyen, Dan Lewis, Dan Rees-Jones, Reza Esmaili, Andreas Bretteville, Joel Jorgensen, Marty Kovach, Flo Devaux, Cole Smith, Thomas Wright, HERVAN, berkfrei, Tim and Alexandra Swast, Jearl, Johnathan Roatch, Raphael Gaschignard, Eiyeron, Sam Loeschen, Andrew Reitano, amy, yunowadidis-musik, Max Cahill, hushcoil, Jacel the Thing, Gruber, Pierre B., Sean S. LeBlanc, Andrew Reist, vaporstack, Jakub Wasilewski


This week I’m finishing Sugarcoat, documenting it, and making an example game with it!

Have a great week!

Take care!


2 thoughts on “Weeks 154-155: Sugarcoat and A MAZE

Add yours

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: