For my final project, I built a game where you are Iron Man and you fly around a city trying to rescue the other Avengers (or objects from the Avengers, such as Thor’s Hammer and Peter Parker’s camera). I found all of my models online on TurboSquid and CGTrader. Many of them came with material files and/or textures that I used to make them look like Iron Man, Spider Man, and the Hulk.
In my game, the goal is to find these five Avengers characters / items! They are hidden throughout the scene.
In my game, I attached Iron Man to the camera. Using the WASD keys, as well as Q to go up and E to go down, the user has control over where Iron Man flies in the scene!
I implemented many particle systems in my scene, one for each of Iron Man's hands as he flies around the scene. I then colored these systems to appear like the rockets in Iron Man's hands. I also added another particle system to celebrate when an Avenger or item has been saved that is then drawn where the Avenger used to be located.
I used Blinn Phong lighting to appear like moonlight in my scene from the night sky. I used multiple shaders for textures, my skybox, and my program as a whole.
Many of my OBJ files came with texture mappings, including Spider-Man and Hulk. In addition, Iron Man came with an MTL file that I was able to read in using TinyOBJLoader and apply to the individual shapes that made up Iron Man.
For my animation and hierarchically modeled character, I used the dummy and modeled it to walk around the scene. My original plan was to make these dummies appear like Ultron and the enemies of the Avengers, but I had some difficulties implementing that. Therefore, I decided to make them appear as characters running around the scene and flocking in one direction, instead.
I set a background of a city skyline and skylight overhead. I had difficulty finding warped images that shaped to a box but appeared like a sky, so my skybox does look square rather than continuous.
I also implemented a simple flight movement to represent gravity, as Iron-Man is floating in the sky, so when the user is not pressing a WASD key, the character floats up and down slightly. This is not a true physics based implementation.
You are able to see all of my different technologies at play in the video above. When Iron Man collides with the skybox and other objects in the scene, he is not allowed to leave or move forward as the camera does. To collect the different objects in the scene, Iron Man must collide with them, and when he does, a new particle system errupts from that location. In addition, my flocking boids run throughout the scene, and when they collide with the skybox, they are reset to a new position within the scene so that they do not continue to walk outside of the skybox forever.