It’s sometimes difficult to decide how to get started, especially if you’re developing your first game. Here we’ll tell Rocco’s story -- how we got started, how the game underwent many changes during the development process, and how it turned out quite differently than we originally expected.
Design and Game Concept
Originally, we decided to make a game inspired by the old NES game, Ice Climber. In this game, the player carries a hammer, and climbs up a mountain, which is divided into floors. There, he meets seals (or yeti, depending on the version), mountain-dwelling birds that fly like pterodactyls, and polar bears, pounding along the mountain, that can force the mountain to move one floor up.
It took us a few weeks to build a prototype, based on this original concept, using some simplified graphics. We decided to give the project the “green light”.
We had robust discussion regarding the game setting. We didn’t want to just build a clone of Ice Climber. What was the point in that? So we decided to move away drastically from the original concept, and chose a castle theme. Our artist developed some concept art defining the game’s look: the characters, the enemies, and the levels. It all added up to a striking theme, which you can see below.
Initial Development Progress
It was sometime after development started when we realized that we were building a truly original platformer, which bore little resemblance to Ice Climber (other than the fact that it involves levels, like all platformers). Our game already had a storyline, and charismatic and likeable characters. Rocco is a hero-raccoon, who saves his friends from an evil mage (a huge rat). Rocco throws daggers at his enemies and evades their attacks through his dexterity, maneuvering his way through the levels.
We decided to continue the development of the game by adding several new locations and characters, including a bobcat and a panda. While the artists were creating concept art, the developers were building game logic.
Physics and Character Animation
Controls and their mapping to the actions of an in-game character are critical aspects for a platformer. So creating the controller of the main character involved painstaking work. At first, the Rocco moved as if he was floating around in the moon’s gravity. It felt unnatural when the hero slowly touched the ground after jumping. We experienced the same problem was with behaviour of some of Rocco’s enemies. We rewrote the code for character movement several times to achieve the best results.
For animation we used a sprite sheet (frame-based) animation. The artist created the animation in Flash, and then edited the sprites in Photoshop. It was time-consuming, but at the same time it was easy to prototype and use the animation in Unity. We've had a lot of sprites in the game, so to conserve GPU memory, we used atlases of different resolutions (thanks to the 2D Toolkit). Additionally, we used a very important memory plugin, which helped us to achieve (almost) lossless compression of atlases and save up to 33% of the GPU memory.
Since we were developing a platformer, one of our main tasks was to create interesting and challenging levels for the game. So in addition to developing the game itself, we built a standalone level editor (also with Unity). The level editor allows a game designer to create the game’s levels without any knowledge of Unity or programming. We could have used the internal tools of the engine for this, but our approach allowed a game designer to easily design the game’s levels, and edit these later in case a level was too difficult or easy. Our game had several types of tiles (fragile, slippery, etc.). We could have reused code for the tilemap in the 2D Toolkit plugin, but instead we wrote code for handling the tilemap that met our requirements, and allowed the game designer to manipulate the tiles quickly and easily.
The complexity and challenge of the game
For our game we tried to introduce an element of replayability, so that the players who played the game thoroughly were rewarded. So for example, players gather the pieces of a map in order to assemble a whole map, which is required to access the Tower of the Mage. The map’s pieces are not always easy to find on some levels, and a player must spend more time on the game in order to find these.
Also, over time, we realized that new players, mainly casual and mobile ones, would not be able to cope with some challenging tasks, so we opted to make some levels easier, but at the same time we introduced a mode of more challenging levels (like, for example, in the game Super Meat Boy), where a player may face significant competition. The more difficult levels are intended for players who wish to challenge themselves, and who are less interested in just progressing through the levels as quick as possible.
The most difficult part of the game development process was testing. We needed to test all levels, and this requires some fairly skilled gamers, since the upper levels of the game are fairly challenging. Besides playtesting, it was time consuming and challenging to check the game for bugs of any kind (logical or of level design). But in the end we got through it, and we hope you’ll agree that the game is polished and has no critical bugs.
Despite the many difficulties that we encountered in developing Rocco’s Revenge, we enjoyed the process immensely. We gained invaluable experience in creating our platformer, and found that building a sophisticated game, with great characters, can entail a lot of effort and require a strong team comprised of talented developers, game designers, artists and testers. We hope you enjoy Rocco’s Revenge!