Studs

This is an infinite runner game, where the player has to try and bounce of tiles and try to make as many hops as possible. The game is made with DirectX 11 and C++.

This was the final project for the Game Graphics Programming course, where I and my teammates were introduced to DirectX 11.

studs2

Some of the features implemented are:

  • Lighting (Diffuse, Ambient, and Specular)
  • Normal Map
  • Skybox w/ Multiple texture blending
  • Shadow Mapping
  • Bloom 
  • Fade-in Effect
  • Particle Effect
  • UI

studs3

Personal Responsibilities:

  • Creating the Renderer class –
    For our base engine, we called all the draw calls in the draw function which includes from setting the vertex and index buffers, setting all shader resources and the shaders themselves and finally using the draw call. Doing this for each object makes the code just look very unorganized.
    Using the renderer class just cleans up the code and modularizes the process of the draw function.
  • Normal Maps –
    This was very straightforward, setting the normal map as a shader resource for each entity and doing the respective calculations in the shaders.
  • Post processing (Bloom) –
    This was something new and different to implement, and I was pretty excited to get this done. Bloom effect requires us to first keep the pixels with a certain brightness, and get rid of all pixels below that level. Then, do a two-pass blur on the resulting image after the brightness pass. The image resulting from the blur pass is then blended with the original image. (In the above images, the effect can be seen in the skybox and also on the specular highlight on the ball)
  • Fade-in effect –
    This was done using Blend states, with source and destination alpha values. As the tiles get closer their alpha value increases and they give a fade-in effect.
  • Skybox blending –
    This was also pretty straightforward, both the skybox textures are set the shader resources and they blended together by using the lerp function, with the alpha value going back and forth from 0 to 1.

Team Credits:

  • Amey Salvi  –
    UI, Textures and Materials, Models, Sprites, and Post Processing
  • Parth Contractor –
    Shadow Mapping, Gameplay & Physics Programming, and UI
  • Ruchita Kondvilkar –
    Skybox, Specular lighting, Game State Management, UI, Spotlight, and
    Textures & Materials

The code can be viewed on Github