Home | Rules and Guide | Sign In/Create Account | Write a Post | Reddit | #ludumdare on irc.afternet.org (Info)

Thanks for making Ludum Dare 26 AWESOME! See you in August!

Ludum Dare 26 — April 26-29th, 2013
[ Results: Top 100 Compo, Jam | Top 25 Categories | View My Entry ]
[ View All 2346 Games (Compo Only, Jam Only) | Warmup ]

[ 10 Sec Video Compilation (x3) | 260 Game Video Compilation | IndieCade Deal | Ludum Deals (Unity Deal Ends Soon!) ]


Rift of Time – Post Mortem

Posted by
September 15th, 2012 2:54 pm

Rift of Time was made by a team of four people from France:

- Laetitia Meyerfeld: graphics
- Matthieu Bonneau: sound design
- Mélanie Grosmangin: game design
- Martin Bussy-Pâris: programming, sound implementation, sound design

Mélanie will introduce you to the Concept and the Gameplay, and Martin will deal with Programming and Sound Implementation.

Concept

The theme of evolution was developed through the meeting between an ingenious modern scientist, whose name is Sapiette, and a prehistoric man, Australo. Both characters possess their own gameplay, directly influenced by their level of evolution. Sapiette makes use of advanced technology while Australo stuns the enemies by yelling at them.

Rift of time is a two players game. The goal is to escape a laboratory full of zombie scientists.

The idea is to create a collaborative gameplay between the two players: the game can’t be beat without this collaboration. Australo must protect Sapiette by stunning the enemies before they kill him, while Sapiette must open the different doors and unlock elevators in order to escape the scientific complex with Australo.

 

Gameplay

The two players use the same keyboard. Sapiette plays with the keys A and D to move left and right and the Space key to activate different mechanisms. To move, Australo plays with the arrow keys. What makes Rift of Time different is that the player must yell in his microphone to stun the enemies.

The game mechanics are quite simple. Other features would have provided more challenge and difficulty, but we didn’t have the time to design and program them!

To skirt the problem, I tried to design a level progression that benefits from the main feature.

About level design, the only way for me to control the difficulty was the number of monsters in the place. I created a trap too, at the end of the level: a vicious door with lots of monsters when you activate a button!

I organized the level around 4 different areas. In order to break the monotony, I tried to give each area a different structure, which you’ll notice by the number of floors and doors in the area and by the different ways to open these doors.

The principal difficulty to build the level design was to test it, which meant repeatedly yelling in the microphone… Picture me at 4am, in the room with the rest of the team, working hard to finish the game… Near the end, I started to hyperventilate!

Some players have asked us to implement an alternative control for Australo’s shout. While being fully aware that some people are shy, have children in bed or don’t have microphones, we decided against it: we feel that would kill the gameplay, which would then become unoriginal and far less fun.

Programming

Considering I am a sound designer with limited programming skills, I decided to use Game Maker, a 2D game engine that I know pretty well. Moreover, GMWwise, a Game Maker plugin made by Cédric Liaudet, allowed me to easily integrate Wwise (the sound engine) into the game. You’ll understand why I needed Wwise so badly in the Sound Implementation part.

So, through programming in Game Maker, the main issue I encountered was the elevators system: I think I spent about 15 hours coding the lifts and fixing their bugs. And yet they’re still not perfect: some players have reported in the comments that they’ve had a critical collision issue activating the lift that freezes both characters. It requires to restart the level (in this case, the checkpoints don’t work, unfortunately).

However, through the playtests we’ve made, both during and after the jam, this bug only appeared one time, so it‘d be pretty difficult for me to find the source of the problem.

Sound Implementation

The main gameplay mechanic is based on the audio input and Wwise is the simplest way to implement it into our game. In fact, Wwise’s authoring tool allows the sound designer to set the audio input like any ordinary audio source. It’s then possible to use it in the tool as if it had been an audio sample.

[SPOIL]

Okay, so there’s a big revelation for you: Rift ot Time does not actually measure how cavernous, terrifying or prehistorical your voice is. Wwise only conveys to the game the volume of the audio input, via a Real-Time Parameter Control (a RTPC). So it turns out you really only have to blow in your microphone, and it will work almost as well as if you shout. But admit it: it’s just far less fun to blow at the zombies than to yell at them.

[/SPOIL]

By default, in Wwise, once the audio input is activated, you hear it through the master bus. Yet in this case, we didn’t want the players to hear it: it’s useless, unaesthetic as part of the whole soundtrack, and audio feedback can occur. I couldn’t just mute it though, because I needed Wwise to send its RTPC value to the game. So I put the RTPC on the audio bus containing the audio input and I routed this bus to another muted bus. The audio input is then muted to the players, but the game gets the RTPC value.

Audiokinetic, the studio which develops the Wwise audio engine, really liked our game and presented it at the Summer School on Game Audio on September 5th, in Ankara, Turkey. We have been told that the PhDs there loved to yell at zombies during the lecture.

Link to the Summer School on Game Audio:
http://s3p-gameaudio.ii.metu.edu.tr/~s3p-gameaudio/index.html


We hope that you’ll enjoy the game as much as we enjoyed creating it!

Link to the Rift of Time’s entry:
http://www.ludumdare.com/compo/ludum-dare-24/?action=preview&uid=12981

Leave a Reply

You must be logged in to post a comment.


All posts, images, and comments are owned by their creators.

[cache: storing page]