So, Ludum Dare finished this weekend, and I entered for the third time with Rude Bear Radio. My first couple of entries were pretty hit and miss. The original, Rude Bear was appreciated for its graphical style, but wasn't great on gameplay. Then my housemate and I decided that from then on we would always use Rude Bear as the character in our Ludum Dare entry.
So LD26 came around and we made Rude Bear Rising. It was a bit over ambitious (I quickly threw together my own physics engine inside Unity that would be able to detect collisions from any object shape so we could put it any textures we wanted. It worked, but it also meant you could gradually sink into the floor).
I didn't post updates mid development this time, because I didn't want to mess up like the previous time, when I left in a game ruining bug. I'm glad I did that, because I think it turned out great. I really decided to drop myself in the deep end this time, so I went far out of my comfort zone.
Rude Bear Radio is a Wario Ware esque game, with 8 different games in it, which amount to 44 different levels of varying difficulty, and a bonus round.
You start off with this dancing radio. It broadcasts your score, the next level the objective. In the background it plays the backbeat that always runs. As it runs through its different radio stations, a sleeping Rude Bear falls into many dreams of different worlds.
Also, you can see Practice Mode is here (which has a little nod to Mega Man 2 in it). That allows instant access to all levels in the game. I knew noone would get to those levels otherwise, because this game is hard. One problem I frequently have is that I spend so long playing my games, they stop being at all hard to me, so my view of easy mode is skewed. The first game I developed was Rudery Beards.
Now, this was the first time I ever used Unity's built in physics. Before, I wrote everything myself. And I was impressed. I'll definitely use it in future. It has less scope than the things I wrote, but was incredibly more accurate. Development of this just involved tweaking materials etc. apart from one major thing. Unity has no detection of piling, crushing, squashing on an object, so I had to figure out how to do that, and I achieved it by checking masses of colliders and normals of all collisions that are touching. Likewise, I made the soundtrack for each game as I made them, exporting in 96, 144 and 192bpm for the three difficulties. Next up was Rude Bear Red.
If I had to make Rude Bear Red again, I'd make it more intuitive. Some things are obvious to Pokémon players. Asleep? Use an awakening. Got a useless magikarp type Pokémon? Switch out to a good one. However, the correct next move would be to make the enemy's type extremely obvious (which I suppose would be rock, water, psychic in this case) and make attack types that would be super effective, instead of ones that you have to get from trial and error. The "1337", "9001" are self referential incidentally. Rude Bear as a character is a yoloswag teenager who finds that kind of thing funny.
Next was Rudey Island. I definitely put too many insults displayed at once here for 10 seconds. It was dumb. I spent far too much time writing the insults and responses too, but that was the core game mechanic, I suppose. On the up hand, it looks beaut. The "useless" response every time, by the way, is always a lyric from a grime or rap song. Some of them are just pretty famous and non sequiturial in the context. Some I just consider hilariously bad lyrics (although from good songs), so I had to put them in. There's like 19 of these, 9 insults and 6 wizard insults (who is basically Carla the Swordmaster).
Next up was Space InBearders, and boy did I make a big mistake with this one at first. I left rigid body controllers on all of the objects, so as soon as I exported it it ran terribly. Had me puzzled for a short while, could it really be so demanding? Other than that, this is the first game where the characters had to follow the mouse, so I made a nice lerp. Unfortunately, it wasn't obvious enough that this uses mouse controls and not keyboard controls. I should always get a random friend to test it first for this stuff. The controls are obvious to me, but not necessarily the audience. I ended up having to add a massive "USE THE MOUSE FOR MOST GAMES" warning under my game. Really enjoyed the song I chose to recreate for this one though.
I also missed the back drumbeat out in Space Inbearders, but that isn't major.
Next was the worst game: The Rudeycopter Game. It can spawn impossible levels (just like the original!) and the animation is poor and it looks dull. Again, like the original. I just think the choice of game was bad, to me it besmirches this game, so I at least made the hit box really fair. Your jetpack won't trigger it.
In the alloted time period, doing another space game was a good way to go. And what's better than a sideways shooter? And what better shooter to parody than Zero Wing? This turned out to be one of my absolute favourites for gameplay, I just wish I had backgrounds to put on it. Again, a really fair hitbox (your thruster and wind don't count), making it follow your mouse means uber smooth controls (although, if you aren't expecting it and your mouse is in the wrong place it can spell instant disaster). I just set the bar too high here. I got really good and then decided that "I can beat this 10 second level in 5 seconds; therefore this is easy mode". It's quick to pick up though.
Next I made RRRRRR, where you go left to right instead of up to down. I really enjoyed putting in the one level "Doing things the hard way", except "Doing things the easy way", as walking over that box is insanely trivial if you're controlled horizontally, if you know that reference. All I have to say is: I didn't think my respect for Terry Cavanagh could increase, but it shot up. I found it really, really difficult to come up with compelling level ideas. I ended up scrapping 3 levels on each difficulty for 2 on easy and medium, and a super gravitron parody for hard mode (which you should totally play, because it's addictive as hell). I'd never made a platformer before, so I had to work out how to get it to know you're on the ground using normals etc. (luckily, I'd already figured it out already from doing Angry Birds, because Unity doesn't natively detect squashing of objects, so I had to write that in myself).
Finally there was world 8-4. I really enjoy the death flash thing here on the hardest difficulty. I can't explain it, just go play it in Practice Mode (level 3) if you want to see :P . I was quite proud of how quickly and elegantly I wrote the bridge script here too with one GameObject, and also.. the jump physics were pretty hard to nail. You have to make sure you give enough initial velocity for a sensible jump if you tap it, but a good enough cosine magnitude and period such that it makes a sensible Mario style jump when you hold down space. I'm fairly happy with how it went, but I had a mishap with the wizard's hitbox. Just don't try running underneath him. (It'd be ridiculously hard to do that anyway).
Finally, there is the bonus round.
This is called Roulette. Click to get more credits. You get this every 10 levels. What could possibly go wrong? It starts in one chamber, if it goes off, you don't keep anything you've won, and you lose a credit. You'll need those credits to survive medium and hard mode though. How many times do you click? If at all!
So, in conclusion, the things I'd change:
- Never assume the control scheme is obvious, explain better.
- Give a way for people to skip cutscenes (or "waiting for the next screen after they die in a minigame") even if it's only optional.
- Stop thinking your earlier stages are so easy, they're not. Get a friend to test.
- Assisted randomness is far better than randomness. Playing the same minigame in a row is tedious. I played 4 in a row after I released it, and I really regret using proper random functions. I should've disabled things you've already played, there's so much in this game, why not showcase it?
- The number of stages to increase the difficulty should've been lowered. I wanted to, but this'd mean you'd get far too many credits from Roulette, and for that to be intuitive, it had to have 6 chambers.
- Do go for the extra challenge. Do make the 8 games instead of 1. Push yourself. I learnt so damn much this LD, and I'm really proud. I wouldn't have cared if it flopped, it'll always be my baby.
- Oh, and learn what you need to do SQL/php leaderboards. Even if I didn't display them, I could still gather valuable information about what makes people stop playing and get bored, and what's too hard.
I hope the next Rude Bear can be even greater, and I really hope you enjoy RBR if you play it.
Ludum Dare entry post: http://www.ludumdare.com/compo/ludum-dare-27/?action=preview&uid=19499
Article originally from my developer blog.