Hey everybody, I’m Lucas Pope, lead programmer at Ratloop Asia. Our upcoming PSN game, Rocketbirds: Hardboiled Chicken, got a few upgrades on the way to PS3, and I’d like to dive into some of the technical details of that transition. Hardboiled Chicken is a vastly expanded and improved game based on our earlier Flash release, Rocketbirds: Revolution. In going from Flash to the PS3, we added better controls, more screens, more chapters, more weapons, more enemies, and more gameplay modes. And we seriously upgraded the visuals. In this article, I’ll talk about some of those visual upgrades and how we did ’em.
If you haven’t seen or played Rocketbirds, it’s a non-scrolling 2D game with a strong visual style. Think of classic 2D action-adventure games like Flashback, Oddworld, or Blackthorne. It could be considered a platformer, but there’s no scrolling and each screen is revealed whole-hog when you walk off the edge.
2D Like We Mean It
For the original Rocketbirds: Revolution, we kept things simple. Each screen had a static foreground image and a static background image that were composited together at runtime to make the final image. This is about the limit of what Flash can do quickly at 720p, but it all worked swimmingly and looked good enough for an IGF nomination.
The PS3 can do better though, so for Hardboiled Chicken, we decided to go full-monty and model each screen in 3D. All 225 of them. Meshes, textures, shaders, and more. Right into the modern age we were launched.
This looks good, but one wrinkle is the game’s camera angle, which uses a quasi-45-degree view; it’s not just a straight front view. To simplify the construction, we model everything as normal square geometry and angle the in-game camera to show the left and front sides. This allows us to have a 1-for-1 mapping between the game logic units and the 3D asset units, but requires some fairly tricky considerations for depth and placement.
Now that we’re cooking with a full 3D scene, what can we do with it? Well, one cool technique is to add parallaxing in order to show depth. Normally with a 2D game, this would mean scrolling the background layers at different speeds. But because we’ve got a proper camera and scene, we can rotate the camera slightly as the player moves to give the appearance of an infinite number of scrolling planes.
Note how the forest in the background shifts and more of the Putzki poster is revealed as the player moves to the right side. This is a bit hard to see in a static image, so take a look at the same effect in motion:
Finally, the big payoff for this new setup is full stereoscopic 3D. You can do stereoscopy with a typical layered 2D game, but in that case you’re dealing with 2D layers and only get a series of fixed depths. With a modeled 3D scene there are infinite layers of depth. Infinite.
To take a mono game and make it stereo, you first need to generate separate cameras for the left and right eyes. Unlike most perspective-based stereo games, Hardboiled Chicken uses an orthogonal camera; there’s no sense of “distance” and objects don’t get smaller as they recede farther away. Although perspective and orthogonal cameras are different in many ways, the ideal stereo camera-generating technique is basically the same: skew the eye views inwards to maintain the same zero-plane image in both eyes.
This method eliminates any discomfort from focusing on the player and enemy characters that are rendered at the zero-plane. Slightly annoying wiggle-vision:
Rule 1: No Headaches
Well that’s pretty technical, but the effect looks great. We worked hard to make sure the stereoscopic 3D is non-dizzying and doesn’t cause headaches or fatigue. In screens with a lot of depth, we tune the stereo separation down to err on the side of subtlety.
Rule 2: High Resolution, Fast Framerate
As most people know, stereoscopic 3D can come at a price. Rendering two full screens every frame isn’t free and many stereoscopic games end up lowering their rendering resolution and/or framerate to keep up. For Hardboiled Chicken, we decided early on that we wanted to run at the full framerate (60fps) and full resolution (720p) in both mono and stereo modes. Luckily, this is a decision best made early and throughout the project we constantly optimized both our geometry and rendering to hit the mark.
Now that we’re on a next-gen system, it also makes sense to throw in a few next-gen effects. Apart from a vastly improved particle system, Hardboiled Chicken utilizes tone-mapping and bloom post-processing effects for every screen. We didn’t want to go overboard though, so it’s all rather subtle and adds just enough to make the environments and colors pop without being overbearing.
In the end, we’re extremely happy with all the visual upgrades. Even though the gameplay is strictly 2D, the flipscreen nature lends itself well to the awesome parallaxing and stereoscopy effects you can only get from 3D rendering. Each screen presents a sort of diorama inside your television. Hopefully you can check out the full experience on a 3D TV. If not, don’t despair; even with a regular set the parallaxing and other upgraded effects look great.