Senior Unity Engineer — Systems · Multiplayer · VR

Enes Sahin

I build game systems that ship and scale.

  • Shipped on Steam
  • 400K+ registered players
  • VR multiplayer
  • 10+ yrs building games

01 / Featured projects

drag · scroll · arrow keys — click a card for the case study

02 / Systems map

No levels, no percentages. Where it matters, a node points at the shipped work that proves it.

Unity & Engine

  • GameObject architecture
  • DOTS / ECS
  • Jobs + Burst
  • Addressables used in: Cargo Simulator chunk streaming
  • Profiling

Architecture

  • Composition over inheritance
  • DI — Zenject / VContainer
  • SOLID
  • Modular assemblies used in: HG framework, 10+ titles

Multiplayer

  • Client-server model
  • Replication used in: Highstreet VR multiplayer
  • Prediction
  • Packing & compression

VR & Physics

  • IK
  • Joints & constraints used in: Highstreet VR combat
  • Interaction systems

AI & Procedural

  • FSM used in: Cargo Simulator delivery agents
  • Behavior trees
  • NavMesh
  • Procedural roads used in: Cargo Simulator

Backend & Tools

  • ASP.NET
  • MySQL / NoSQL
  • Firebase
  • CI/CD used in: HG Builder — 2+ hrs/day saved
  • Python

03 / Quest log

Experience, newest first.

  1. [2025–2026]

    NocturnForge — Lead Game Developer

    • Founded and led development of My Corp Cargo Simulator, an open-world simulation game, shipped solo on Steam.
    • Grid-based world streaming on Addressables with precision handling; ID-based entity system for decoupled, data-oriented gameplay.
    • IK-driven interaction, FSM + Behavior Tree AI, procedural roads and navigation; custom DI container and editor tooling.
    • Unity
    • C#
    • Addressables
    • Steam
  2. [2023–2025]

    Highstreet Market — Senior Unity Engineer

    • Multiplayer VR/PC physics interaction: full-body IK grabbing, equipping, and wearable-to-weapon transformations.
    • Custom joint/constraint handling that eliminated latency-induced jitter on handheld objects in networked VR.
    • GameObject + ECS/DOTS with Jobs + Burst; built reusable ECS testing infrastructure; mentored on architecture and testing.
    • Unity
    • VR
    • Multiplayer
    • DOTS
  3. [2021–2023]

    Hero Games — Senior Game Developer

    • Architected the Idle Arcade Framework — modular save/load, economy, progression, and live-ops systems behind 10+ shipped and soft-launched titles.
    • Built HG Builder, a Python CI/CD tool (Fastlane + Slack) saving the team 2+ hours daily across multi-project releases.
    • Led an AI-driven 3D conversational character using OpenAI GPT and Google Text-to-Speech.
    • Unity
    • C#
    • Python
    • CI/CD
  4. [2021]

    University projects — Computer Engineering

    • B.Sc. Computer Engineering, Yıldırım Beyazıt University, Ankara (2017–2021).
    • VR combat prototype (HTC Vive): physics-driven gladiator combat with modular weapons, eye-tracking targeting, and foveated rendering for stable VR frame rates.
    • CPU ray tracing engine built from scratch, replicating a GameObject-Component architecture — ray casting, lighting models, reflections.
    • VR
    • Eye tracking
    • Ray tracing
  5. [2019]

    Idle Fisher

    • Top-down idle simulation: automated fishing, resource collection, and progression, with FSM + NavMesh agents.
    • Scalable economy (resource conversion, upgrades, passive income), enemy AI combat, and ScriptableObject-driven data architecture.
    • Integrated analytics, ads, A/B testing, and leaderboards for live-ops.
    • Unity
    • FSM
    • NavMesh
  6. [2017]

    Idle Town — solo, as a student

    • Asynchronous multiplayer Telegram game: 400K+ registered users, 1K+ active.
    • PHP + MySQL backend on webhooks and cron jobs; PvE/PvP/boss combat, clans, hero equipment systems.
    • Leaderboards across progression metrics and in-game payments via Xsolla.
    • PHP
    • MySQL
    • Webhooks

05 / Contact

Open to: Senior/Lead Unity roles — multiplayer, systems, VR. Remote (based in Ankara, TR).

My Corp Cargo Simulator

NocturnForge · 2025–2026 · NocturnForge · Founder & Lead, solo-shipped on Steam

media: AAA-trailer placeholder — real capture pending

What it is

An open-world cargo simulation game for PC, founded, built, and shipped solo on Steam under NocturnForge. A grid-based streaming world with procedural roads, where the delivery loop — packages, inventory, vehicles, characters — runs on fully data-driven systems.

What I built

Architecture

  • Core → Systems → Gameplay layering with composition-based design, and a modular codebase structured with assembly definitions for long-term scalability.
  • ID-based entity system enabling decoupled, data-oriented gameplay: entities are addressed by stable IDs rather than object references, so simulation state stays consistent as the world streams in and out.
  • Custom DI container, logging, and data-driven configuration systems.

World & performance

  • Grid-based open-world streaming built on Addressables, with floating-point precision handling and chunking.
  • CPU and rendering optimization: batching, SetPass reduction, LODs, lighting, and continuous profiling.

Gameplay & AI

  • Core gameplay systems: inventory, packages, delivery, character customization.
  • IK-driven interaction system for dynamic hand placement and interaction.
  • AI with FSM and Behavior Trees, procedural roads, and navigation systems.

Tools

  • Editor tooling and config pipelines built for solo-scale iteration speed.

The hard part

Problem. An open world breaks two assumptions Unity makes: that positions are world-space floats (precision degrades with distance from the origin) and that a gameplay entity is a loaded GameObject (streaming means most of the world isn’t loaded at any given moment).

Constraint. Team size: one. There was no budget to fight the engine — every system had to work with Unity’s lifecycle, not against it, and still ship.

Solution. The ID-based entity system separates simulation state from the loaded representation. Entities exist as data whether or not their chunk is resident; GameObjects become disposable views that attach when a chunk streams in via Addressables and detach when it unloads, with precision handled at the chunking layer instead of raw world-space floats.

Result. The game shipped on Steam, built end-to-end by one engineer. The ambient scene on this site — routes, streaming, deliveries — is a toy version of these exact systems.

Watch trailer (placeholder link)

Highstreet Market

Highstreet · 2023–2025 · Senior Unity Engineer · VR multiplayer physics

media: AAA-trailer placeholder — real capture pending

What it is

A released multiplayer VR/PC project where players grab, equip, and fight with physics-simulated objects over the network. I owned physics-driven interaction and combat as Senior Unity Engineer (Jul 2023 – Sep 2025, remote).

What I built

Physics & interaction

  • Full-body IK-based interaction systems: grabbing, equipping, and wearable-to-weapon transformations for immersive VR gameplay.
  • Custom physics joint/constraint handling that stabilizes handheld objects and eliminates the latency-induced jitter default physics produces.
  • Modular, component-driven combat system built on physics-based interaction.

Multiplayer & performance

  • Developed and maintained live multiplayer VR systems; profiling, debugging, and performance optimization with Unity’s tooling.
  • Worked across GameObject and ECS/DOTS, using Jobs + Burst for performance-critical systems.

Engineering practice

  • Built reusable ECS testing infrastructure — automated world setup and system-level unit testing.
  • Mentored developers on architecture and testing practices.

The hard part

Problem. A handheld object in networked VR is fought over by three authorities: the local player’s hand, the physics engine, and the network state. With latency in the loop, default physics makes held objects visibly jitter — and in VR, jitter on something in your own hand is instantly nauseating and breaks the entire illusion.

Constraint. The fix couldn’t just be smoothing: combat needs held objects to respond crisply, and multiplayer needs both players to agree about hits.

Solution. Custom joint and constraint handling for held objects, replacing the default physics behavior so the hand-object relationship resolves locally and stays stable while network corrections are absorbed where the player can’t perceive them.

Result. Latency-induced jitter on handheld objects was eliminated, keeping VR combat physical and believable over the network on a live, shipped title.

Watch trailer (placeholder link)

HG Idle Arcade Framework + HG Builder

Hero Games · 2021–2023 · Hero Games · Senior Game Developer

media: AAA-trailer placeholder — real capture pending

What it is

A reusable Unity idle-arcade framework plus HG Builder, a Python-based CI/CD tool — together they carried 10+ arcade/idle games to production or soft launch at Hero Games (Nov 2021 – Jun 2023, remote).

What I built

Framework architecture

  • The Idle Arcade Framework: a reusable Unity foundation for rapid mobile game development.
  • Modular systems: save/load, economy & progression, inventory, upgrades, and offline/idle progression.
  • Core gameplay loops — rewards, timers, missions/events — with config-driven balancing.
  • Ads, analytics, and IAP-ready monetization, supporting live ops and A/B testing across the portfolio.

Tools

  • HG Builder: Python-based CI/CD integrating Fastlane and Slack for automated build & deployment workflows — saving 2+ hours daily and enabling scalable multi-project releases.

R&D

  • Led development of an AI-driven 3D conversational character, integrating OpenAI GPT models and Google Text-to-Speech.

The hard part

Problem. One framework had to serve 10+ games that were each different on purpose — different mechanics, different economies, different art. Too rigid and every new game fights the framework; too loose and it’s not a framework at all, just a folder of snippets.

Constraint. Games kept shipping while the framework evolved underneath them — breaking changes had a real cost multiplied across every live title.

Solution. A composition-first architecture: small, replaceable systems behind stable interfaces with config-driven balancing. Games override behavior by swapping parts, not by patching shared code — and HG Builder made releasing the whole portfolio a push-button operation.

Result. 10+ titles reached production or soft launch on the framework, and the build automation saved the team 2+ hours every day.

Watch trailer (placeholder link)

Idle Town

Solo project · 2017 · Solo · built as a student

media: AAA-trailer placeholder — real capture pending

What it is

An asynchronous multiplayer idle game played entirely inside Telegram, built solo while still a university student. It reached 400K+ registered users with 1K+ active players.

What I built

Backend

  • The entire game server in PHP + MySQL, driven by webhooks and cron jobs.
  • Resource, building, and progression systems with upgrade pipelines and time-based mechanics.

Gameplay

  • PvE, PvP, and boss combat with player progression and scaling.
  • Clan system with shared progression and role-based management.
  • Hero system with equipment-based upgrades and power scaling.
  • Leaderboards and rankings across multiple progression metrics.

Live game

  • In-game payments via Xsolla — a real economy, run solo.

The hard part

Problem. 400K+ registered users and 1K+ active players hitting a game that had no game servers in any traditional sense — just PHP, MySQL, cron jobs, and webhooks.

Constraint. One student, a student’s budget, and a stack chosen for being cheap to run rather than easy to scale.

Solution. Lean on the idle genre’s shape: state changes are either explicit player actions (webhooks, cheap to process one at a time) or time-based progression (computed in scheduled batches by cron instead of simulated continuously). The database does the multiplayer; nothing needs a persistent connection.

Result. The game served 400K+ registered users as a solo, pre-graduation project — and taught the systems thinking the rest of this portfolio is built on.

Watch trailer (placeholder link)