Portfolio

Untitled Platformer (Unity, C#)
Currently under development. This is a rogue-lite, fast-paced action platformer targeting consoles and PC. Features awesome attack combos, unforgiving enemies and a perilous environment.
  • Lead programmer of the project
  • Developed highly complex player and enemy behaviour using behaviour trees.
  • Implemented complicated, multi-stage attack combos both for the player and the enemy
  • Programmed gameplay, AI, physics, shaders and some UI programming
  • Wrote an inventory system


Anesthesia SimSTAT (Unity, C#, WebGL)
This is a training simulation game I've worked on while at Indusgeeks, a game company that focuses on gamification products. Made using Unity3D targeting the WebGL platform. Perhaps my biggest achievement while working here was the development of a waveform rendering shader which dramatically improved the performance of the game by replacing an existing mechanism which was dependent on the CPU. This was very challenging because the shader had to be compatible with WebGL 1.0, which imposes a lot of restrictions when it comes to graphics processing.
  • Dramatically improved game performance by developing a waveform shader to replace the existing CPU dependent mechanism
  • Wrote code to simulate Electronic Medical Record, Intravenous Fluid System etc...
  • Created tools to speed up the development process
  • Carried out various optimizations to make the game run smoothly on WebGL where resources are limited
  • Developed highly maintainable and flexible code that worked across multiple projects and modules
  • Assisted the team on various occasions with development related issues



Published Projects


Multi Table Tennis 3D is a table tennis simulation game developed primarily for the Android platform. Developed using the Unity 3D engine and programmed entirely in C#.
  • Implemented realistic physics-based movement of the ball.
  • Implemented 4 different levels of AI difficulty
  • Developed a split-screen multiplayer mode
  • Designed and implemented the UI 
  • Implemented and experimented with different touch-based control mechanisms 
  • Imported and integrated different 3D models, textures and sprites into the game
  • Implemented sound for the game
  • Successfully performed various optimizations in the game to make it run at 60FPS on all devices
  • Integrated libraries like Admob and Google Analytics into the game





Asteroid Melter is a survival action space shooter game developed for the Android platform. This is by far the biggest project I've completed. This game was created using my own simple android game framework named SAGL and was written in java.
  • This was a large project, developed over a period of 1.2 years
  • Implemented AI behaviors for 6 mini ships and 10 boss ships
  • Developed different weapon systems for the boss ships
  • Developed a unique survival gameplay mechanism for the game
  • Implemented procedural generation of the 2D environment and various enemies
  • Implemented a simple upgrade system for the player ship
  • Implemented encrypted storage of player high scores and progress using 'SQLCipher' from 'Zetetic'
  • Implemented online high scores using Google Play Game Services
  • Optimized SAGL to improve the game's performance and load times
  • Successfully debugged the game despite the incredibly large codebase
  • Integrated Admob 





Simple Android Game Library -(SAGL)  (Android, Java)
This is a lightweight Android 2D game library that I wrote from scratch for making my games, before moving on to game engines like Unity 3D. This framework is extremely lightweight (around 1MB) and well optimized. The framework uses the OpenGL ES 2.0 API for rendering graphics. Text is rendered using the GLText framework by Fractious.
Asteroid Melter was made using this library.
  • Implemented OpenGL ES 2.0 based graphics rendering
  • Implemented code to handle different screen sizes and resolutions
  • Developed helper classes for loading and compiling shader code from files
  • Implemented high-performance collision detection algorithms
  • Implemented a sub-framework to handle proper playback of sounds and music
  • Developed classes for handling various user inputs
  • Implemented a simple UI framework for creating buttons, frames, on-screen joysticks, progress bars etc.
  • Applied the knowledge of OOP concepts and data structures in the development process
  • Developed classes that manage the loading and disposal of various resources and lifecycle of the game
Image Editor was an experimental project. It lets you adjust the brightness, contrast, hue, saturation and lightness of an image in real time using glsl shaders. Built for the Android platform and is programmed in Java and C.
  • Implemented classes that can help load images from the device, send them to the GPU for processing and then save the resulting image
  • Implemented code to prevent the application from running out of memory when loading large image files









This was my first android project. Multi Table Tennis is a simple ping-pong style game which offers a Bluetooth multiplayer feature. The game is also highly customizable with configurable game speed and game difficulty and 3 different control modes. Coded with java for the Android platform.
  • Implemented multiplayer gameplay over Bluetooth (TCP socket)
  • Implemented a special technique to make the gameplay smooth in multiplayer
  • Implemented accelerated graphics rendering using OpenGL ES 1.0
  • Developed simple classes for managing sound playback and user input



No comments:

Post a Comment