I am Pratik Sahoo, a passionate gameplay and tools programmer. I love to play and make games.
Background
"Greetings! I'm a passionate Game Programmer on a quest to contribute to extraordinary PC game projects, driven by the thrill of gaining expertise and crafting remarkable experiences. My heart beats for FPS, RPG and Story-Rich Games, propelling me to create immersive virtual realms. Beyond coding, I excel in optimizing performance and weaving intricate design patterns. Proficient in Unity Engine(2D, 3D and UI Implementations) and C#, I've sculpted my skills through hands-on creation . While I'm diving into Unreal Engine and C++, my hunger for learning knows no bounds. Armed with SFML and ImGUI, my toolkit evolves to meet new challenges."
"Alongside this coding odyssey, I channel my artistry as a part-time singer and musician, sharing my musical journey on Instagram and Youtube."
This a video demo of Operation Recondite - Prototype showcasing the current progress with basic Weapon System, Interaction System and Movement System, these systems are now being expanded to Advance stage with proper research and testing. The overall quality and optimization is kept in mind. Placeholder assets are used at the moment to ensure the proper demonstration of the project design and goals.
The First Person Character Controller developed using a Finite State Machine (FSM), the first image shows the PlayerStateManager class that handles all the state changes and holds the reference to all the States that the player has as well as the PlayerData(second image) class which is a ScriptableObject that holds all the player data for each respective states.
Each player state inherits from the BaseState which is an Abstract class that holds all the common members and methods like Move, Look etc., which is required by the child state classes. The WalkState is one of many player states that inherits from the BaseState.
All the weapons are treated as Data Objects similar to the PlayerData. Each Weapon has a Weapon script attached to it and the respective WeaponData is attached to the Weapon Script. The Weapon Data holds all the information about the Weapon like the Firerate, BulletsPerTap etc, this WeaponData is unfinished and more things would be included in it in the future.
Operation Recondite is a Personal Prototype Project which is inspired from games like Project I.G.I and Delta Force franchise showcasing Mission based game structure with realistic First Person Character Controller and Weapon System.
Here is a prototype engine footage of Saving Astral.
I am currently working on the Asteroid Pattern Creation over the City. These Asteroids can be Harvested and starts falling on the city once a certain phenomena is triggered. Hence, are required to be destroyed by the player. These Asteroid Patters are Optimized and Procedurally generated in the runtime.
Saving Astral is a freelance project undertakn by Mena Creative. I am working on more than one mechanics with 10+ Developers currently active in the Project.
This is a video demo of SpyRoll. Current version v3.0 is a playable prototype which can be installed in Android. The current version contains 11 playable level, a main menu, settings and placeholder sounds. We have also implemented Pinch to Zoom-In and Zoom-Out functionality for the good User Experience. We have also added tutorial level for the new players.
We are using Mediator Pattern to guide this project to success as we wanted to reduce direct dependencies between classes. We have the GameEventHandler static class which acts as a Mediator and keeps track of all the GameEvents in the game. All the Colleague Classes can subscribe to the Events as per the requirement. This ensures decoupling of the GameObjects and various systems throughtout the Game.
Both the Player and Enemy inherits from the pawn class. We are also using the Command Pattern to keep track of all the actions taken by any Pawn, it might be Player or Enemy. This enables us with a feature to provide some powerups to the player like the undo turn should the Game Design demands that in the future.
Boom Busters is classic Minesweeper meets the twist of multiplayer. I developed Boom Busters for Hashbyte Studios accompanied by Senior Developers, Designers and Artists.
This is the Video Demo of ComponentPilot - Window. Here one can choose the Source GameObject and the list of Destination GameObjects. This tools also enables the user to choose the components that are needed to be copied from the source to destination GameObject.
This is the Video Demo of the second utility tool of Component Pilot, ComponentPilot - MenuItem. Similar to the Window Tool, this utility enables the user to copy all the components of a GameObject and Paste them in any number of GameObjects. This tool is a quick fix to the tiring work of copy and paste components one by one manually.
Component Pilot is a Custom Tool built for a purpose to copy two or more components from one GameObject to more than one GameObjects with or without the values.
This is a video demo of unnamed project, Project-A. The above demostration consists of Player Movement, Object Pickup, Object Push/Pull, Object Interaction and Basic enemy AI to react according to Player's Actions.
Project-A is an unnamed project which I have been working with the sole purpose to learn more about the world between the 2D and 3D that is the 2.5D. With a very simple Player Controller and lots of Puzzles, we aim to make this prototype into a full-fledged 2.5D Puzzle Platformer game.
This is a video Demo of Crypt Raider created in Unreal Engine with C++.
Mover is a custom component which can be attached to any Actor to move it in any direction by any units when the ShouldMove boolean property is set to true. This component is used in the dungeon door and the Iron door in the dungeon. The ShouldMove can be set to true or false as per the need.
This is the Trigger Component which checks if a specific type of Actor has entered the trigger, if yes then it move down by certain distance by setting the ShouldMove boolean property of the Mover to true. This component is used in the hallway door, which opens the door when the golem statue is placed inside it.
The Grabber component can be attached to any component that we intend to grab and move using Physics Raycast. In this demo we have attached the Grabber component to the Golem Statue and the Gold Statue. Also these Actors acts as the acceptable Actor for the Tigger Component.
Crypt Raider is a Practice Project that was created for the purpose of learning Unreal Engine C++. This project has helped me gain proficiency in Unreal Engine's game development by crafting from scratch using C++.
This is a video Demo of Toon Tanks created in Unreal Engine with C++.
The PawnBase class is the Base Class for both the Player(PawnTank) and Enemy(PawnTurret) class. It contains some common members and methods like RotateTurret() and Fire() etc.
PawnTurret is the Parent Class of the Enemy turrets which inherits from the PawnBase class.
ProjectileBase is the base class for all the projectiles that are fired by the Player Or Enemies. Any other projectiles can inherit from this class and as soon as any SubClass of type ProjectileBase is spawned in the world, it moves towards a specific SubClass of PawnBase. In this case we use it to Spawn at Player Turret and move towards the enemy and vice-versa.
Toon Tanks is another Practice Project that was created for the purpose of learning Unreal Engine C++. This project as well has helped me gain proficiency in Unreal Engine's game development by crafting from scratch using C++ along with static AI behaviour.
Contact Me
I'm always excited to collaborate on new projects and opportunities. Whether you want to discuss a potential collaboration, have a creative idea to share, or simply want to say hi, I'd love to hear from you. Feel free to reach out through the form below or connect with me on social media. Let's bring ideas to life together!