A pretty good week!
I worked on my Tiny Clock and started making more effects for it! I also did some more work on Sugar!
As you can see, it is now a proper clock, with clock hands and everything! That wasn’t too complicated, although it so happened that my sprite rotating function was broken. So I had to go and try to fix it. It is better now but it’s not completely fixed yet. I’m afraid I might have to take an afternoon at some point and rewrite the whole function because it really is a terrible mess right now.
But while I was on Sugar’s code, I took some time to optimize the fillp() feature, which I’ve been wanting to do for a while.
If you don’t know, ‘fillp()’ is a function I straight-up stole from Pico-8, where it allows you to define a dithering pattern and then draw two colors simultaneously, with that pattern, using the normal drawing functions.
It’s very handy and super interesting and I wanted it in Sugar. But my implementation was… hasty to say the least. Instead of using the bitmask passed as parameter to the function, my system was parsing that bitmask, into an array of booleans, which was then read-from when drawing things.
Why would I do that? All I can say is that I definitely didn’t think it through. Either way, it is now fixed! Now, the bitmask is simply stored and directly read-from for drawing. Which means that calling “fillp()” costs next-to-nothing in performance, and the rest is pretty much the same as it was. Optimization, yay!
And one last thing I did on Sugar before moving on is enhancing the palette png exporter!
I don’t remember telling you about this, I might have, but maybe not. A while ago I figured I’d do a palette cheat-sheet generator, to help myself with all the wonderful palettes on Lospec. Then I figured I might as well make it part of Sugar.
This feature lets you export any palette, from the engine’s selection or defined by you, to a nice PNG with the index for each color, in both hexadecimal and decimal. The generator will calculate which color is the darkest and which is the lightest and use those to draw the text. Plus, you can load that png back into the engine and have the palette in the same order as it was exported, thanks to the top-most line of the png, which contains all the colors in the right order. That should also let you import a palette in Aseprite or any software that lets you import a palette from a png file.
So I did that a few months back, but the way I made it was that it would only make lines of 16 colors, to look more coherent with the hexadecimal notation. The result were very wide PNGs, with just one line of colors when the palette had 16 colors or less, which is to say most of the time. It wasn’t the most practical. Here’s what it looked like:
This week I needed that cheat-sheet feature and so I went and tried to make it a little better. Now, instead of having lines of 16 colors, it takes the total number of colors, calculates the square root of that and rounds it up, and that’s the number of colors on one line of the grid.
The result is nice, compact, square-ish grids. I also put in more space for the name of the palette and changed the print-pattern so that it’s more readable than it used to be. I really like the result!
And with those cheat-sheets, I could go and make some nice effects!
New wallpapers coming to the Patreon next week!
Of course those new effects will also be used in the Tiny Clock! Look at it go!
I’m dying to add Tetris to this little thing, so that’s going to be one of the first things I’ll do on the coming week. The new Tetris game I mentioned last week, Tetris Effect, is apparently a PS4 exclusive. I’m not buying a PS4 for just one game. This is dumb. And a shame. But anyway, I’m trying to get over it but now I can’t get Tetris out of my head, so I have to make one. And I will. Soon. Very soon.
I’m planning to make two versions, one very basic and standalone, called Tiny Tetris Classic, that will be available to 5$+ Patreon supporters next week if all goes correctly, and another one that will be embedded into the Tiny Clock, and will probably get prettier as I keep working on it in the next few weeks!
Something else! I’m taking on a new contract. I’ll let you know a lot more about the project starting next week, but it’s very exciting. It’ll be for a computer game this time, which is great, and I will not be using Unity for it, and it seems I’ll be having a good amount of freedom too. And obviously, it’s paid. They’re also more-than-fine with me releasing devlogs and gifs and things like that. So that means it’ll relieve my savings, while also letting me keep on giving you content. So it’s great!
The job starts next week, I’m taking the coming week to wrap some things up and produce more content, in particular for the Patreon, that I’ll release over the contract’s duration. I can’t express how important the Patreon is to me, you can be sure I won’t forget you while working on this contract.
Speaking of which, here are the names of all my current 3$ patreon supporters! Thank you to them all, and to all the others too!
☆Joseph White, ☆Spaceling, ☆Ryan Malm, rotatetranslate, Anne Le Clech, Giles Graham, Marty Kovach, Zachary Cook, Joel Jorgensen, Andreas Bretteville, Reza Esmaili, Dan Rees-Jones, Meru, Wojciech Rak, Austin East, HERVAN, Tim and Alexandra Swast, Jefff, HJS, Thomas Wright, Bitzawolf, Christian Östman, Dan Lewis, Chris McCluskey, Cole Smith, Jearl, Flo Devaux, slono, Paul Nguyen, berkfrei, Sam Loeschen, amy, Collin Caldwell, Jakub Wasilewski, Andrew Reitano, Qristy Overton, Giovan, Finn Ellis, Brent Werness, Pat LaBine, Sean S. LeBlanc, yunowadidis-musik, Jacel the Thing, Pierre B., vaporstack, Max Cahill, hushcoil, Andrew Reist
The coming week is going to be a little intense. I want to get a bunch of things done before going full-time on the contract. There’s my Tiny Tetris Classic for one thing, but also I want to make a webpage for Sugar, as well as have at least a temporary version of the logo for Sugar. I also want to do my Limitation talk transcription, and make some more wallpapers!
We’ll see how much of all that I manage to make happen!
Have a great week!