Ilya Firsov – Sobaka Studio Kiborg Game Designer Portfolio

Kiborg is a rogue-lite beat’em up set in a gritty cyberpunk world. Wrongfully imprisoned, you must survive a violent reality show for a chance at freedom

Studio: Sobaka
Team: ~30
Platform: PC/XBOX/PS5
Engine: UE5
Some of my favorite moments came from diving into a crowd of enemies and unleashing a flurry of strikes that were amplified by chained lightning, homing razor blades, and even cyborg legs that left a streak of flames on the ground
IGN – Demo Rewiev
Responsibilities
In the development of Kiborg, I had a variety of responsibilities:
Procedural Generation Systems
I was responsible for designing flexible generation systems that supported a wide variety of content. A key goal was to create high replayability without relying on randomness alone, ensuring that generated runs felt intentional and fair while still delivering surprise and variety.

The system handled procedural generation of:
  • Combat Encounters: including enemy waves, room rewards, combat modifiers (e.g., traps, turrets), and boss/miniboss encounters.
  • Random Events: such as shops, special rooms, and gameplay events.
  • Adaptive Logic: through hidden weight modifiers (e.g., increasing the chance of a healing event when the player is low on health).
  • Multi-Floor Structure: with floor-specific enemy pools, locations, rewards, and events.
Doors like this one show what events and rewards await players at branching paths
Rogue-lite Gameplay
Mutators
Another major area of my work was designing in-run power-ups, with the goal of making the game challenging while allowing players to discover and assemble overpowered, “broken” builds. This section outlines the design behind one of the power-up types, while examples of build configurations can be found in the post-release support section.
Mutators are a reward type with both a benefit and a drawback. They encourage players to enhance their current build while sacrificing paths they’re not pursuing. In some cases, they enable entirely new build archetypes.

For example, the following mutators create a build where each strike spawns a high-damage melee weapon that shatters after one hit:
  • When you take damage while below 60% health, you gain a random melee weapon
  • Each strike costs 1 HP, but you heal for 5 HP on kill
  • Melee weapons deal 25x damage but break after one hit
Boss
Designed the final boss encounter, including full combat mechanics, balance, and thematic integration. Responsible for detailed documentation, tuning attack values, adjusting animation montages, and creating an armor-breaking mechanic that reinforces the game’s theme of overpowered player builds
Balance
I was responsible for balancing almost everything:
  • Pawns (player, 24 enemies, 10 mini-bosses, and 3 bosses)
  • Procedural generation for 7 difficulties
  • Weapons (62 melee weapons, 64 ranged weapons, and 133 modifications for them)
  • Rogue-lite power-ups (56 implants with several effects each, 140 augmentations, and 63 mutators)
  • Statuses (16 statuses with different effects for the player, regular enemies, and bosses)
  • Meta-progression (140 upgrade effects and an economy designed for 25 hours of progression)
  • And a lot of other systems
The game relied heavily on Unreal Engine Data Tables for storing balance values, and manual editing proved time-consuming and inefficient. To address this, I migrated the majority of balancing work into structured Google Sheets and implemented a pipeline for exporting directly to CSVs compatible with Unreal’s Data Tables.
An example of a formula that pulls data from the balance sheet into an export-friendly format
This setup enabled:
  • Formula-driven calculations that fetch balance data across systems
  • Automated data export, minimizing copy-paste and manual errors
  • Bulk edits, allowing fast and reliable large-scale balance changes
As a result, the balance workflow became significantly faster, allowing for more frequent internal playtests and enabling a greater degree of experimentation during development.
Post-Release Support
I was doing some post-release support: polishing balance, designing features for content updates, and handling general polish. As an example of my work, you can check this patch note. The following highlights reflect six days of my work:
  • Green highlights indicate changes I implemented personally
  • Yellow highlights indicate changes I initiated, but their technical implementation was handled by engineers
Game Feel
I worked with several areas that can fit the “Game Feel” category, including camera, controls, and UX
Camera
Worked with the Lyra framework to set up camera modes with the goal of ensuring smooth and intuitive behavior. I set up the camera for:
  • Regular combat, with several levels of distance that smoothly transition to provide a better view depending on the number and types of enemies
  • Third-person shooter mode, since the player can aim with ranged weapons. I had to ensure it didn’t obstruct beat ’em up gameplay or disorient players with sudden changes
  • Target lock and rapid-fire modes, both of which subtly zoom in to give better focus on the player’s current target
A function that I wrote for the camera in the player character checks an array of alive enemies and, based on their types and number, changes the camera mode
UX
I created interface mockups in Figma. Below are examples of my work on the HUD. On the panel to the left, you can switch between mockups and read the descriptions
As development progressed, my role shifted to overseeing the UI/UX department. I coordinated the workflow between the UI/UX designer and the UI programmer by defining feature requirements, requesting mockups, and offering detailed feedback throughout the process. Together, we ensured the interface was both functional and visually coherent