Introducing Aranoid

Introducing Aranoid

I’d mentioned before that I’d been working on a game, and here’s some words about the game. Mechanically, it’s a riff on Arkanoid – breakout with powerups – but it’s also a starter project for Godot and some exploration in what that looks like for me personally.

I’d decided pretty early on that I wanted to do something pretty simple (at least conceptually!) to get my feet wet. I have grand ideas of things I can do, bold and daring and ridiculous but they all require a much deeper understanding of how to work the engine than is ideal for a first project, so it really was about getting to know Godot, making mistakes along the way etc.

I’m not quite done with Aranoid as I write this, but I’m almost there. Certainly enough to talk about the important things, and by the time I get to the next post I’ll probably have finished what I’m going to do on the game to be able to wrap up the rest of the things.

Being a breakout clone wasn’t a hard sell, not really, because breakout clones are mechanically easy: you have a bat, a ball and bricks. Any game engine does physics, right?

But it didn’t occur to me until much later in the project to actually go look at OpenGameArt or to properly draw really naff tiles myself. Instead I pitched in with some existing pixel art tiles I already had with a sense of… how do I adapt these?

I give you, Iron Plague, a sweet set of Sinistar tiles from Dan Cook. This is a set of tiles primarily aimed at producing a game that looks like this:

A mockup of a space-based game with a spaceship shooting bullets, small drones blasting at asteroids, and an information panel of various icons, numbers and gauges.

This doesn’t seem conducive to a breakout clone in any way. This shot isn’t.

Other images in the set are more… relevant perhaps. There’s a couple of images in the art set that are backgrounds for a shop:

And this we might be able to do something with. It didn’t take me long to resize this a little to fit 320×180 (so it scales cleanly up to 1920×1080) and expand the slots for items into something a little more non-generic. My notes suggest that I went from the above screenshots to what is basically now the final background in a few evenings of pixelling.

A screenshot of Aseprie showing an early working of the background image in Aranoid, including tabs for all the source images that would be referenced.
A later screenshot of the background image in Aranoid, showing distinct progress from beyond the first step - it looks less like slapped together patchwork and more the intended patchwork look.
A nearly finished background from Aranoid.

And the final board as it is now:

The current background from Aranoid, final background, placeholers for powerups and information displays all present.

The trick for me stitching that background together was to try to avoid it being too busy everywhere, while still capturing enough to not have wide stretches of nothing. But I’m no artist.

At this point I don’t really know what the areas on the right are for as much as setting myself up for something. I know I have room for a score indicator in the bottom corner, maybe the second one will be a high-score display. I also figure that the four bigger slots will be for powerups that have a timer, and the three smaller slots for powerups that you just ‘have’.

But these are questions that can wait, really, before that we have more important questions: the player, the bricks and the ball.

Bricks are easy, I just count up how much space there is between the left and right, see what sort of numbers I get if I divide it by 14 or 15 or there abouts because that feels instinctively (from playing Arkanoid) how big the board must be, in the region of 14 or 15 wide, with bricks 14 or 15 wide in terms of pixels.

After playing with the numbers I end up with having 15 bricks across, each 14 pixels wide with a single pixel gap between them. I have no idea if this is sensible yet but it feels like it could be. It fits nicely into the images I have, so that’s a win.

Next came the player. I had a good long rummage around the images in the image pack to see what might fit. I found this:

A vertical space-age object described in the source files as 'Wave' with red and metallic elements on the left and a glowing edge on the right, accompanied by flame elements that can be assembled for reuse.

This was a nice image enough, and I figured I could so something neat with either the flames or the glowing underside if I rotated it 90 degrees. I imagined the glowing part to be a hover-base or something, and I did initially treat the metal+red side as the top, even going far enough to bring the red up to the same level to make it flat.

Then I realised it was far too massive to be the player. I should perhaps have tried it before I spent any time beyond just rotating it, and while I did experiment with scaling, it inevitably looked horrible.

Back to the image pack, then.

I found this in the image set, referred to as a ‘barrel’, but I realised that the top-middle image would work, it was about the right proportion out of the box horizontally to the bricks, it looked neat, so I ran with it.

A spritesheet showing 16 rotations of a 'space barrel', a semi-circle of metal with a green glow added to the straight edge.

Finding a ball was easy, there’s plenty of bullet archetypes in this image set (because space shooting game), so finding a green ball to conceptually match the bat (it doesn’t have to be the same green, perfect being the enemy of good here) and an early mockup was born.

A mockup of Aranoid with the background, some bricks, the player bat and a ball.

Even at this point I’d already decided I wanted to emulate Arkanoid a little, giving the bricks (and eventually the player and ball) shadows. Nothing clever, it was simply drawn into the sprite as a transparency because this is 2023 and fancy pixel tricks aren’t needed.

Though it was here I’d make the first real mistake, baking the shadows into the images themselves. It wouldn’t occur to me until much later that the ball would have trouble with that…

But also, the player bat was too high in context, so that was a fun journey to cut down with some careful resizing in Aseprite.

Next time: the first baby steps in making Aranoid actually work.


Your Header Sidebar area is currently empty. Hurry up and add some widgets.