I released another game!
These two weeks were mostly spent on finishing Apples, but also working on a shader system for Sugarcoat!
It might have seemed like this game was very close to being done two weeks ago. And yet…
I mostly worked three aspects of the game during these two weeks: making the game extra pretty, making the gameplay fun, and making the game loop work. So let’s take a look at each of these aspects!
Since the game is actually finished and released as I write this, here is the final sprite-sheet for the game:
Over the development of this game, I spent a lot of time iterating over these sprites! They’re a little less low-res than what I’m used to make, so it was really interesting for me, and I’m super happy with how they all turned out!
I feel that my graphic style is evolving in a cleaner-yet-still-colorful direction and I’m really happy about this as well. A lot of my older projects have an issue with noisy graphics, and even though I do personally like noisy graphics, I’m glad my graphics evolve into something more elegant.
And besides, I added some noise anyway, with shaders! This actually was one of the focus these two weeks, as I developed an integrated post-processing shader system to Sugarcoat! That system is not yet complete and will only make its way onto the Sugarcoat github during the coming week, so I’ll talk about it only in the next recap!
Still, it had been quite a while since the last time I played with shaders and I forgot how satisfying it is! I kept going back again and again to change small things and see whether the result was better… In the end I’m very happy with the final effect, mixing a led-pixel effect with some kind of glowing RGB separation roughly multiplied into YMC… Good fun!!
You can check out the user-side Sugarcoat code for that shader right there!
On the gameplay side, I had one major beef with the game as it was two weeks ago: it was too straight-forward to play. You simply lured the snakes into the walls and that was that. A lot of the game space was barely used at all.
So I made the snakes a little more clever! Now, they would detect walls and even fellow snakes ahead of them, and they would turn. That little feature is left intentionally rough, so that occasionally a snake will still run into a wall, and snakes still bite into each other even if they try not to.
That made the game less straight-forward, since the snakes were much more hesitant to go near the walls. But it actually made the game less fun!! Because now, the only way to move forward in the game had become very unpredictable and mostly consisted of waiting for the snake to finally make a wrong turn. I needed a different way to kill the snakes.
So after much thought I decided to add a new core gameplay element: bombs! Bombs would appear towards the middle of the game space and they could be triggered by both players and snakes, and they would explode 2 seconds later. And it worked! Suddenly, a whole dimension of timing the bombs right came along the dimension of controlling the movement of the snakes and your apple, and it was really fun! \o/
Besides this, I also worked on the difficulty progression! For this, I created a tiny system which, every level, randomly divides a pool of points into:
- the number of snakes
- the length of the snakes
- the speed of the snakes
This pool of points gets bigger as the levels go past and so the game gets steadily more difficult while also keeping a satisfying amout of randomness.
And so the gameplay was complete and it was time to have the game loop. That was pretty straight-forward! Since it’s a multiplayer game, the server decides whether the player’s are ‘in-game’ dealing with snakes, or ‘in-lobby’, after joining the game or on game-over.
I made a very simple system where everyone can set themselves to ready. If some people are ready but not everyone, a countdown will start from 60, and if everyone is ready, the countdown goes straight down to 10. When it reaches 0, the game starts for everyone.
I also added a settings button which uses Castle’s super new UI panel! It’s still work-in-progress but it already works really well and is very easy to set up! Just below the settings in that panel, I added a short description of the game, the controls, and the credits! (including patreon names!)
And then I added a screenshot button which will let you post a shot of the game onto Castle’s feed. It comes with a pre-made message compiling how far you made it into the game and the names of the other players you’re playing with! That too was pretty easy to set-up!
As I write this, on Wednesday of week 163, Apples is released and playable right there, with Castle!
And I’m really happy with the final result!
That’s it for those two weeks! As I mentioned, I’ve also been working on a shader integration in Sugarcoat but since I’m going to finish that on this new week, I’ll write about it in the next recap!
I want to thank my Patreon supporters for their continued support! You’re the best!
Here are the names of the 3$+ supporters!
★Joseph White, ★Spaceling, rotatetranslate, Anne Le Clech, bbsamurai, HJS, Austin East, Meru, Paul Nguyen, Dan Lewis, Dan Rees-Jones, Reza Esmaili, Joel Jorgensen, Marty Kovach, Flo Devaux, Thomas Wright, HERVAN, berkfrei, Tim and Alexandra Swast, Jearl, Johnathan Roatch, Raphael Gaschignard, Eiyeron, Sam Loeschen, Andrew Reitano, amy, Simon Stålhandske, yunowadidis-musik, slono, Max Cahill, hushcoil, Gruber, Pierre B., Sean S. LeBlanc, Andrew Reist, vaporstack, Jakub Wasilewski
This new week, I already released Apples (and bugfixed it) and now I’m going to finish Sugarcoat’s shader integration, and then figure out what game I’m making next!
Have a great week!