top of page

SADANAND NAIK

Game Engine/Graphics Pipeline Programmer

SKILLS

Programming Languages:

             Shader Languages:

                                         

                                         Tools:

C++

C#

High Level Shader Language(Direct3D)

OpenGL Shader Language

DirectX 11, OpenGL 4, Unity (2017/18), 

Visual Studio IDE

Home: Skills

Game Play Programming

I have the following experience developing games on Unity.

Solo Projects:

  • A tower-defense game in 2D which was very similar to Plants vs Zombies.

  • A flappy-bird clone.

  • A 3D bowling Alley game.

Team Projects:

  • Space Blitz (A 3D space racing/shooting game).

  • SpheresMustDie (An FPS prototype with multiple boss fights).

Graphics Programming

Across multiple projects, I have implemented the following rasterization techniques for graphical effects:

  • Water Simulation using Gerstner Equations.

  • Implemented Particle Systems using CPU, Hybrid as well as GPU particles.

  • Terrain Creation using .raw files for height-map data.

  • Post Processing Effects:

    • Depth of Field.​

    • Gaussian Blurr.

    • Bloom.

    • Refraction.

C++

I worked on 2 separate game engine projects created using C++ and below is the list of features that I created/Integrated into these engines:

  • Created Octree for Frustum Culling using axis-aligned bounding.

  • Created and Integrated Parallelized Job System.

  • Developed an  Entity Component System.

  • Developed and Integrated a SceneGraph.

  • Integrated loading of Scene objects using JSON file format.

  • Integrated Event System.

  • Optimized Model Loading.

  • Integrated Input Handling.

  • Developed a combo-management System for fighting games.

Home: Projects

PROJECTS

The Falcon Engine

A Game Engine for MotorSport Management/Simulation 

This academic project is an ambitious undertaking with a goal of creating, within a year as a team of 4, a fully functional cross-platform engine with high-end stylized graphics and realistic racing simulation with a deep slice of gameplay on top to showcase the performance and effectiveness of the engine. 

Techincal experience aside, this project gave me a great deal of insight into Team Management, Pitching of Ideas, Presentations, and Leadership​.

The project also gave me tremendous experience in developing large scale systems for processing of hundreds of objects.  Memory Usage and Performance were a priority in all the code that I wrote which also helped me gain a deep understanding of C++, 3D Math as well as Software Engineering.

My major contributions towards this project, so far, are:

  • Created a parallelized job system for fast multi-threaded performance. The job system takes in functions of any type with any number of arguments. This was done with the help of Variadic Templating for functions as well as arguments. 

  • Integrated Event Management to work with the job system. This was done so that most of the systems in the engine could be decoupled.

  • Created an Entity Component system which is used to house data for the processing of each entity in every system (Rendering, Physics, Animation,etc.).

  • Created a Scene Graph that maintains the parent-child hierarchy and manages world transformations for all objects based on that hierarchy. It is also responsible for loading saved Scenes from JSON files. 

  • Created an Octree for 3D spatial partitioning in order to implement Frustum Culling for Rendering Optimizations. The Octree updates the nodes of objects each loop based on whether they moved or not.

Home: Contact

DirectX Graphics Engine

The intention behind this solo project is to gain a deep understanding of the various components of a graphics pipeline typically used in games and also to gain a solid foundation in 3D mathematics and usage of DirectX11 API. 

The milestones achieved so far in the project are:

  • Implemented Water Simulation using Gerstner Wave Equations with consideration for change in wave behavior as the depth of water changes.

  • Implemented 3 separate Particle Systems with the particles being managed on the Cpu Side, a mix of CPU/GPU and complete GPU side, respectively.

  • Implemented Post Processing Effects like Refraction and Depth of Field.

Current work involves :​

  • Research into applying depth to particles in order to apply post-Processing effects on them.

  • Research into applying fluid properties to particle systems to convey realism.

  • Research into Screen-Space reflection on the water surface.

  • Research into 'pre-multiplied alpha' blending techniques to allow blending in particles without leak of background colors into the particles.

The goal of the project was to be able to convert a non-data-oriented codebase into a data-oriented codebase and then benchmark the performance gain. We decided to create a simple game on PlayStation4 first without any emphasis on data-oriented design and then with a lot of emphasis on data-oriented implementation of all tasks.

  • The project contains a primitive entity-component system containing only the physics and the rendering component per entity using Structure-Of -Array format.

  • The project features a brute force collision check implemented using data-oriented design. The performance for the physics update loop was 3x faster for the data-oriented implementation versus the non-data-oriented implementation.

  • The project also features a spawning system that makes use of data-oriented design but the performance boost over this section was far less observable as it was already a rather sparsely used function with respect to time.

Note: The codebase of this project is only available on direct request for the sake of job application as it was worked on under a non-disclosure agreement with Sony.

Data Oriented PS4 Game

bottom of page