Later than intended (I took an impromptu holiday) here’s a quick post about why I love making 3D games (or games with 3D assets at least).
One of my favourite things about working in 3D is that it allows me to monkey around with the camera angle really cheaply. As mentioned in my WIP for Super Critter Kill, that game started life as a different game entirely, and all it took was a camera switch and a fake arm to make it look like a completely different genre using exactly the same assets. I’ve also done it in another old project that I’ll hopefully do a WIP for in the near(ish) future. So it’s only natural that at some point I’d have a play with the camera in STOMP too, and so far I’ve done 3 different things.
The first thing I tried really early on was simply to make the camera more dynamic by making it look-ahead of the player – the faster they’re moving the further it looks ahead.
I rather like this, but I’ve had it disabled ever since because it needs more work (it’s a tad harsh), and needs testing with finished levels to assess whether it affects gameplay negatively. In its current, 2-lines-of-code, implementation it also suffers from a big problem which is if you smack into a wall at speed it instantly slams the camera back to default which is really jarring – so if I keep this it’ll need some easing applied to fix this (which would help smooth it out generally too). Also camera shake values that work well for the fixed camera are pretty brutal with this one.
The next thing I tried was more of an experiment – fixing the camera to the player’s ship so it rotates with them. This causes the world to rotate around the player, with the player’s ship remaining vertical on screen always – like in the (top notch) arcade game Assault (there’s another future WIP subject here). I don’t have any video for this, sadly. I thought this would be unplayable, but actually it wasn’t *that* bad. It was a little strange, and fairly tricky to find “up” so that I could hover, but I could actually play it. The biggest issue was that because the camera was tightly tethered to the ship, and because the ship turns fast and stops turning instantly, and because you’re constantly making adjustments to your heading, the scenery whips around constantly, spinning and stopping in a really harsh fashion. It should be possible to alleviate this with easing again – but I wonder if that might feel a bit woolly. It should be fairly quick to try though, and if it works it may well make it into the game as a bonus.
The last thing I tried – and I’m amazed it took me so long to think of giving it a go – was to make the camera 1st person (okay – it’s strictly 3rd person – but only so you don’t get weird fragments of ship obscuring your vision). This again is really quick to implement – quite literally 2 lines of code. But this time I was right – I thought it would be largely unplayable, and it certainly is. Largely. However it does look kind of cool.
Obviously the turn speed is far too quick for comfort, the lack of awareness of your surroundings is a killer (maybe a rearview mirror would help), and knowing which way gravity is acting is really tricky (it’ll be so much worse when I start switching gravity around later in the game). It also shows up the fact that the scenery is “sliced vertically” and that my skybox has no proper roof on it, but those are minor concerns. However I may still try to find a way to get it in the game. Even if I just throw it in as an easter egg the player can give it a pop with invincibility turned on if they wish.