Every Picture Tells a Story by Gabriel Levi (glevi)

This game is based on a song by Rod Stewart called Every Picture Tells a Story. The song tells the story of a youth traveling around the world. In this game the player controls a marionette, which they have to pose in relation to pictures that tell the story of the song.

Goal

Your goal is to get as many points as possible.

In a picture (except the title picture), there are 4 blue boxes. You get points by positioning and posing the marionette so that the hands and feet match up with the blue boxes. The closer you are, the more points you get!

How to play

This may just have been my computer, but sometimes the sound starts off messed up. If so, restart the game, or else the sound will be out of sync! Also, there is a long (~10 seconds) loading time.

The marionette has two controls. First there is a control that is attached to the body by two strings. This can be moved with wasd. Holding down shift makes it move faster.

The second control is attached to the marionette's hands. This is moved with the mouse. This control will move with the first control when the first control is moved.

(While this isn't part of the game play, if you want a closer look try the arrow keys)

Method

Physics

The marionette is made up of body part. Each body part is a capsule (I started off with boxes, but moved to capsules as they looked and flowed much better). The body parts are attached with hinge joints. All the hinge joints share the same axis, except for the knees and the ankles. There are feet, lower legs, upper legs, a torso, upper arms, lower arms, hands, and a head.

I simulated strings by using a bunch of geometry-less bodies bonded together with hinge joints. Since you can't set position or velocity without messing up the simulation, the top of the string is controlled using forces. This way the marionette's controls aren't always exactly where you want them (they can get pulled around), but it is pretty good. The rotation and position of the drawing of the controls is dictated by the location of the top of the strings.

Other stuff

The song is one I own, and I converted it to wav format. I used audacity to figure out good transition points, and found images online to go along with the segments of the song. This creation of content was a slow process, and I only did around half the song, but I think it is enough for the game.

The images are from here:
http://ecx.images-amazon.com/images/I/618tvmO8TVL._SS500_.jpg
http://www.chapmandesigninc.com/mirrors/mirror-floor-fleur700.jpg
http://www.fmft.net/French%20Police%20CRS.jpg
http://www.theage.com.au/ffximage/2006/03/15/svFRENCH_wideweb__470x334,0.jpg
http://www.blancheblackfitness.com/aaronblack/images/hitchhike.jpg
http://screenrant.com/wp-content/uploads/hbo-rome-2.jpg
http://www.briancreese.co.uk/B%20hippy.JPG
http://blogs.princeton.edu/mcgraw/assets/The%20End%20by%20nomeacuerdo%20-%20En%20modo%20chnacho%20zombie%20(cc).jpg

I modified the game so that I could (ingame) set the size, location, and target locations for each scene. This mode is off on a seperate branch of the repository, and is not present in the final game.

I started to add platforms to scenes, to make it easier to position the marionette, but stopped as these platforms have to be moved with forces, and that is really really annoying

Novelty

This game uses physics as a core mechanic, and not just as a gag. The goal was to take part in the story by posing in some highlights. Using a ragdoll as a main character was kind of inspired by little big planet, and the images going along to the song was kind of inspired by those videos people put on youtube of their favorite songs with the silly pictures they think are appropriate. I have never seen or played a game where you position a marionette.

Results

This game is hard. Controlling the marionette is hard. But it looks good, the simulation is stable, and the strings worked out really really well. The points system is a tangable way to notice that you get better with practice, and who really wants to play easy games =P).