As promised in our Procedural World Construction post last week, we wanted to give you a status update as to R.A.B.B.i.T.'s ongoing development. As we started writing this blog post, it occurred to us that it's been absolutely AGES since we really showed any development progress on here. Sure, there's stuff on Twitter and Facebook for those that follow them, but we've never actually re-capped any of it in a blog post.
So, without further ado, here's a look at the major improvements to the game over the last month.
At this point R.A.B.B.i.T. is going to have five playable game modes at launch. All five will be available to the player immediately:
- Campaign: 40 pre-constructed levels over four difficulty modes (Easy, Medium, Hard, Insane).
- Endless: "Flappy-bird" like infinite mode where you complete levels for points. One mistake is game over.
- Survival: Same as endless, but you can retry as many times as you like until the time runs out. Complete levels to increase the time remaining.
- RPG Mode: Consistent scoring mode. Complete levels to gain points (the more difficult the level, the more points you get). Lose a rabbit and you lose points. You can totally have negative points too!
- Custom: Play a level based on any seed you like.
Note: At this point custom mode and Endless mode are both available to try in our open Android BETA.
Since we announced the game's title, the rabbit himself has improved a lot. He's now fully implemented into the game, including a skeletal mesh and a full set of animations:
We've also made the rabbit much bigger (200% in fact) within the game world so that he reads a lot better.
We've still got a fair amount of work to go here, improving the animations and tidying up the rabbit's textures, but it's already working really well in game.
The rabbits in R.A.B.B.i.T. are persistent... That is until you smash them into a wall, then they're gone. Forever!
When you first launch R.A.B.B.i.T., the game will generate a completely unique rabbit for you:
This rabbit will stay will you through game mode and even has a statistic about how many levels he's managed to survive. But if you make a mistake, that rabbit is gone and a new one will arrive to take his place.
Right now, we only have the random Rabbit names working in the game, but soon we'll be implementing randomly generated cosmetic changes too. We estimate we have in the region of 18 million possible rabbit names available at moment (we will probably add more before the end) and once we add the visual changes, this could easily raise to a billion or more unique rabbit combinations.
We also have an idea to add a rabbit leaderboard so that you can see which rabbits lived the longest :)
Procedural World Construction
The game now has a fully procedural set of world building logic that is completely driven from a 7-digit seed. The 7th digit in the seed determines the difficulty level (0 is easy; 2 is hard; 5 is crazy hard; 9 is Dark Souls of RABBiT) while the 6th digit controls the length of the level (0 is 4 sections long; 4 is 8 sections long; 9 is 22 sections long). All of the other digits generate random content.
With this we are able generate a completely random level completely from scratch. Or we can generate a level of a particular difficulty and length for game modes like endless. Or we can find a level we really like and use it as a campaign level.
To aid in this, we (or you, the user) can pause the game at any time and find out which seed you're currently playing, then either practice it in custom mode, or share it with a friend.
Lately we've also been improving the level construction and adding more variations of the level blocks. Hopefully we'll have more to show of this in the near future.
We've spent a significant amount of time improving the game's swinging mechanics. Although it's difficult to describe these changes as a lot of them are subtly and are more about the way the game feels to play, we've made a lot of changes to things like how quickly the rabbit moves, how quickly be is pulled towards his target etc. Basically, we're much happier with the rope swinging than we were near the beginning of the project. We have a few tweaks scheduled to make to fix a few corner cases where the rabbit doesn't do what you'd expect, but these are fairly rare occurrences.
We've also greatly improved the game's target selection, meaning it's a lot easier to get the rabbit to grapple to the object you want him to.
We also spent a few days improving the camera in the game. Originally the camera would simply follow the Rabbit whenever he would go, keeping him in the middle of the screen. This made the game very difficult to play as you couldn't really see what was coming up. To combat this, we made the following changes to the camera:
- The camera now stays 2/3rds of the way to the left of the screen allowing the player to see what's coming up on the right.
- The camera doesn't travel too far below the ground or too close to the ceiling.
- We tweaked the zoom of the camera so that it's balanced between seeing more of the world and seeing what the rabbit is doing.
- The camera is now on a fairly rigid spring meaning it trails behind the rabbit a little, smoothing out the motion.
Over the last couple of weeks we've done a huge pass over the background art:
And you can see them working in game here:
Finally, we've spent a significant amount of time designing, implementing and iterating on the game's UI. RABBiT uses a dynamic 3D menu where your current rabbit moves through the game world until you arrive at the gameplay's persistent starting location.
At the moment, in order to finish the game (presuming we don't add any new features before launch), we have to following left to do:
- Finish the world art, including the ground / ceiling.
- Improve the rabbit animations / textures.
- Implement random rabbit cosmetic changes.
- Finish up the UI and implement the missing screens (previous levels, previous rabbits and options).
- Implement the missing game modes (campaign / survival / RPG mode).
- Implement leaderboards / achievements including icons.
- Design implement the game's title art / icons.
- Add sound effects / music.