Dakshvir Singh Rehill
Verified Expert in Engineering
Game AI Developer
Dakshvir is a game programmer who specializes in creating gameplay from design documents. He excels in the development of game AI, networking, editor tools, and other game components. Being an expert in debugging and code optimization, he was responsible for improving framerates for games with multiple interactive elements in open world games such as his capstone project Wild Shape, as well as relatively simple games like the published match-3 game Tower of God when working for Ironcode Gaming.
iOS, Game AI, Unity Editor Scripting, Unity, Photon Unity Networking (PUN), Unity2D, Android, C#, Unity3D, Windows
The most amazing...
...thing I created is the input and Ray casting system for Hololens' multi-player game, Elemental Rifters, using native API instead of MRTK for low-level access.
Junior Game Developer
Ironcode Gaming, Pvt. Ltd.
- Optimized object pooling for dynamic instantiation of tiles in a published match-3 game that dramatically improved the frame rate.
- Implemented the Monte Carlo algorithm for a card exchange game where the algorithm was used to simulate real game rounds for poker and Teen Patti on an AWS server.
- Created a simple web API for server-based games to enable third-party applications to access game round data after authentication and registration.
- Developed mini-games such as jigsaw puzzles, sliding puzzles, and memory card puzzle games for a published match-3 game, which allowed replayability and reduced repetitive gameplay.
- Transformed an offline, legacy GUI game to an online synced game with Unity Canvas UI to launch on the latest Android phones. The game also had play games integration and ads implementation.
- Created a coupon management system with a server on AWS, a data editing tool to update server data, and a client application that enabled players to redeem points earned by playing games for coupons.
- Developed and iterated over a hyper-casual tap mechanic game prototype for mobile platforms with game analytics, gameplay, AI, and visual effects.
- Created a system for automated persistent currency generation for a mobile game on Indian elections, which allowed players to keep earning votes, money, or influence without needing to keep the application open.
Web Developer SEO Analyst
Webfosys Networks Pvt. Ltd.
- Increased organic traffic for target keywords by developing search engine-friendly websites for clients.
- Improved search engine presence thruogh the creation of informative SEO-friendly content for the promotion of startup websites like Clicktable and high profile client websites such as Kent.
- Delivered technical reports and content for overseas oil rigging companies.
- Generated strategic blog articles for private blog networks to keep them relevant for backlinking, using topic selection, copywriting, and fresh content generation.
- Guided and mentored recruits and interns, improving their onboarding experience and reducing company efforts.
Wild Shape 3D Third Person Linear Windows Standalone Game with Open World Elementshttps://cajedgames.itch.io/wild-shape
Use natural powers to solve puzzles and evade enemies. Interact with NPC characters living in Wild Shape. Find collectibles throughout the world of Wild Shape. Switch between forms to traverse obstacles. Explore the world of Wild Shape.
Organized remote development by leading daily scrums and weekly sprints as the project manager. Created agile tasks for programming and assigned them to the programming team members. Developed Melee and Ranged Enemy Behavior Trees with a complex detection system, different attacking functions, pathfinding, and occlusion detection. Programmed Guide NPC Finite State Machines with multiple states and dialogue options. Created shaders for special effects on player characters, interactable objects, and the environment. Developed and unit tested all mechanics of both player characters. Common mechanics included shapeshift, walk, run, and look. Shape-specific mechanics included hide, crawl, teleport for the raccoon shape, and push and freeze for the bear shape. Implemented custom input binding using the Unity new input system.
Elemental Rifters: A Multi-device Networked Multiplayer Shooter
The project was completed with the help of one other developer who was responsible for development of iPhone X 2D logic, PC Camera controls, and initial setup of the enemy AI.
- Enemy AI using FSM
- Bot AI using behavior tree
- Hololens AR UI
- Hololens input and device setup
- Overall integration and lifecycle
- Project management and version control merging
Tower Of God: One Wishhttps://store.steampowered.com/app/1199010/Tower_Of_God_One_Wish/
Pick up and play, 100 levels of fun match-making, fun mini-games included. New types of runes and tiles, climb the tower of God!
Optimized existing instantiation logic for match-3 runes by implementing object pooling. Developed independent mini-games that can be plugged into other games. Implemented a jigsaw puzzle mini-game that allows a player to solve the puzzle for an image—created a memory card mini-game that enables the player to discover pairs of face-down cards with the same sprites. Developed a move slider game where the player needs to remove obstacles and move the main slider to the other edge. Added mini-games to the level editor to ensure the final level JSON has mini-game levels as well. Implemented dynamic tower generation so that the tower of God is different for each player.
Rough Waters: Networked Multi-player Side Scrolling 2D Game with Controller Input (TOJam 2020)https://dakshvirrehill.itch.io/rough-waters
Single-player and two-player games. Swap between rafts when raft energy gets drained. Protect rafts from treacherous objects. Created moving NPCs and collectibles scattered through the level.
Tested and integrated controlling raft through running water that is already exerting some force to the rafts. Developed physics jointed chains that interconnected the rafts and could be extended and reduced by the player. Made functional 2D AI steering behavior for crocodile hazards in the game. Implemented blocking objects that damaged specific rafts, such as drainpipes and line barriers. Added obstacles that damaged players and collectibles that either gave extra scores or were multipliers for the score.
Strictly Enforced Engine: 2D Game Enginehttps://github.com/dakshvirrehill/Forked-Modified-Game-Engine
I designed and developed a collision system with one other developer. The collision system tried to mimic the Unity physics system by providing virtual functions that each component can override. These functions include trigger and collision functions for enter, stay, and exit events. The collision system only checked collisions if there was a rigid body involved. Box2D shapes and a static, rigid body was used to implement this. I developed the rigid body component and the collision system. The collision system checks through colliders of each rigid body against all the colliders in the world. If there is a collision, it caches it and sends the enter event. It calls stay for all cached events if they are still in collision and exit if they are no longer in collision. Collision events are sent before the render system update to allow for collision handling.
Gauntlet Game Replica: Game Editor, Analytics Toolhttps://github.com/dakshvirrehill/Gauntlet-Game-Replica
I created a Unity editor window for the game architecture's Gauntlet 2D game, which leveraged Unity's IMGUI system as well as UI elements, including UXML and USS. The tool allowed the designer to create levels for the gauntlet game and different entities and pickables that would reside in the game. The tile map editor was a visual editor where you can place objects on a grid-based layout. The game exported all game data to JSON and stored all entities as scriptable objects internally.
Seals of Hell Text-based Adventure Game: Game Generator and Analytics Toolhttps://github.com/dakshvirrehill/Seals-Of-Hell-Text-Adventure-Project
The tool comprised all the entities of the game and a way to load and save previously set game data in JSON format. I also created an analytics tool for the same game to visualize the actions in a visual graph. I built a text- ased adventure game similar to Zork using JSON as game data and C++ as the programming language. The game understood basic sentence combinations and using function pointers, called the appropriate action functions.
The Ultimate Casino: Card Exchange Game Mode for Mobile Gamehttps://play.google.com/store/apps/details?id=com.ultragames.theultimatecasino
I developed the entire mode, including the server and client-side code. The card exchange game uses the Monte Carlo algorithm to determine the probability of winning each hand according to the round of the respective poker or Teen Patti game. There can be either two or four hands in the game. Each hand is dealt cards from a shuffled deck of cards and increased as rounds progress. Each round is on a timer and the players are allowed to bet on each hand's win or loss condition. Based on the probability of that hand winning, the player will either win or lose the bet money.
The entire game was calculated on the server-side with results sent to the client. The game also exposed callbacks that could be registered by third-party applications to get the current round's values. New games start constantly so players can join in at any time. The game was developed under the employment of Ironcode Gaming for a client.
Just Game Android Mobile App with Server-based Profile and Redeemable Coupon Managementhttps://play.google.com/store/apps/details?id=in.justgame.justball
Transformed the legacy GUI to the Unity Canvas system and integrated UI hooks into the game. Fixed minor bugs in the legacy scripts and made a simple 2D game functional. Added tracking of player profiles and scores on the server using Nakama Server, Lua, and PHP. Integrated Google Play Games and implemented leaderboard, achievements and player count. Developed a coupon management system that allowed Just Game to add, update, or delete existing coupons in the server-side database and automatically refresh the feed of available coupons on the client, i.e., player. Added a way to keep track of all the coupons the player purchased using the game score and prompting the user about the expiry of each of the coupons. Created and designed the UI for coupons, games, the main menu, and user login.
Zombie Wave Shooter Mobile VR FPS Tutorial for Education Ecosystemhttps://www.education-ecosystem.com/dakshvirrehill/projects
*Setting up the Unity game engine and Google VR SDK for Unity.
*Unity Game Engine Basics, including common unity windows and views along with C# scripting for Unity.
*Virtual reality basics, Google VR prefabs, different XR devices, common scripts, and VR audio.
*Creating the main menu scene, serialization, persistence, 2D UI to VR scene, and initial setup of a VR scene, game objects, lighting and place objects, effects and gun control, object pooling for bullets, enemy prefabs and animation, physics implementation, NavMesh navigation for enemies, game over and scoring, sounds, game win, and final setup.
*Testing, optimization and build settings of games.
*Unity built-in profilers, player, quality, audio settings, and building games.
Corporate Espionage 2.5D Isometric First Person/Third Person HTML5 Game (Dilemma Jam 2020)https://unethical-advocates.itch.io/corporate-espionage
I developed the game AI, i.e., the clients. Clients were implemented using FSM, where each had multiple states. The states were idle, decision, bar, move, and wait for a server. The idle state chooses a random time to wait before going to the decision state. The decision state is responsible for deciding whether the NPC would go to the bar and call a server or go to a random table. Move will be active when the NPC is walking. The bar state is only active in level one, i.e., the bartender and the server state is only active in mode two, i.e., the server. Game over occurs in level two if an NPC keeps waiting for the server and the server doesn't come. You go to level two after all NPCs have visited bar.
In the bar state, the NPC waits at the bar for the player to attend them. If the player attends them, they drink and get inebriated, or leave. Inebriated clients take less time to show secrets to the eavesdropping server.
Blackout Game for Windows Standalone (Global Game Jam 2019)https://spilledteaproductions.itch.io/blackout
I created all AI and the complete circle of life. One AI was a dream walking persona that wandered through waypoints on the active platform. The waypoints were randomly selected from a pre-placed list. No waypoint was repeated; therefore, the persona starts moving to the edge when the end of the list is reached. The player has to stop the person AI from falling off. If the player places another platform on time, the waypoint list would automatically be populated with the waypoints on the new connecting platform. Players have to left-click to lift and join and right-click to rotate the platform.
Other NPCs were the nightmares. The nightmares would start marching towards the persona. The player has to steer the persona away from them. The goal of the game is to create a path to the light.
I also made the circle of life for this game, i.e., win, loss, death, game over, main menu, and scene transition.
Bestie Jumble 2D and VR Android Jigsaw Puzzle Game
The 2D puzzle has three orientations depending on the image resolution, portrait, landscape, or square. They will tap on the puzzle pieces they want to swap and solve the puzzle. The VR puzzle scatters cube-sized puzzle pieces in a 3D virtual world. The player has to go and find the puzzle pieces and place them on the 3D puzzle board. Once all pieces are in place, the puzzle is solved, after which they get a certificate they can store as a PNG in their phone. The game features VR UI, 2D UI, Sprite manipulation and effects, 3D particle effects, Google VR integration, VR head tracking, and ray tracing. I developed the entire game including multiple art assets.
The Adventures of Little Rebel: Mobile VR Game as an Anniversary Present
It has a hidden object game where the player has to find objects that are scattered in a VR room. In the jigsaw puzzle game, the player has to correctly position cubes made of image parts to make an entire image in a VR space. In the roller coaster experience, the player experiences being in a simulated roller coaster ride. The memory room objects placement game has the player place objects in their correct place in the room. Dialogues between the player and NPC in the objects placement game Guard Dog AI has waypoints and player detection.
Each game had different mechanics and assets. I developed the game and all assets.
Endless Defender Prototype: Hyper Casual Mobile Game
In this game, aliens fell from a mother ship trying to invade Earth. The goal of the player is to tap on the screen to create a shield that would destroy the aliens. There were different types of aliens, and each required a different number of shields to be stopped. Players got power-ups by tapping on special earthly ships and by continuously saving the Earth from a set number of aliens. The game doesn't end until Earth gets invaded.
I built the entire game except for the conceptualizations and graphics. The level management had aliens being spawned at certain probabilities, which changed as the levels progressed. The speed of the spawning, as well as falling, was varied as the levels progressed. The game implemented Unity analytics and a collision system. Persistent data was also handled. Special effects were created using the Lean Tween Unity plugin.
Outliver Mobile VR Game made for Udacity Teamworks 5 Topic: Riskhttps://medium.com/@chaitiagrawal/outliver-game-vr-team-daito-project-913b01ea699d
*Three levels with completely different environments.
*Base level to familiarize the story, i.e., the scientist's lab.
*Underwater level with oxygen deprivation mechanic.
*Fire world level with fire breathing dragon and fire pits.
I created the circle of life and interconnected all the levels. I designed and developed the base level, developed teleportation and scene transition logic, and modeled the teleporter pieces. I created game over, scoring, underwater oxygen deprivation, fire breathing dragon fires, and the fire pit logic.
VR Scare: Udacity VR Developer Nanodegree Capstone Project
*Fully functional floating UI in VR world.
*Option to select the movie that is to be played.
*Complete video-player with options to fast forward, increase decrease volume, seeking video location, time display, play, pause, and stop functionality.
*A raytracing and waypoint movement system for the player to navigate the maze.
*Unity NavMesh path finding for the zombie to find the shortest path in the maze to the player.
*Game timer implemented as the scoring and ranking mechanism on a leaderboard.
*Persistent leaderboard, score, and player level.
*Level progression and maze design.
I developed the entire project.
Untitled Point and Click Mobile Game Prototype with Currency Generation Mechanics
In this game, you are a budding politician trying to expand your party and become the prime minister of India. You campaign for votes, one state at a time, while raising money and influence by adding party members and unlocking political activities using the same votes/cash/influence you have already gathered by campaigning. Once you have enough votes to win a state election, you unlock adjacent states. After winning state elections in all states, you get to run for prime minister. Gather enough votes to become the Prime Minister.
I was responsible for creating maximum back-end code while other team members handled much of the Unity setup. I used big integers to handle out-of-scope numbers and ensured quick and efficient calculations with minimal overhead. I created a persistent data handler, activity manager, state manager, and player statistics manager. I integrated Unity ads and made a reward ad system in the back end and added code for the automatic generation of the game currency for bot states.
Supasaver3D Prototype: iOS Mobile Game with 3D objects and 2.5D Perspective
In this game, police are swarming your zig-zag path and you have to stop them from filling the entire path. Each of these police are of different levels; therefore, a different number of walls need to be used to stop them. You swipe on the screen to make a wall, and the wall fades away with time. The police are colorful. If three of the same color reach the path column/row wise, you get a power-up that can be used to help you get rid of them. Special glowing police give you power-ups as well.
I developed the entire game except for the conceptualization and graphics. I worked on level management, i.e., setting up probability, randomization, speed, and other parameters for spawning police. I used Unity's 3D physics engine for collision detection and resolution and worked on special match 3 mechanisms for pathway police. I added 2D and 3D effects, including animations. The game used Facebook analytics as well as Unity analytics, as that was required by the client.
Push Conqueror Prototype: Android Mobile Game with 2.5D Perspective
I developed the collision system to ensure that there are fixed joints between the same player's troops, and the push starts happening as soon as opponents collide. I made a health system that tracks the troops of both sides to calculate the player's updated health. If you take your troops to the opponent, the opponent loses health. If you take an opponent's troop to the opponent, you gain health. I created the lane management mechanism and the spawning mechanism as well as the random troop selection mechanism. I also created a bot AI to mimic the playstyle of the player for the computer side.
Unity3D, Unity, Unity2D, Photon Unity Networking (PUN), RakNet, Box2D
Git, C#.NET WinForms, PlayFab
Android, Windows, Amazon Web Services (AWS), WordPress, Firebase, iOS, Google VR, SteamVR, Steam, Oculus, PlayStation, Xbox, MacOS
JSON, MySQL, MongoDB
C#, C++, SQL, Python, Lua, ShaderLab
SFML, Facebook SDK, OpenGL
Agile Software Development
Extended Reality (XR), Unity Editor Scripting, Artificial Intelligence (AI), User Interface (UI), Tools, Web Development, Virtual Reality (VR), Networking, Data Structures, Algorithms, Game Programming, Game AI, Augmented Reality (AR), Unity Shaders, SEO Tools, Organic SEO, Digital Marketing, Shaders, Operating Systems, Cloud, Cryptography, UI Elements, AR Foundation
Post Graduate Certificate in Game Development Advanced Programming
Sheridan College - Oakville, Ontario, Canada
Bachelor's Degree in Computer Science and Engineering Specialization in Cloud-based Applications
DIT University - Dehradun, India
Shader Development from Scratch for Unity with Cg
Virtual Reality Nanodegree
Digital Marketing Nanodegree
Cloud Application Developer - Mastery Award for Students 2016
Programming for Everybody (Python)
University of Michigan