So, Ludum Dare just ended, and as always, I made a Rude Bear game.
The big change here is that I had an artist, and I got a couple of musicians on Reddit to help out with the soundtrack.
Now, when the theme was announced (Beneath The Surface), I really couldn’t think of any really interesting mechanic based on the theme itself, it seemed like more of a setting than a mechanic-y theme, and I was wasting time, so I just settled for an idea I’ve wanted to make for ages now: Rude Bear Revengeance.
Every Rude Bear Ludum Dare game has a suffix beginning with R (Rising, Radio, Resurrection) so I’ve always wanted to make Revengeance, Revelations, Red and Requiem. This time I picked Revengeance. I’ve never played Metal Gear Rising, but from the trailers I gleamed you go around cutting things up with a sword, so I decided to do that, but attach it to a grapple hook whip.
You can fire it out and retract yourself to it like a hookshot. Likewise, you can retract it to you, which allows you to kill enemies with weak points. This meant I could make a more diverse set of enemies, with different weakpoints with minimal effort just by adding colliders on the backside of them etc, so really the only time restrictions there were on art, and also keeping things fresh:
Next I wanted more ways to make you feel like a badass, and my friend SonnyBone and I were doing an optional theme we randomly decided on the day, “Do Flips”, so I added some wall running. I didn’t really have time to make it feel nice to hop from one wall to another, which was a feature I really wanted. I used to play a lot of GunZ: The Duel, and I guess this was partially inspired by that – I always loved the wall running.
And, of course, what cyborg warrior is complete without a divekick? Here you can see the screenshake quite clearly. I wrote a class called Vlambeer.cs that allows static screenshake functions from anywhere after seeing the absolutely fantastic Art of Screenshake talk by Jan of Vlambeer. Screenshake’s something I’ve used slightly before for Claire’s Voyage, but never so gratuitously.
Then I found something inadvertantly lovely I call “chandeliering”. If you grapple to the ceiling and dive kick at the same time,you become a pendulum of death. I was really keen not to use a GUI so I made a health decal round the side of the screen that glows red when you’re close to death, basically Call of Duty. In Rude Bear Resurrection I had a similar view on GUI and it worked really well. Not only is making a rescalable GUI a bit of a pain, but it means more graphics, and in such a short space of time it’d be hard to get it to look right. Likewise, on the endboss’s third form, I added an aura to indicate HP. That’s something I did in Resurrection too, but this time the HP was more discrete, so it’s more obvious.
Then, of course, what would a Rude Bear game be without a gratuitous endboss? Here you can also see at the beginning, the hopping in midair. There’s actually infinite jumps in this game. The game’s designed around restricting your path by difficult combat, not blocking off your exits like traditional platformers. You can go anywhere you can see – there are no restrictions. I really wanted to give ultimate control of your character so you could feel like a god in combat.
If you’re familiar with the Rude Bear series you’ll notice there’s a new art style, that’s thanks to my new artist Dan. One change with this as well is.. in the first four games, I’d just give a vague description, “Please can I have a flying enemy?”, whereas the dynamic with Dan is sometimes more like.. I provide crude MS paint drawings to him and he comes up with something based off that.
The whip physics don’t work as nicely as I’d like them to. Once you’re skilled with them they’re quite nice, but at the beginning they feel a bit difficult, at least to me. That’s because it’s actually made up of lots of little objects which are quite massive, so you can’t really swing much (or if I made them so light that you could swing, they wouldn’t hold you up). Really, I should’ve done the spring physics better, or hand coded it instead of using Unity’s stuff. I also sat and did a bit of maths and derived a few new formulae that I now use for slerping, so things feel a lot nicer.
This time as well, I made my own tile placing system after I discovered you could code things to run in the editor, so building the world was RIDICULOUSLY quick, and nicer. I wrote a script as well that applies all the colliders at runtime and groups platforms together. Here’s something I took at the end of the second day of the world, although in Day 3 the world multiplied by about 1.5x in size, and the boss got implemented, plus easter eggs:
Also, this time we used normal mapping too, auto generated by CrazyBump, which made it ridiculously quick to make lovely normal maps.
I spent most of the first day an the elevator scene too, scripted events take me too long because they’re less mathsy. There’s a tonne of randomised dialogue though, so it makes it a unique experience at least. One of the musicians made me some elevator music that’s reminiscent of Spacestation Silicon Valley, and I loved the idea of horrible atrocities going on off screen while it plays funky upbeat elevator tunes and you have a mundane conversation.
Anyway, things I learnt:
- I need an SFX guy next time so I don’t spend half the jam making sounds.
- Use Quads, don’t use Unity’s built in sprites. That draw call count is awful.
- Spend maybe more time on the core game mechanic next time and less time making levels. Just better time management.
- And don’t waste half your time. I really wasted tonnes of time this jam just doing nothing.
- This.. drinking 10 litres of Diet Coke routine you’ve got going on actually looks like it isn’t so good for your health anymore, if you’re going to do this every 4 months, you probably just.. shouldn’t.
- See if you can get controller controls in in time next time.
- Also, the tutorial section could be a bit better, and a better ending.
But overall, I’m rather happy with how this one went. I achieved what I set out to make, and implemented everything I wanted.
You can play it etc. here:
Originally posted at my dev blog.