Robo Rage
Riot
Andrew Choi
CPE 471 Spring 2013
Gameplay:
Play as an old model robot that new shiny robots are trying to replace.
The shiny robots are constantly chasing you,
trying to hit you.
Move using ÒwasdÓ, look around using the mouse, shoot using the left mouse button,
and aim down the sights with the right mouse button.
Shooting enemies will lower their health bar (the horizontal bar above the head), and getting hit will lower yours. After a some time of not being hit, your health bar will regenerate.
The other two bars you have are the rage bar and jet pack bar.
The rage bar increases as you get hit. Once it is filled, the bar will turn blue and start to decrease. During this time, when enemy robots hit you, the damage is done to themselves. Once the bar is depleted, you can start filling it up again.
The jet pack bar increases as shoot enemies. Once it is filled, the bar will turn blue and you can press ÔcÕ to fly. While ascending, the bar will decrease. Once the bar is depleted, you can start filling it up again.
As you destroy the robots, new ones regenerate in the middle of the playing field and join the hunt. Happy survival!
Technical:
All the robots are built and animated with hierarchical modeling. The animation algorithms came from looking at joint angles from a youTube video of someone running and drawing them on a piece of paper. This resulted in a more realistic run animation than limbs just swinging back and forth.
The bad robots run to the player until they are close enough to hit it, using a different animation. They run together in a boid fashion, aiming toward the player.
The main player robot runs with his right turret arm raised. While in strafe mode (right mouse button), the torso faces the aim direction and the rest of the body runs in the motion direction. Fire burst erupt from the end of the turret arm when firing (left mouse button).
All keys and buttons are used as presses and releases. Instead of incrementing the player every time a key is stent, a variable is set when a key is pressed and cleared when released. The timer function checks if it is set and runs code if it is. This stops choppy and different movements on different systems due to different key repeats.
The mouse is used passively. This allows the right and left buttons to have gameplay functions. The mouse re-centers using the glut warp pointer function when the mouse reaches the edge of the play window. Mouse movements rotate the camera eye around the look at point, rather than the other way around. This gives the gameplay a classic third person shooter feel.
In the timer function, there is a call seeing how much time has elapsed. This is used to execute routines in the exact same time intervals on different systems that might have different runtimes for glut functions and other problems. This makes gameplay the same speed across platforms.
No robots were harmed in the making of this game.