Back to the Main page.
Back to the Projects page.
Moshball
Moshball is a game Joseph Spafford and I wrote for CS 559: Computer Graphics in the Spring of 2013. Perry Kivolowitz taught the class that semester. The game is written in C++ using OpenGL and GLSL.
Game rules
- You are a ball and you must hurl yourself at the other balls, known as targets.
- When you hit a target, it starts a timer indicating how long it will remain in a "bumped" state.
- You win the game when all balls are in the bumped state.
Required features
- Collision detection between you, the targets, and the walls. You must bounce off in the opposite direction that you were facing when you hit the other object.
- Fluid and swift player controls.
- Walls and targets must implement Phong shading. Targets must have a dynamic effect. The floor must look cool.
- Targets look different when they are in a bumped state.
- Targets are placed randomly in the arena.
- A seamless skybox must be implemented.
- A countdown timer must be present above all targets that are in the bumped state. The length of the timer is based on the number of targets. This is done using textures.
- The game must be able to pause.
- There needs to be an overhead view, or a minimap view.
- There needs to be jumbotrons of the game at each side of the arena, implemented using frame buffer objects.
Bonus features that we implemented
- 3D motion using the Bullet Physics engine. The player is able to jump over targets and will bounce off appropriately when in the air. In addition the targets gain momentum when hit and will move in the opposite direction they are hit.
- A pillar is loaded into the game from a .3ds file and placed as an obstacle in four locations in the arena.
- There are additional jumbotron camera views that can be cycled through. These include first-person view, overhead view, 3rd-person view, and a random selection from the location of the jumotrons
- Invisible targets. When the game is started you can select how many invisible targets there are. These become visible when they are in the bumped state
- Our floor effect mimics a pendulum wave motion. A good video of this can be found here.
Screenshots
Here you can see the overall arena.
- The four pillars loaded into the game are visible
- Two of the Jumbotrons are visible, showing the player as he is jumping
- The skybox in the background, showing a purple planet and mountains
- Notice there are four green targets in the arena, but the minimap and text show that there are 34 targets. Most of these targets are currently invisible
- You can also sort of see the floor effect from this image
Here you can see the state the targets are in when they are in the bumped state. You can also make out that the player is about to jump onto a target.
Here you can kind of see the floor effect. The player is looking at a jumbotro, which is in a god-view mode right now. Notice that there are only 4 targets in the game, so the balls you see in the jumbotron are all being rendered inside of the floor.