Planet Run

Planet Run is an interactive environment I created using Flash and ActionScript 3.0. It originally started with the idea to have an object influenced by a planet's gravitational pull. I wanted to create an environment using “real physics” to prove that I could. When I successfully created the physics around one planet, I added others. I also made the variables malleable so that I could govern the planet's size, location, gravitational strength, gravitational radius, and even what type of planet it was. The gravitational radius is the distance that the object must be from the planet in order to be in its gravitational pull. This obviously changes the physics from real to imaginary, but the concepts remain.

Adding a bit of surrealism to the application gave it the appeal of an entertaining game. I changed the object into a character and gave him the ability to move around the screen and float through space. Next, I decided to allow the player to land on the planet and run around it.

This posed a usability question. I was using arrow keys to control the player. The planets are round, and if I use left and right to control the character, this lacks the mapping between the system and real world. When the player is on the bottom of the planet, moving left would walk the character right, and vice versa. This defies a usability heuristic. I considered alternatives, such as using the up and down arrow when on the sides of the planet, and right and left would switch their actions if the player was on a certain point of the circle. These would make the application more confusing.

In Nintendo's Super Mario Galaxy series, a similar issue is posed. The mechanics of the game are similar to my Flash application expect it is on a 3D terrain and the player uses a joystick. I noticed in the game, however, that the controls change depending on the player's position. Using this logic, if I were to hold the right arrow key when my character was at the top of the planet, it would move him clockwise. It would continue to serve as the clockwise direction until the key was released. If the player was at the bottom of the planet, the right arrow key would serve as the counter-clockwise direction. I found this a bit confusing in the game, but it was a reasonable approach to the interaction. This obeys the heuristic of matching the system to the real world and keeping consistency of direction.

In my version, I took a different approach. Instead of keeping consistency of direction, I kept consistency of control. No matter where the player is on the planet, right will always move the player clockwise and left will always make him move counter-clockwise.

Another solution would have been to rotate the environment based on the player's orientation. The math would not have been too complex, but I figured if the world moves too fast, it could cause problems. It would also be a distraction for the player and might be an eyesore. I'm sure watching the world rotate even for a short duration would not be pleasant. Aside from that, I wanted to give the player the ability to fly through space, and having the camera change direction would hinder the ability to effectively control the character.

After I mastered this concept, applying advanced trigonometry, I decided to add the ability pause the game and talk to characters. I wanted to create a system of speech that was easy to manage so that all text could stem from one location, such as an array, text document, or xml document. I also made the world scrollable.

Next, I added special effects and sounds.

This is an example that demonstrates competency with Flash and ActionScript 3.0 concepts. I plan to make this into a fully-functional game when I have time. I'm already working on a one sheet and creating the storyline. Stay tuned!

Fun Facts:
Super Mario Galaxy was my inspiration for this game. When reading about the design and development of the game, I heard that Miyamoto went to his staff and asked if it would be possible to jump from sphere to sphere and have gravity act upon a character. Programmers were a bit overwhelmed, saying it would be too complex to create, but they pulled through. I wanted to challenge myself with a simiar problem, so I created a 2D version in Flash. The logic is present, so adding a third dimension should not be too complicated. It would definitely require multivariable math, adding complexities with the presence of a z-axis.