Projects

 

This slideshow requires JavaScript.

World of Warcraft: Legion

Website Link

May 2016 – August 2016

Summary

I was a software engineering intern on the World of Warcraft engine team for the summer of 2016, focusing on working with the graphics engine.

My Contributions

  • Implemented an approximation of atmospheric scattering for sunsets and sunrises (pictured above).
  • Worked with several parts of the engine for World of Warcraft, broke-down and implemented numerous bug-fixes for several parts of the graphics engine.
  • Collaborated with engineers and artists to ensure that my projects were developed correctly and matched the art-style of World of Warcraft.

 

This slideshow requires JavaScript.

 Rafflesia

DigiPen Page/Download Link

September 2015 – April 2016

Summary

Rafflesia is a 3D cooperative first-person-shooter in which players battle a deadly Rafflesia plant in the bowels of the sewers! Players must fight through different phases of the boss as they attempt to vanquish the beast!

My Contributions

  • Developed stand-alone 3D graphics API using DirectX.
    •  Dynamic shader management that utilizes automatic shader reflection. This system treats shaders as resources, allowing for major changes without having to re-compile large parts of the engine.
    • Deferred rendering pipeline that utilizes the Phong-Blinn shading model as well as point, directional, and spot lights.
    • Automatic draw-call system that minimizes GPU state-changes by re-ordering draw calls in an order that optimizes the rendering pipeline and increases speed.
    • Vertex-instanced particle-engine, which could render a few hundred-thousand particles, while avoiding the overhead of instancing the particles individually.
    • Automatic resource loading, which dynamically freed GPU resources when not in use, and would re-load them, to avoid having to place all resources on the GPU as once, freeing up memory.
    • Universal handle system allows resources to be automatically managed, as well as keeping track of lost resources.
    • Parallelized rendering pipeline, which frees computation time for the rest of the engine.
    • Supports the Chromium Embedded Framework for off-screen UI rendering. This allows slick interfaces to be created using HTML, allowing for easy development and iteration.
    • Debug line-rendering system that interfaces with the Bullet physics engine.
    • Customizable cel-shaded lighting-model that allows artists to define how materials react to light with a simple texture.

 

This slideshow requires JavaScript.

Schmoops In Space

Download Link

September 2014 – April 2015

Summary

As Earth’s last hope, you must fly through the cosmos, blasting your way through waves of enemies. Warp from system to system, defending yourself with powerful cannons. Do you have what it takes to save Earth?

My Contributions

  • Built a 2D graphics engine from scratch using DirectX 11. This engine utilized many advanced features such as:
    • Dynamic sprite-atlases, built while loading.
    • Sprite instancing. This, combined with sprite-atlases, helped improve rendering speed immensely by reducing the overhead of drawing.
    • Automatic shader handling that allowed for shaders to be reloaded during run-time, allowing for rapid iteration.
    • Data-driven particle engine that allowed for effects to be chained together dynamically in response to the environment.
    • Post-processing system that supported glow, Gaussian blur, and radial blur.
  • Worked with engine programmer to develop a component-based entity-system in C++ that helped the designer prototype and build systems extremely quickly.

 

This slideshow requires JavaScript.

It’s Easy to Die Hard

January 2014 – April 2014

Summary

Take control of Dolmick in his efforts to escape a dungeon. Utilizing different suits, Dolmick can gain abilities such as fire, ice, even time-control! Fight your way through a fantastical world and battle your way through the dragon to win!

My Contributions

  • Built a custom game engine in C, which used function pointers to allow the designer to change behaviors of entities during run-time.
  • Designed a particle engine that could support different particle systems, as well as dynamically change effects, allowing for particle systems to react to events.
  • Designed and implemented several suits, including:
    • The fire suit that shot jets of fire.
    • The matrix suit, which had independently rotating arms that automatically aimed at enemies before firing, all at bullet-time speed!
    • The bull suit, which allowed the player to charge at distant enemies and send them flying.

 

This slideshow requires JavaScript.

Spaceman Dan

Download Link

September 2013 – December 2013

Summary

Explore space! As the captain of a mighty star-ship, you must guide Dan through the perils of the stars. Fight enemies, build your ship, and advance through to the galaxies core!

My Contributions

  • Wrote automatic AI path-finding system that allowed our designer to create maps without having to worry about setting up way-points.
  • Created dynamic ship editor that allowed for custom layouts, improving player-control over the progression.
  • Created particle-effects to help provide feedback to the player.
  • Created the core ship systems that supported oxygen levels, gravity controllers, and shield generators that helped provide immersion, as well as adding depth to the game-play.
  • Developed core game-play, including:
    • Procedural ship spawning that targeted specific parts of the ship.
    • Mini-game system that was dynamically tied to ship-systems.
    • Enemies and attack patterns.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s