top of page

Phani Teja Koti

Making moment-to-moment gameplay sequences to leave players with memorable experiences is my quest. 

Dissecting game mechanics, I explore their design philosophies to thoughtfully craft and enhance immersive experiences.


My gaming-honed attention to detail, combined with my deep game taxonomy knowledge, enables me to bring concepts to life, captivating and exciting players.

Weapon Generation Using Parts

This is a demonstration of a system where player can select different parts to make a weapon. There are 4 parts with 5 stats each:

  • Body: Fire Rate, Movement speed, Damage, Ammo count, Weight.

  • Barrel: Fire Rate, Recoil, ADS, Range, Bullet Spread

  • Stock: Movement, Recoil, ADS, Reload Time, Accuracy

  • Mag: Damage, Reload time, Range, Ammo count, Special

The final weapon functionality will be affected by 12 stats which are derived from the 4 parts. Different combination results in different levels of performance. 

For testing and demonstration, a firing range was set up.

Some stats can be easily viewed like damage, range, reload, ammo, and even recoil. Stats like movement speed, ADS, accuracy need keep observation as the changes are subtle. However, they leave a long-term impact.

Infinite Spirit

This is a game project to demonstrate the use of external JSON files to construct procedurally generated levels with a fast passed shooter with different abilities and enemies.


Character Camera Controls:

The character is a spirit with 3rd person controls. It's a particle effect with collision mesh and can move in X and Y axes. The jump was disabled for this demonstration. Every time the spirit spawns in a level, a random ability is given.

Gameplay loop:

  • The player spawns at the start and needs to find the way through a dark maze and reach the end green cell. Enemies might jump out of corners.

  • The player needs to react quickly to take down the enemies with the given ability for that level.

  • Every level will have one type of enemy and can be controlled to have different types at once using the JSON sheet.

  • The player will be awarded a score on each enemy kill. The more levels the player goes through, the harder the enemies get as per damage and health. The score is also multiplied making this a score-chase endless game.


  • single bullet: shoot a straight energy bullet that can pass through walls.

  • Multi-shot grandee: launch 9 grandees that bounce and explode after a short duration. On making direct contact with an enemy all grandees explode.

  • Sticky shotgun: shoot an array of pallets that stick to the wall and explode when the player or an enemy comes in contact. A direct enemy hit will pop all the pallets.


There are 3 types of enemies.

  • The cube enemies swarm to the player and do melee damage to the player.

  • The Long cube enemies also rush to the player doing large damage. However, on kill, they divide into 2 cube enemies.

  • The large sphere enemy has high health and launches rockets towards the enemies.

All enemy meshes are just placeholders that can be replaced with themed characters.
Level Generation:

The levels are made by the use of unreal tables. Cells are generated by 4 digits:

  • 0 will produce a walkway cell where any pawn can move (AI uses the connected nav mesh of each cell).

  • 1 will produce a wall cell, that blocks all pawn movement.

  • 2 will produce a start and end cell for each level. The player will spawn and need to reach the final destination.

  • 3 will produce a cell with an enemy that can later walk onto any cell.

All cells can be set dressed using different 3D models to introduce a theme.

Sequencer Cutscene, Mission Imposable Jump

This is a game cutscene made in Unreal Engine. The goal of the project is to demonstrate the use of unreal sequencers and produce action-based game cutscenes. The sub-goals were to mimic the Mission Impossible 7 mountain jump with a gamified twist.

Environment Setup:

  • Helsetkopen mountain from Norway, height map was taken into to unreal and a landscape was generated.

  • PCG was used to populate the landscape with vegetation. Materials and grass were later painted to landscape with precise control.

  • Sculpted a river water body, added a few houses and tanks to set dress the theme of a war field.


Character Camera Process:

  • The character's fall was first set and later an offset of that path was set to the camera from the character.

  • Later multiple adjustments were made to the camera to show the speed and movement of the decant.

  • To enrich the entire scene to suit video games, a missile was launched from the ground.

  • This missile was made to intercept the character's parabolic path with the right direction and velocity.

  • Moments before the intersection the character dodges with arm length from the missile in slow-motion.

Project Challange:

The greatest challenge in this project was to have the camera follow the character while having a proper focus. This was due to the character falling off an extremely high cliff into a valley at high speed. The camera position and making it face the character was at different decants was the aim.

Realistic Environment: Realtime Lighting & Rendering

​​This project is to demonstrate Realtime Lighting in Unreal Engine 5.


All shots have lumen and Raytracing enabled with strong control. The first project demonstrates a chess board with a strong camera angle and uses different Unreal Lights. All the lights and camera parameters were closely controlled to produce shadows, highlights, bounce lights, image composition, etc. A 3D-scanned Pokémon toy prop was also used to make the project challenging with color variation.


The second project is an indoor-only lighting for 2 room. All skills learned from the previous lighting project were used to make the environment look hyper-realistic. The use of a limited number of indoor lights produces reflections, shadows, highlights, and ambiance for the entire set dressed rooms.

Procedurally Side Scroller with Layered Parallax Effect

This is a project showing procedurally generated 2D levels. It has 3 layers.

  • The foreground is generated with meshes randomly or can be selected manually by the level designer. The player reaches the middle of the screen, and new platforms are generated ahead. All the other platforms behind are sent back and will get destroyed.

  • The middle ground has trees as meshes are also generated similarly to the foreground platforms. These trees move and get destroyed at a slower or faster pace as that can be controlled by the level designer.

  • The background is a single image that is static with no motion.

More layers can be further added and can produce layered parallax effects.

bottom of page