Back to Projects

Back to Projects

PROJECT

PROJECT

Shadow Step

Shadow Step

Shadow Step

Out of Bounce is an action-packed couch/online party game where you battle it out as miniature tanks in fast-paced, chaotic arenas.

Out of Bounce is an action-packed couch/online party game where you battle it out as miniature tanks in fast-paced, chaotic arenas.

Out of Bounce is an action-packed couch/online party game where you battle it out as miniature tanks in fast-paced, chaotic arenas.

Gameplay

Enhanced Input

UI

DURATION

20 Weeks

ROLE

Project Manager / Programmer

TEAM SIZE

5

PLATFORM

PC

ENGINE

Unreal Engine

OVERVIEW

OVERVIEW

Out of Bounce is a casual couch/online multiplayer game for 2-4 players. It's an action-packed, party game that combines tactical thinking with chaotic fun. Players control miniature tanks in a fast-paced battle arena, using clever maneuvers and powerful turrets to take down opponents. The gameplay is amplified by various power-ups and abilities, ensuring each round offers unique and unpredictable moments. The goal is to outsmart your rivals and be the last tank standing.


Out of Bounce is a casual couch/online multiplayer game for 2-4 players. It's an action-packed, party game that combines tactical thinking with chaotic fun. Players control miniature tanks in a fast-paced battle arena, using clever maneuvers and powerful turrets to take down opponents. The gameplay is amplified by various power-ups and abilities, ensuring each round offers unique and unpredictable moments. The goal is to outsmart your rivals and be the last tank standing.


TRAILER

Worked On Systems

EXPLANATION

CODE

Gameplay

The Challenge:

We needed a fast dungeon Generator to create unique layout every time a player enters the dungeon. sizes up to 500x500 units per dungeon

My Solution:

I created a custom procedural dungeon generator combining Binary Space Partitioning (BSP) for the structural layout and Cellular Automata for organic cave-like structures. To ensure every map is fully playable, I integrated a Flood Fill algorithm to eliminate isolated pockets and developed a custom corridor-checking algorithm to elimate desgin errors.

Extra:

To speed up our workflow, I didn’t just stop at the generator itself: I built a interactive in-engine tool. This allowed me to instantly test seed generation and even paint custom layouts by hand,

EXPLANATION

CODE

State Machine / AStar

The Challenge:

We needed an intelligent, role-based AI system where enemies dynamically form squads with Leaders and Minions, defend valuable assets in the mines, and intelligently fallback to standalone behaviors if they are separated from their group.

My Solution:

I built a state machine with six behaviors: Idle, Grouping, Searching, Patrolling, Retreating, and Attacking. The system is driven by a 'Group Manager' from Boss enemies, as well as valuable points of interest around the dungeon that enemies patrol to protect. Everything is designed so that enemies look for groups to fight alongside; however, if no groups or valuable spots are nearby, they will patrol alone and fight independently.

Extra:

To complement the chase system, I developed a custom AStar tailored specifically to my dungeon layouts. This ensures enemies can relentlessly pursue the player without getting stuck on walls, environmental decorations, or interactable objects like ores and chests.

EXPLANATION

CODE

2D Animation

The Challenge:

To support our pixel-art art style, we needed a custom animation controller capable of handling all pixel-based sprite animations across both the player and diverse enemy types. The core challenge was creating a highly generic, reusable system that featured a robust event architecture that triggers on various animation states.

My Solution:

I developed a highly decoupled, ScriptableObject-driven animation controller that requires only a movement component to function. The system automatically calculates the entity's directional vector, handles sprite rendering, and fires precise frame-specific events based on the current animation state. By leveraging ScriptableObjects, adding new actions or behaviors is entirely data-driven and requires zero extra code.

Screenshots

COPYRIGHT © TOBIAS HÖFLMEIER 2026