GAME OVERVIEW

Opponents in Crime is an online party brawler, where up to 4 players compete in an art heist to see who steals the most valuable loot.
Genre: Online Party-Brawler
Engine: Unreal Engine 5
Team: 18 members
Platform: PC
Duration: 9 Weeks
Role: Gameplay & Level Designer
SUMMARY
My Contributions
Levels
Gameplay
Art and Visual Scripting
CHALLENGES & TAKEAWAYS
First Multiplayer and Unreal Experience
Developing a multiplayer game was far more complex than single-player work—every system had to run on both client and server, essentially doubling the workload. My first team project with Unreal Engine taught me to focus on only the necessary tools, despite the engine’s vast features. Early in development I experimented with many tools, which help me understand more about the engine at the cost of having a focused approach.
Proactive Teamwork
Our team’s proactive collaboration and creative problem-solving boosted morale and efficiency, showing me firsthand the impact of strong communication and teamwork, but also having similar dynamics can do wonders for team efficiency.
Restricted Level Design
Designing levels from a fixed perspective introduced new challenges with player depth perception, requiring careful adaptation to avoid visual illusions.
LEVEL DESIGN






Green Ring = Traps Spawn Location ||| Yellow ring = Art Spawn Location
red square = most active location

Green Ring = Traps Spawn Location ||| Yellow ring = Art Spawn Location
red ovals = most active location
The map uses uneven path distribution to influence player movement. The left side has more restricted access to the center; it has more loot, while the right side has more paths but fewer hiding places.
Traps near each southern spawn allow early ambush opportunities, while a hidden path connecting spawn points creates an additional flanking route.

Green Ring = Traps Location | Yellow ring = Art Location
white & blue lines = player's paths
brown lines = outer flanking paths
ART & VISUAL SCRIPTING
Animation Blueprints
I created animation blueprints for all characters and assigned them their blend spaces for the animation transition, from idle to sprinting. I use their velocity magnitude to calculate their speed and blend between animations using that parameter. Later, to stream the development process, I moved all the logic into the parent animation blueprint class and created child classes from it. When a new animation was uploaded to the project, it was as simple as adding it to the characters' locomotion.


Traps and art creation
During the design process, we noticed that if players don't have a trap nearby to utilize, or they are at a disadvantage and need to defend themselves, they would feel powerless, as they could only shove their opponent, and for that, they need to be in close range. We understood it would be difficult to overcome this, and we didn't want to make a game that made players feel powerless. If a player "fails," it should be because of their own mistakes or skill, not because the game did not provide enough tools.
A way to solve that was to make art also work as a "trap". Players can throw their art that they are holding to attack and ragdoll their opponents, making it possible to catch up to them or to steal the art they were holding before getting hit.
After the initial design was complete, programmers created the parent classes, gave us tools to create new traps or lootable art, and later we balanced them accordingly.
I created some traps, modified their effects, and added SFX that play when players interact with them.

CONTACT
FIND ME AT: