Erik Lindahl's Final Project
Erik Lindahl's Wonderfully Broken Platformer!
Hi, this is the webpage for my non-functional (sad face) platformer final project! I want to highlight a few of the technologies I used to create the world and the interaction.
Technologies:
- World generation from an ASCII file: My program loads the world from a grid-formatted text file to generate the platforms' locations. For each blank line, there is another row of platforms, and the number of platforms per row is dynamic based on the file's format. The number present in each grid location represents the height of the platform. The platforms are heirarchically modeled.
- Lighting is full phong lighting based on simple ka, ks, and kd constants.
- Collision detection occurs by comparing the player's axis-aligned bounding box with all of the platforms' axis-aligned bounding boxes. Theses boxes are generated at load time for the world.
Screen Shot
This screen shot shows the world that was generated from this ASCII file:
0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 2 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0
0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 4 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0
0 0 5 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0
0 6 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
0 0 7 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0
0 0 0 6 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0
0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 7 0 0 0 0 0 0 6 0 0 0 0 0 0 3 0
0 0 0 0 0 8 0 0 0 0 0 4 0 0 0 0 0 0 0 0
0 0 4 0 5 0 5 0 0 0 0 2 0 0 0 0 0 3 0 2
0 0 0 0 0 8 0 6 0 0 0 0 3 0 0 0 0 3 0 0
0 4 0 0 0 0 7 0 0 0 0 0 0 4 0 0 0 4 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 5 0 0
0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 6 0 6 0 2
0 0 0 0 4 5 6 7 7 7 8 8 0 7 0 0 7 0 0 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
The idea of this world is that there are two viable paths to take from the starting side to the ending side, where falling to the ground between the first and the final rows would cause you to reset back to the starting location.
Difficulties
Unfortunately, I was unable to complete my project in a timely manner, and there are two main things that held me back: collision detection with the ground and shader problems. I have found that the player tends to get stuck in the ground due to the way I deal with collision with the ground. Also, I attempted to make larger improvements to my shader than I was able to, which cost me a lot of wasted effort. Hopefully my effort is clear and comes through in what I was able to complete, however.
Erik Lindahl