Indie Showcase: Pastagames’ Rayman Jungle Run (iOS & Android)

Pastagames is a French game studio, founded in 2001 by Fabien Delpiano. Located in Paris, they have been releasing mostly mobile games like Burn it All – Journey to the Sun and Maestro! Jump in Music. Since Pastagames is a French studio, many of their stories start with people enjoying a meal. Rayman Jungle Run is no exception to this rule.

Rayman Jungle Run‘s story started when one day, Jordan Mechner was in Paris and he asked me if I was available for dinner with friends. Fortunately enough I was and it happened that one of his friends was Michel Ancel – Rayman’s dad. Michel happened to know two of our games (Maestro! Jump in Music and Pix’n Love Rush). He really enjoyed the games and was looking for a studio to make a demo of Rayman on iOS. The objective was simple: 60 fps rock-solid on recent devices, no virtual pad. Everything else was open for discussion, and Pastagames’ expertise in mobile gaming was more than welcome.


Building the Team

Rayman Jungle Run TeamThe first challenge we had to face on that project was the availability of Pastagames’ team. When we started talking with Michel (December 2011), the core team was occupied until April 2012, and the first prototype of Rayman iOS was due for March. Moreover, Pastagames is self-funded. We have no investors, so basically almost no cash reserve. We re-invest all the money we earn in our in-house IPs. This makes recruiting for a new project very dangerous, as you often have to spend money in wages before you get paid for your work. The only option we had was overwork for the founders (Hervé Barbaresi, Nadim Haddad and Fabrice Kocik) and Lead Developer Jérémy Laumon. After a few months, we were able to hire one more developer (Anthony Delbroc) who proved to be perfect for the job. And later on, two interns in level design and level art saved the day (Jean-Matthieu Jennisson and Clara Morin).

Technical Clearing

The next challenge was a technical one: Rayman Origins was developed for PS3/Xbox360 generation consoles (full HD, 1080p native, etc.) and for our version, the minimum target device was the iPhone 3GS. Quite the difference. As we were convinced that a direct port would lead to disaster, we adopted a radically different approach. The original technical design of the engine – fortunately – was brilliant and modular, thanks to great people at Ubisoft, like David Punset, Guillaume Gernez, and Jérôme Verrier. We decided to re-build an iOS version of the engine with the original bricks of Origin, but piece by piece.

We started with the physics/collision engine. We could port it and make it run in a stand-alone fashion, with 100% geometric debug-patterns on it. A Geometry Wars version of Rayman, that was… weird! We were able to reach 60 fps running that version on a 3GS. We were happy, though this had been only the first stage.

Stage two was adding the platform-rendering code and after that, the animation engine (stage three). At that point, we had something that looked a lot like Origins. It ran at 60 fps provided that there were not too many objects onscreen. Unfortunately, Rayman Origins was all about putting one million great details in every corner of the 1080p device!

What About Controls?

We had to re-invent a whole new kind of gameplay within the existing engine

After the technical challenge of porting the game from high definition consoles to iOS, a new challenge was in front of us. And it was quite frightening. We didn’t have a controller on a tablet, did not want to implement a virtual one and none of the existing levels could be either run by our mobile engine or played with any imaginable touch controller. We had to re-invent a whole new kind of gameplay within the existing engine.

Our first inspiration for controls came from Monster Dash, the excellent infinite runner by Halfbrick. The game features only two virtual buttons: one for jumping, one for punching. However, Rayman would add to that simplistic control mapping its own rich character, allowing the hero to wall-jump, fly and wall-run with only one unique action. In order to achieve that, we implemented some kind of “left stick auto-pilot”, trying to guess where you want your character to go. In our first implementation, the guess was easy; we supposed that the player wanted to run to the right, all the time.

Geyser and LumThis proved to be interesting, but kind of frustrating for two reasons. The first reason being that sometimes you miss a Lum (which you need to collect 100 of in a level), and you would want to come back and take it. The second reason is that in many cases, you are surprised by the behavior of that character, which is always running to the right. For example: you’re swinging – hanging to a “swing man” – and you jump while swinging towards left. You’d expect your character to go left for a while, but that’s not what happens in Rayman Origins when you keep pushing your left stick in the right direction. But when you jump while swinging towards left, you instinctively push the stick to the left.

Where Controls Lead to Gameplay Decisions

When we succeeded in making these mechanics feel natural, we realized we had a new level design tool

At this point we added two important features to the game. To avoid the player’s frustration of “oops, I missed one Lum”, we decided to make levels very short, less than 1 minute. We also added a “restart” button right on the HUD. Thus, if you miss one Lum, you just hit the “retry” button and there you go again. This was way easier than switching between running left and right all the time. Short levels were a mandatory effect, in order to not let the player get frustrated by restarting an entire, long, level.

To avoid the “this is not where I wanted to go!”-frustration, we made the “left stick auto-pilot” smarter. If you would jump while swinging left, the auto-pilot pushes the stick to the left (at least for a while). The same happened to many other situations where you would unconsciously change your stick direction, i.e. when you wall-jump.

When we succeeded in making these mechanics feel natural, we realized we had a new level design tool. We could add the extra value of exploration to the levels, as the player – even with just one touch – can decide where he goes! We could add multiple paths, secret spots, etc. It also opened the way to speed challenges, since your timing will highly depend on the path you choose.

Alternate Take

While polishing this gameplay, we decided to try a completely different one as well. We imagined vertical levels, where Rayman keeps going down while avoiding horizontal spiky roots, flame throwers and flying enemies. It is played with your mobile device in portrait position. When your finger is on screen, Rayman has his helicopter on, and by sliding sideways, he glides laterally. When you release your touch, he falls. We prototyped two levels with this gameplay, and even mixed the two gameplays in some levels, where you had to turn your device at some point to switch gameplay.

We had everything we needed to finish the game. We might have even had a little too much

Now, we had everything we needed to finish the game. We might have even had a little too much, considering the little time we had left to design 40 levels and polish everything. We decided – for the sake of simplicity – to keep only one gameplay style: the “jump/punch” one. Subsequently, we did many focus tests and realized that it was quite challenging for casual gamers to start with two buttons and to correctly time their actions in the first level. So we decided to introduce a new ability for Rayman every 10 levels, the punch being the last because it made the game switch from one touch to two touch controls.

One Serious Mistake

Giving the player the freedom to form bad habits during the first levels for the sake of making her/his first steps easier was definitely a bad idea

One mistake we made in the design of the game is allowing the player in the 30 first levels to touch anywhere on screen, instead of forcing her/him to touch on the left half of the screen. Because of this reason, when the player reaches level 30 and we introduce the second button in the bottom/right corner, those who have spent 30 levels pressing anywhere on the right half of screen feel betrayed. They kept jumping with their right thumb, switching between upper right corner and bottom right corner, which makes everything more difficult for them. Giving the player the freedom to form bad habits during the first levels for the sake of making her/his first steps easier was definitely a bad idea.

Teaming Up with Ubisoft Montpellier

The original team of Rayman Origins has been incredibly supportive on the project from day one. Michel Ancel has been working with us on a weekly basis. He has been sharing ideas, commenting on builds, giving his opinion level design, technical choices, and recommending level design patterns. Abdelhak Elguess, producer on the project, has been a perfect proxy to Ubisoft internal mysteries, finding the right contact each and every time we had a problem. Kudos go out to to David Punset as well, who conceived many of the tricky parts of the UbiArt Framework, and who has been our mentor in understanding the architecture of the middleware. Special thanks also go out to the level designers of Rayman Origins who shared their experience with us, and made draft versions of many levels of Rayman Jungle Run.

And They Lived Happily Ever After

The launch of the game was, to put it simply, dreamlike.

The game was scheduled for a release on September 20th. For technical reasons, it ended up on the AppStore 2 days before the official release date, on September 18th, at 6 PM French time. Some guy, somewhere in the world, probably typed the keyword “Rayman” in the search tool of the AppStore, discovered the game, and sent a message on twitter saying “Hey, Rayman Jungle Run is available ahead of schedule!” When we woke up, the day after, the game was already in the top 50 of 10 countries!

Working with the magic team of Ubisoft Montpellier has been a blast, they have gathered a rare experience in platform games, and still have a fresh and unique take on the genre. We’ve learned a lot by working with them, side by side. Being a small part of Rayman’s long story has been a great honour and a real pleasure.

Rayman Jungle Run is available in the AppStore. Recently, it was released on Google Play as well. Currently, Pastagames is working on a new IP of its own, starring Pix the Cat (hero of Arkedo Series 003 – Pixel, and Pix’n Love Rush), with a completely different gameplay (no platforms, but a fractal world with ducklings and evil skulls).