Background collisions, SFX and TURBO!

Well, today went really well, I fixed up my collision routines with the scrolling background, yup, it was using a simple offset, with a case for looping every 32 row increments, seems to work well. Possibly un-optimised but good enough so far.

There’s some rudimentary noises from both cars on screen based on their speed and distance from each other, also collision noises are in there now.

The fuel-o-meter has turned into a working turbo bar to help catch-up or overtake other racers. It’s getting there, but I’m down to 4kb of ROM remaining now and the racer A.I. needs improving on the sly. I’d like to get some BGM in there also somehow.

CPU Usage is getting pretty high now though, so I may need to inestigate into other ways to load my level up. Setting colours for each tile through a switch is probably slower than referencing another variable directly I imagine but, well, a balance needs to be struck.

Tomorrow I’ll most likely be sorting out the code into banks to save space and going from there with more advanced A.I. (Not simple homing, falling of the track A.I.) those cars need to fall foul to going off track also and that’s going to be inetresting to set-up correctly!

Screenshot tonight is from the gameboy classic mode where, yes. Identical cars. I’m not too fussed about that. I am fussed about adding some steering animation though!

Getting There

Background collisions and more visual debugging #1GAM

BKG Layer Collision in GBDKYay! Turns out it wasn’t too tough to get the collision working there, man, does visual feedback help out a shit ton with coding, I’m loving all the features in BGB, A really great Gameboy Emulator, they really help me out here.

So yeah, hopefully, that GIF will animate and you’ll see the friction applied to the car when it goes off-track. Simple stuff but hey, it’s working well and fairly quickly (I’ve got around 90% of CPU left per frame when the debugging is removed and roughly 70% with debug info being output every frame (not optimal, I know)

I’m going to need some animation frame for the car at some point, so it can at least have some appearance of turning, maybe 2 frames of animation. I can get away with only 8 tiles for that with sprite flipping, which is going to prove to be a great bonus when I get around to sparks and explosions further along the month!

Soo, yeah, next up animation frames and making other collision objects stop the car / explode it into tiny pieces, ohh rahh!

Before I sign off on this update, I should note some other systems I’ll put in ,obvoius control schemes for controlling using A and B for gas and brakes, with the D-Pad for steering, pressing up could use some sorta Turbo maybe. That would be pretty cool to figure out.

There’s still Scrolling, Music, SFX and maybe some rudimentary homing A.I. to add here, but I think the code loops should be tight enough to keep the gameboys 60fps with some cunning compression, I could make some super long levels also.

#1GAM Racing game on the Gameboy – Day 3

A few more developments on the racing game were begun tonight and a change of focus seemed to serve me well for once.

I was having a few issues with the background layer scrolling new tile row correctly last night and they were still occurring today so I just commented out the scrolling code for the moment and instead started on some quick sprites and getting some debug info to help me determine which tiles the car is colliding with currently, all whilst keeping variable usage down (so yeah, I’m reusing variables inside loops more now, yay RAM efficiency!)

Nothing too tough tonight but it’s good to have some more data and in-game debugging more of a possibility!

I’ll probably use the white lines as restore points should you explode off-track. They’ll need regular spacing, but that shouldn’t be too tough to sort out tomorrow perhaps? Updated screeny below, with sprites and X ‘n’ Y coordinates in the window (first 3 characters per line).

Racing game sprites and in-game debugging