Archive:
I’ve had Sky-Diving on my “this might work” list since the beginning, so I thought I’d give it a go. It’s not refined. It only lasts a minute. And I resisted the urged to nick the graphics from Pilot Wings… But, it is kinda cool for a day’s work.
After playing around, I decided not to have any projectiles that could kill you. It’ll be annoying as hell to miss one of the paint-pickups in this room, because the trek to get back goes through rooms you’ll have rinsed, so it’ll get tedious, quickly.
Ian dropped the last track for the mini-games. Lovely little liquid DnB number, that sync’s remarkably well. Considering I didn’t sequence the level to a BPM at all (or even give it much thought), I’m genuinely surprised at how well it’s worked. I did go in and make sure Space Tom spawns exactly on the beat and now my inner DJ is screaming at me to beat match everything else, but… time….
Repurposed the flip-flop platforms, and made a time-based variant. These were in the first game, so I thought I’d give them a quick revisit. There’s an absolute knack to collecting the Boom Box in here, which I can hear people swearing about already. Lulz.
I’ve been prodded a couple of times to get the localisation strings together, which means settling on a list of achievements, then writing their names and descriptions. I set up the obvious ones – You Died, You Completed Everything, etc. – on the Steam backend, but I really can’t be arsed with these. There’re no fun to make, and even less fun to test. But, on the plus side, it meant I had to add the Steam online subsystem, so now, when you launch the game, the Steam Overlay pops up and it acts like a Real Game.
Wrote the code to sync and unlock achievements, but I’m leaving the testing until tomorrow morning. S’already close to midnight, and I’ll be like a dog with a bone if these don’t work first time…
Eventful day. Decided to pester Sandy White one more time, before making a call on whether to chop up Nu-Antesher or just run with it, and he got back to me! Looks like he’s happy with what I’m doing, we just need to iron out some details. Yus!
The PC I bought to replace the broken Firebat turned up, so I wiped Windows 11 off it, installed Debian, Perforce, my Git repositories, SyncThing, and a few other bits and bobs that I need for work. Not got it backing up, but I think I might buy the 1TB lifetime option off Rsync.net, and send the live code op there, and have my NAS send the archives to Backblaze.
I did manage to grab a couple of hours to work on the achievements. The code to sync to the platform backend sits in the PlayerController
, and that’s all working. I can pull achievements down, write to them, check if they’re already unlocked, and unlock them if they’re not. I also added a bunch of debug code to the CheatManager
, so you can unlock, refresh, and dump the current state to the screen, which should be handy for the QA people.
I am so not looking forward to making the icons for these :(
Hooked up 16 achievements, and added some placeholders for a few more. Just about managed to do it without filthy checks littering the entire code-base, which is an improvement on the first game! I’ll leave it for a while and try and think up some more jokes to squeeze in…
Also added a couple of gimme Boom Box rooms. An Ant Attack sprite:
And because I still feel bad that I never got around to making a Paradroid parody – the entire point of doing Moonbas in the first place – the legendary sprite:
Also spent a couple of hours on the new server and set it up to use Rsync.net, which does exactly what it says on the tin. Why had I never heard of it before?! Absolutely brilliant.
Sat down for a session on the big telly, and the rotating room gimbal locked, again! WTAF?! The only difference this time around was that I was running a shipping build – one with all the debug stuff stripped out, that’ll actually get distributed to players – rather than a development build. I’m going to have to go through the engine code, cos this makes no sense…
I’ve re-ordered the Gilby rooms. It’s hard to predict which order players will hit them, but I think there’re likely to get the duck door in Antesher early, so I’ve made that go to the first Gilby room. After that, it’s more of a lottery, so I’ve had a best guess.
And I’ve stepped through the engine code to see how it’s applying the rotation. There’s one check to see if the delta between the current rotation and the desired rotation is close to zero, and if it is, it skips the rotation. But it’s such a teeny-tiny number; the only way I can see that I’d be hitting that check is if I was running at a crazy framerate, and rotating really really slowly. Which I’m not. To add insult to injury, it’s definitely using quaternions all the way down, so I can’t see what I’m doing that’s wrong. Me confoozed.
I’ve reduced the tick rate of the actor that’s rotating the room (larger DeltaTimes
) and sped up the speed that the room rotates (bigger rotations). Fingers crossed…
Friends:
If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: