Runner-up winner at Stanford's annual game competition for CS248 in Spring '13, Shad is a 3D platformer with some interesting twists.
Group Members: Amit Badlani, Johan Ismael, Gabriel Kho, Cassidy Saenz and Chirag Sangani.
Shad is the hero of our game. He's a shadow looking for his lost body. To accomplish his quest, he was given a purple cape by an angel which allows him to teleport in the air.
After following the angel's advice, Shad is thrown into a mysterious world full of paint and colors. He is told that his quest is to pursue the blue flags, and that will eventually lead him to what he has been desperately searching for.
Shad is a platformer. The player can use the keyboard or a Xbox controller to navigate around the world.
The world is made of rectangular platforms of different kind which is indicated by the color of their edges. The white ones are normal, the yellow ones move, the red ones shrink and expand, the green ones collapse when Shad is on them and finally the blue ones act as elevators.
Shad has to avoid two things in this world. The first one is falling which throws him into a white hole and causes him to die. This effect is created by freezing the camera at a certain negative Y level.
The second one is lightning which blocks Shad on his way. Lightning in Shad is procedurally generated using a Random midpoint displacement algorithm for the main bolt. Some branches are occasionally created to generate smaller sub-bolts. The animation is achieved by dimming the color step by step, and generating an entirely new bolt once the previous one is not visible anymore.
Shad is able to jump freely from one platform to another thanks to the Bullet library which simulates physics. Bullet is an open source library that implements rigid body dynamics. However, Shad himself is modeled as a kinematic character controller, which is a feature of Bullet which we extended.
The cape that the angel gave to Shad is very special and allows him to teleport. It is implemented using a particle engine. Particles are emitted from the back of the character with various velocities. The trajectories of these particles define the shape of the cape.
The end of level flag is simulated using a ball-and-spring cloth model. Various effects, such as stiffness, aerodynamic drag and wind modeling give the cloth a realistic appearance.
One key thing in the visual identity of the game is the glowing effect which is used for platform edges, teleporting the character, the cape, cloth and lightning. It is implemented using a multi-pass rendering where the first pass renders the blurred emissive objects - the blur itself is achieved with a Gaussian-blurring algorithm which is implemented in a shader. The second pass draws the entire scene and the last pass blends the two together.
Teleporting is the main game mechanic of Shad, so we emphasize it with an over-exaggerated motion blur. We consistently track the past N frames of the scene, and blend the oldest frame with the glow effect applied and the current frame to achieve a warping effect when Shad uses his power.
The identity is finally defined through sound. The main menu and gameplay music were originally composed just for the game, while the sound effects were originally taken from the Vengeance Sound Pack, and were later modified via filters such as reverb.