Individual Projects


Shadow Map Techniques and FBO Applications Thesis

Key Features

  • Four different shadow map techniques demonstrated in my Custom C++ Engine

  • Hardware Accelerated Standard Shadow Maps

  • Non-Hardware Accelerated Standard Shadow Maps

  • Adaptive Sampling Shadow Maps

  • Variance Shadow Maps

  • A general explanation of how to render Dynamic shadows in games

  • Motivation for dynamic shadows and depth perception in games

  • Analysis of Shadow Map techniques and associated visual artifacts

  • A study of Anti-Aliasing methods

  • Demonstration of techniques to mitigate negative Shadow Map artifacts

  • Performance and memory analysis and trade-offs

  • Comparison of hardware accelerated methods versus handcrafted solutions

  • See the slide show to the right for a summary of the project. C++ and shader source code can be provided upon request


 




Data-Driven Roguelike

Key Features

  • All game actors, entities, and items created through xml data utilizing flyweight design pattern

  • Map fog of war and line of sight raycasting

  • A* Pathfinding with g-cost parameterization

  • Artificial Intelligence: Goal Oriented Action Planning and traditional FSM all driven by xml data

  • Custom triggers, events, and interactions exposed through data

  • RPG like combat system with melee and ranged combat

  • Inventory system 

  • Level-Up system for players

  • Custom C++ Engine integrates with Tiled for 2D map editor

C++ / OpenGL

 

C++ / OpenGL


Custom 3DS Max Importer and Exporter

Key Features

  • Custom 3DS Max export plugin dll

  • Custom export binary file format  

  • Supports skeletal animation and vertex animation

  • Supports multiple materials

  • Supports exporting of diffuse textures, normal maps, specular color and level, and emissives

  • Custom C++ Engine supports import of custom binary format

 
 

C++ / OpenGL


Interactive Voxel Terrain                                                              C++ / OpenGL

Key Features

  • 2D Perlin Noise used to randomly generate terrain

  • Players can add and remove voxels

  • Players may place light voxels, which propagate light in all directions

  • Dynamic lighting that is recalculated whenever blocks are added or removed

  • World is saved from session to session using Run-Length Encoding (RLE)

  • World is infinite and is populated by 16x16x128 voxel chunks

  • Game runs at a smooth framerate while chunks are loaded and unloaded

  • Procedurally generated trees

  • View Frustum Culling of chunks

  • Three camera/physics states: No Clip, Flying, and Walking


WebGL Deferred Renderer       

Key Features

  • Custom 3D Javascript Engine utilizing WebGL 1.0 and GLSL ES 1.0 with additional 2.0 extensions that supports a Deferred Rendering Pipeline

  • Deferred Renderer implements a three pass approach which renders to a custom Geometry Buffer and Light Buffer

  • Demo showcases over one hundred randomly moving dynamic point lights with steady performance

 

Javascript / WebGL


Asynchronous Ant Colony AI                                                      C++ / Custom DLL

Key Features

  • Asynchronous Ant Colony AI built into a DLL that sends and receives data from a main application

  • Ant colony collects food and attacks other colony ants with the goal of being the last standing

  • Utilized A* pathfinding to traverse the map

  • Implemented AI for worker ants, scout ants, soldier ants, and the queen ant

  • Utilized critical sections to create thread-safe data access

  • Competed against other classmates and professors


GLSL Custom Shader and FrameBuffer Pipeline                       C++ / OpenGL

Key Features

  • Custom GLSL Vertex and Fragment Shaders

  • Dynamic Lighting calculated and applied in fragment shader

  • Supports Global Direct Lights, Local Point Lights, Local Ambient Lights, Global Ambient Light, Local Spotlights, and Global Spotlights

  • Custom FrameBuffer Objects for screen effects

  • Supports Normal Maps, Emissives, and Specular Color and Level