Postmortem for Real Live Avatars Inc
Hi everyone!
First of all, I’d like to say that I’m really happy with finishing my game. Unfortunately, due to the site’s issues, I couldn’t log my progress. I guess this isn’t just a postmortem but rather also an “I’m in” post. 
So far, this is the third game I made for LD. I made a game for some miniLD or another (I don’t remember which), and another for LD20. However, I wouldn’t count either game as a “full” game (for some definition of full corresponding to the 48 hour time limit). The miniLD entry was a game where you shot enemies that came at you (sort of like asteroids but with people) but had no video feed; instead you had the audio of creepy footsteps, gunfire, and screams. While it didn’t turn out bad, it wasn’t quite complete because it had no graphics. As for the LD20 entry, I made an (almost) exact clone of part of the original Legend of Zelda game. So finished or not, it wasn’t really my game. That’s why I’m extra-proud of finishing this time.
Before I analyze what happened, go play my game 
Here is the entry page:
http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&uid=3743
and if you won’t vote anyway, here is the game:
http://mr.galacticgaming.net/Real%20Live%20Avatars%20Inc/Game.html
What went wrong:
- Sound – I wasn’t planning to make sounds and I didn’t, so no loss here.
- Community – I didn’t even say that I was in

- Physics Bugs – There are two bugs with the physics in my game. Because the rest of the physics went well, I’ll address these bugs in the What went right section.
- Presentation of the story – First off, I’m about to talk about the plot of the game, so if you haven’t played it and will, skip this part for now because there are SPOILERS here. The story turned out to be almost exactly the same as I envisioned it when I came up with the idea.Real Live Avatars Inc is a company who pray on weak civilizations. They abduct people and take control of their bodies via implants. The controlled people are then sold to members of more developed civilizations as avatars for a game. I had hoped to create a cutscene for the start of the game. It would feature people talking about what they would do if the rumors of the company coming to your home planet to abduct people turned out to be true. All the things I explained could thus be introduced. Then the screen would shake and the game would begin with you running away from the company. A side effect of this is that in the process of running, you could see all the other people from the conversation caught and abducted.When you won the game, a person would walk in from the right (throughout the game you run to the right and away from the right-advancing enemy) and proclaim that your implants are working perfectly; just look how well you did in all the tests. If delivered well, this could have resulted in a realization of the futility of the situation; Even as you were “escaping,” you were actually only being tested. The player, who was supposed to sympathize with the abducted peoples, would be horrified to find that they were actually controlling one of these people in the exact way that Real Live Avatars Inc would.Whenever you lost, you would be presented with that same person saying something about testing implants which would make sense in the context of escape, but would take on a whole new light in the context given by the “winning” cutscene.Of course, I didn’t get to ANY cutscenes. Instead, I have Bob, an employee of the company:

While Bob got across all the facts I provided above, I doubt he got any of the emotion across. - Level generation – The procedural generation of the obstacles in a level made winning or losing a level sometimes a simple matter of luck. Also, I wanted to include caves into the floor (I wanted the ability to have more than 1 floor at a certain x coordinate and potentially have ceilings). As it stands, the framework only supports a single floor height and no ceilings per x. Inherent in the idea of ceilings is the idea of low ceilings; the player was supposed to be able to roll or crawl, depending on their speed, under such obstacles by pressing down.
What went right:
- Graphics – I think the graphics were a great success. At this point, those of you who have played the game are probably raising an eyebrow and wondering whether this was supposed to be item 6 in the above list and only ended up here accidentally. For those who haven’t, here’s a screenshot:

Frankly, the graphics suck. Despite being a person, the player has no head and no appendages, and only a rectangle for a body. Similarly, Real Live Avatars Inc, who by virtue of traveling the galaxy we know must be very technologically developed, are represented by a simple beam into the sky. The reason the graphics are so bad is two-fold. First of all, I’m not an artist; my best is only ever programmer art. And second, I took Baby McFunkypants’s advice. I didn’t waste time fleshing out the graphics, but rather tried getting something playable ASAP. Had I spent time on impressive machines on the part of the company, or appendages on the part of the player, I might not have finished. - Physics – I made it from scratch without any tutorials, libraries, or previous experience with in game physics. Each case in the algorithm for deciding the player’s motion is based on real physics, but by virtue of it being composed of various cases, the result is “weird” (the first person to play the game said that they liked the weird physics, so I don’t mind the label). Since I made the thing from scratch, there are several idiosyncrasies which probably contribute to the weirdness. For example, while jumping, none of the keys do anything.Another example is how jumping works. When you press up, a vector in the direction of the normal to the surface where you are standing is added to the current velocity vector. Thus jumping on an upward slope pushes you back towards getting caught. In order to find the normal, I needed to find the slope of the tangent to the surface where you are standing. I approximated by using the secant between the point on the ground one to the right of you and the point on the ground one to the left of you. Unfortunately, this results in the first bug: If you stand right before the ground drops off, then when you jump, the point one in the direction of the drop is much lower, resulting in the jump propelling you almost horizontally. I have no clue what caused the second bug: sometimes, you get stuck on the edge of a drop. You would expect to fly off, but instead, you suddenly stop.
- Code – Quite accidentally, my code ended up very organized. Usually, it sort of builds up in a couple of classes. This time it didn’t. I could probably tell you exactly where in the code any specific functionality came from, and what any piece of cod does. I could probably draw a diagram of the way the game was structured without looking at the code.
- Hosting – I placed my last LD entry on my dad’s website. It kept crashing and people couldn’t get to the game. This time, I got lucky. the31 graciously offered to lend me a sub-domain of his website to hold my game. I took him up on that offer, and my game can now be reliably be accessed. Thank you the31!
Thanks for reading,
—Mikhail Rudoy
Tags: flash