Game Dev Diary: Run Baby Run v0.03

No, not the Sheryl Crow song.

Now let me just point out a few things here before I begin:

  • Yes, it has been a long time since I did any game dev stuff
  • No, I have no idea if I’ll finish this
  • Run Baby Run is the best game ever

When I was doing Asset Reuse Invaders, the level table I developed for the invaders made me wonder if I could use the same thing to create a level map for a maze. Then I thought, what if I used the levels from Run Baby Run? Then I thought: what if I remade Run Baby Run?

Then 12 year old me’s brain exploded.

I looked into it a bit further, and found that the levels on the Spectrum original were 32 “tiles” wide, and 22 tiles high. On the Spectrum, each tile is 8×8 pixels, but if I use 4×4 tiles, then 32 tiles fit exactly into the 128 pixel wide PICO-8 display.

I had to do it. Or at least try. The normal mapping method used by PICO-8 relies on 8×8 pixel tiles, so I had to create my own – reusing what I’d learned from the level table structure of my invaders game.

Yes, there’s a way of compressing this or something, but I’m not short on space (yet) and it makes it easier to see in the code. I don’t know why I’ve done level 2 (Huddersfield Foundry) first, but it doesn’t matter.

The code to turn this into an image on the screen is:

And so, this (from the Spectrum):

Magically becomes this, on PICO-8:

Not bad, eh?

That was my first job. My second task was making the car rotate correctly. I managed that successfully, complicated slightly by creating the car out of two 4×4 pixel sprites rather than one single sprite. There’s a reason for this, which I can’t quite remember now, but has something to do with collisions. Then I ran into issues with collisions, so the rotation code needs to be partially re-written. Regardez:

It’s too fast, obviously, but the big issue is that although head-on collisions with the walls is correctly identified, turning left and right into them is not. I’ve identified this is down to the order in which the rotation and the collision detection take place, but to change it means the rotation code needs re-writing.

Game Dev Diary: Snakes When They Meet v0.99

Why did it have to be snakes?

Over the last week I’ve been writing a very basic game for the Fantasy Console Game Jam over on itch.io. The theme was “Union”, and I decided to write a “snake” type game where you control two snakes, and have to join them up by reaching the goal at the same time.

The twist is that you control both snakes at the same time, with the same controls, only one is a mirror. When you press up, one snake goes up and the other goes down, and so on.

You’ll see that this is v0.99. It’s playable, but there only four levels. I realised that the task involved with coming up with levels – interesting levels, that aren’t just all one-go simple or virtually impossible – is massive. I spent as long designing two of the four levels as I did writing the entire game “engine”, so there was no way I’d manage a complete set of levels in the allowed time.

I could easily add more levels, and I’ve ideas for other things to do as well, such as different start locations, wrap-around levels, or rotated controls (so when you press up, one snake goes up but the other goes left, for example), but my aim was to create a playable concept and I’ve done that.

It’s not going to set the game jam alight, and certainly looks way less professional than the other submissions, but I think there’s something here, at least. Importantly, I’ve learned a few new techniques that might be useful for something else.

If you want to play it, it’s on itch.io:

Game Dev Diary: Asset Reuse Invaders v1.00 – Release!

I Made A Game With Cats In It.

And that’s it! Asset Reuse Invaders is complete!

You can see the final version, play the final version, and – if you’re a bit flush – pay for the final version, over at itch.io:

Why you’d pay for it, I don’t know. But please at least play it and let me know what you think. There’s a cheat mode if you’re finding it too hard, but you’ll have to find it yourself (hint: it’s in the code).

And it is hard. Too hard for me, anyway.

Also, there may be bugs. I couldn’t find any, but, meh. Let me know if you spot any. Also let me know your high scores! Mine’s about 500.

Game Dev Diary: Asset Reuse Invaders v0.15

Sounds amazing

I’ve implemented a few major changes since my last update on this. First up, is the new ufocat – it flies left or right across the top of the screen, and awards the player with 25 shiny points should it be shot.

Once I’d programmed that in, though, I realised how badly it needed the ewewewewewewew noise too, so set about creating some sound effects. Blips and bloops and CRSSSHSHHSes. You might want to turn your speakers off.

As an aside, and just to show process and stuff, here’s my spritesheet:

Like all good games, you’ll notice some unused sprites.

Things still to do include some sort of pause when the player dies, and perhaps tweak the difficulty a bit because can I get past level 5? Can I hell. And it’s my bloody game.

Can you beat level 5?

Continue reading “Game Dev Diary: Asset Reuse Invaders v0.15”

Game Dev Diary: Asset Reuse Invaders v0.11

Wrong on so many Levels.

Exciting things have happened! I figured out how to make tables inside tables inside tables, and having made use of it like this:

I was able to create 20 different levels, with different layouts. I had to modify my invader creation routine:

See that #levels[level][row][col] notation? That’s the clever bit I was trying to get my head round. Very pleased with this.

In addition, I’ve modified the player sprite, changed the title and Game Over screen, and implemented three different cats that fire at different rates and speeds.

The upshot of all this, is I have what could be considered a finished game. There’s still no sound, of course, and there’s some tidying up to do with things. And I haven’t done the UFO either. But, it’s nearly there and – bugs notwithstanding – fully playable!

Continue reading “Game Dev Diary: Asset Reuse Invaders v0.11”

Game Dev Diary: Asset Reuse Invaders v0.07

Catvaders.

I’ve done some more! There’s almost a game to play! Catsssss!

There’s still a fair amount to be done here, but aside from not dealing with what happens when the catvaders reach the bottom of the screen, it’s actually playable.

I’ve implemented levels, with a bonus score for completing each one. Also, every consecutive level increases the frequency of catvader fire.

You’ll also notice I’ve some “shield” bases too, which can be destroyed by both friendly and enemy fire. Speaking of fire, catvaders have some now. Player “bullets” are also smaller than before, and look a bit better as a result.

Things still left to do:

  1. Sort the catvaders at the bottom issue.
  2. Speed up player bullets.
  3. Speed up catvaders as their number decreases.
  4. Implement some sort of flying saucer.
  5. Sound.
  6. Music.
  7. Make a proper title screen.
  8. Make a proper game over screen.
  9. Make a proper player sprite.

Anyhoo, have a go at the latest “build” below:

Continue reading “Game Dev Diary: Asset Reuse Invaders v0.07”

Game Dev Diary: Asset Reuse Invaders v0.03

Pew pew. And mew mew.

Yes, you are right: I haven’t done any gamedev stuff in ages. So here’s something I’ve prodded at recently but have had in my head for a while – a totally unnecessary Space Invaders clone.

I thought it would be good to figure out how to write one, with all the fun routines for updating all the invaders at once, having multiple bullets, and so on. It’s a bit easier to work on a “how” when you already know where you’re ending up!

To speed things along, I’m reusing the assets from my “Cat. And Sometimes, Dogs” game from a few months ago. If you need some rationale for this besides laziness, pretend it’s a sequel or something.

So far, I’ve managed to make the invaders (cats) march towards the bottom of the screen and also fire up to three shots at any one time. There’s a lot left to do, but it’s amazing how much code I could reuse from other projects. I suppose that’s a thing with gamedev though, isn’t it.

Here’s when I made a bit of a mistake:

Oops.

See if you can tell what went wrong there. If you want to have a play on a more working version, with no collision detection, then see below!

Cats. And Sometimes, Dogs

It’s raining cats. And sometimes, dogs.

How exciting! I managed to get my “My First Game Jam” jam game entry game jam game completed! Jam. Game.

Not only did I finish the game logic, but I also had time to add a title screen, a game over screen (complete with stats), and some sound effects. And! Some music! Now, I can’t take credit for composing the music (that was Grieg), but I did have to learn how to translate sheet music into PICO-8 music and then sequence it all and stuff. I’m a musician now, as well as a game developer. Wow!

But you don’t want to hear about all that. No, you want to actually play my damn cat-dog game, right?

There you go. Just click in it – it’s the actual game! If you have PICO-8, you can download this PNG below, which is also the actual game, and load that into it. Or just search for it using Splore.

cats and sometimes dogs

My hiscore is 58, by the way. You get an extra life every 50 points, and it gets harder every 20 points.