Back to Portfolio

Project Quantumloop

Tactical Shooter / Multiplayer FPSUnreal Engine 5
BlueprintC++Node.jsMongoDBAWSEOS

Overview

Project QuantumLoop is a tactical multiplayer FPS inspired by Valorant and CS:GO, featuring modes like Plant the Bomb, **Team Deathmatch, **Zone Control, and **Free-for-All. The game was initially developed in **Unreal Engine 4.26.2 (source build) and later migrated to Unreal Engine 5.3.2 (source build) to take advantage of modern features and performance improvements.

I served as the lead programmer, building 100% of the gameplay functionality using **Blueprints, and extending the engine with **custom C++ plugins and a Node.js backend for matchmaking and authentication. I worked closely with a 3D Artist (for character/environment assets) and a Concept Artist (for UI, thematic direction, and visual style).

🛑 Project Status: The project was paused by Tandemloop Technologies due to internal priorities. I retain parts of the development code and plan to independently evolve it.

🎯 Game Modes Implemented

  • Plant the Bomb (Inspired by Valorant/CS:GO) Round-based gameplay with attackers and defenders. One team plants the bomb while the other defends.

  • Team Deathmatch Two teams race to a target score through kills.

  • Conquer the Zone Teams fight to control a contested area for time-based scoring.

  • Free-for-All Deathmatch Every player for themselves. Score by kills only.


🧩 Game Mode Architecture

  • Created a Base Game Mode Class containing shared logic:

    • Player spawning logic
    • Score tracking (kills, assists, team score)
    • Player elimination and respawn flow
    • Core UI updates and win conditions
  • Each game mode inherits from the base class and overrides logic:

    • Plant the Bomb adds round timer, bomb state, and team switching
    • Team Deathmatch updates score purely via kills
    • Zone Control uses area triggers and timed scoring
    • Free-for-All tracks kills per player with no teams

This inheritance-based structure enables:

  • Easy expansion for new game modes
  • Clean separation of mode-specific logic
  • Consistent spawning and stat tracking across all modes

🔫 Weapon System Architecture

  • Designed a Base Weapon Class that handles core logic:

    • Input handling (fire, reload, switch)
    • Ammo tracking and validation
    • Base events for shooting, recoil, FX triggers
  • Extended through child weapon classes to implement:

    • Firing Modes: Semi-auto, burst, full-auto
    • Custom weapon-specific stats (damage, rate of fire, recoil intensity)

🎯 Recoil System

  • Implemented a recoil pattern system using Unreal Curve Assets

    • Each weapon has a unique Vector2D recoil curve asset
    • Curves designed after analyzing recoil trends in games like Valorant and CS:GO
    • Recoil applied per frame during continuous fire, resetting on stop

🎯 Weapon Accuracy System

  • Tracked state-based shooting error using variables like:

    • Moving, crouching, jumping, firing duration
    • Error gradually increases or decays based on player behavior
  • Used this to dynamically adjust spread cone, hit scan deviation, and even sound cues

🎯 Visual & Audio Feedback

  • Weapon data contained:

    • Animation Montages for different states (idle, shoot, reload, equip)
    • Sound Effects (SFX) for firing, reload, empty clip
    • Niagara/Particle VFX for muzzle flash, casing ejection, impact

🌐 EOS SDK & Party/Lobby System

  • The default EOS SDK lacked access to advanced interfaces for features like Party, **Lobby, and **Cross-Session Presence.
  • To overcome this, I integrated the Redpoint EOS Games SDK, which provides deeper Unreal-native access to EOS Online Services.

🧩 Custom C++ Subsystem Architecture

  • Created a custom Unreal Subsystem (UGameInstanceSubsystem) to manage EOS Party, Lobby, and Presence systems.

  • The subsystem accessed Redpoint’s C++ EOS interfaces directly.

  • Wrote custom C++ implementations for:

    • Party System: Create/Join/Leave parties, manage party invites
    • Lobby System: Host/join private lobbies, pass session metadata
    • Player Presence: Detect online friends, party activity status
  • Subsystems exposed Blueprint-friendly UFUNCTIONs for use in menus, UI, and matchmaking flows.

🔌 Example Use Case

  • Party system connected to Node.js backend via WebSocket for real-time updates.
  • Automatically transitioned party members into a lobby before pushing them into GameLift matchmaking queues.

✅ Benefits of This System

  • Deep integration with EOS without depending on limited default SDK bindings.
  • Modular structure allows swapping out EOS for another service without major changes to the game loop.
  • Full Blueprint and UI access to C++-level features, enabling rapid frontend prototyping.

🎯 Matchmaking & Network Optimization

🔁 AWS GameLift + FlexMatch Integration

  • Implemented real-time matchmaking using AWS GameLift and FlexMatch rules.

  • Created a custom Node.js datagram server to:

    • Receive player data from the game client
    • Submit match requests to AWS FlexMatch
    • Subscribe to AWS SNS (Simple Notification Service) to receive match creation events
  • Parsed and relayed server session details to the client upon match success.

  • Stored match metadata (region, latency, result) and player MMR in MongoDB for future matchmaking use.

⚠ Note: Matchmaking was functional but not deeply load-tested due to focus on gameplay systems at this stage.


🔐 Authentication Token Flow (EOS JWT)

  • Implemented EOS-based player authentication in Node.js.
  • Used JWT tokens from EOS SDK to verify player identity and validity before allowing matchmaking submission.
  • Prevented spoofing or unauthorized access to backend services via token signature verification middleware.

🧠 RPC Optimization & Bandwidth Control

🎮 Client-Side Asset Management via RPC Routing

  • Reduced network usage by moving all non-gameplay critical assets to client-side logic:

    • VFX triggers (e.g., blood splatter, muzzle flash, explosion FX)
    • SFX (gunfire, reload, ambient sounds)
    • UI feedback (score popups, crosshair color changes)
  • Only replicated core gameplay events and states (e.g., health, location, weapon state, score).

🧩 Vector Quantization for Network Efficiency

  • Applied vector quantization to replicated positions/rotations:

    • Compressed 3D vectors and quaternions using fixed precision
    • Reduced size of replicated movement packets

This ensured smoother performance and reduced packet size, especially in fast-paced modes like Team Deathmatch and Free-for-All.


💡 What’s Next – Planned Improvements for Project QuantumLoop

As the core prototype is now functional, I'm planning several system-level and gameplay upgrades to bring the project closer to production-quality standards:

🔧 Core Systems & Architecture

  • GAS (Gameplay Ability System): Replace current modular Blueprint logic with a scalable attribute/ability-based system for cleaner buffs, cooldowns, abilities, and status effects.

  • Replication Graph: Implement Unreal’s Replication Graph to handle scalable actor replication — especially important for larger player counts or open-level maps.

  • Custom Movement Component: Extend UE’s CharacterMovementComponent to include advanced movement states like rope climbing, wall vaulting, and ledge grabbing.

  • Lag Compensation System: Add rewind-based lag compensation for hit registration in high-ping environments using server-side hit validation and frame history caching.


⚙ Mechanics & Feature Enhancements

  • Shooting Mechanics:

    • Implement complex weapon types like pump-action shotguns, scoped rifles, or dual-wield logic.
    • Fine-tune recoil, spread, and bullet impact systems based on feedback and further testing.
  • Movement Abilities:

    • Add rope climbing or grappling hooks
    • Tweak jump heights, air control, and fall recovery for more fluid gameplay feel
  • Performance Optimization:

    • Profile and optimize replication, animation blending, and RPC batching
    • Add LOD and streaming logic for maps if scaling to larger environments

🧪 QA & Playtesting

As part of development, we conducted structured playtests and quality assurance cycles with both internal and external participants:

👥 Internal QA

  • Involved several Tandemloop employees from other teams to test gameplay feel, replication issues, UI feedback, and flow consistency.
  • Logged dozens of gameplay bugs and usability issues which led to iterative improvements in weapon behavior, round logic, and HUD clarity.

🎮 External Playtests

  • Invited a small group of Christ University students passionate about tactical shooters to test multiplayer sessions.

  • Their feedback helped identify:

    • Recoil balance issues
    • Visibility/UI problems during team modes
    • Suggestions for round flow improvements and mode-specific feedback

📢 Public Showcase – IDGS Bangalore

  • Showcased Project QuantumLoop during a playtesting session at an event similar to IDGS (Indian Digital Gaming Society) in Bangalore.
  • Received positive attention and interest from players and indie devs alike.
  • Playtesters appreciated the competitive structure, **low-latency gameplay, and **team-based strategy mechanics.
  • Collected meaningful feedback that directly informed subsequent balancing and UI polish.

These playtest cycles helped validate core systems, exposed edge cases under live network conditions, and provided the team with actionable improvements.

🤝 Open to Learning & Growth

Game development is something I care deeply about, and I’m committed to continuously improving by working alongside experienced developers and industry experts. I'm looking for opportunities where I can contribute meaningfully, while also **learning from those with more experience in areas like gameplay systems, networking, or production workflows.

If you believe you can teach me something — whether through mentorship, collaboration, or working together on a project — I would be genuinely excited to join your team, grow under your guidance, and help build great games.

📬 I’m ready to work hard, stay curious, and grow with the right team.

Medias

Media 1
Media 2