
Prototypes & Tools
Mesh Chainer
This tool makes it easy to place multiple meshes along a spline, repeating them as needed. If needed multiple meshes can be used and automatically randomized along the spline.
First, meshes are assigned into the array, in the editor. Each mesh gets a section, by default the section lengths are auto-adjusted based on the dimensions of the chosen mesh, though this can be tweaked by enabling "Custom scaling", and entering a custom value in "Custom section length"
By default, the "Only full length meshes" box is ticked to keep all the meshes the same width, basically skipping placement if there isn't enough space, but it can be turned off if needed. Collision can also be toggled on or off for all meshes at once. It also possible to assign multiple meshes and randomize when chaining them together.

Demonstration

Example use case

Example use case
It's useful for set dressing, especially structures, or any type of repeating items, and it also comes in handy when creating level blockouts.



Sword & Shield Combat Demo
In this prototype I created a short game featuring a first person sword and shield combat with emphasis on creating a short but polished experience.
Each player action (each swing animation, sheathing etc) has it's own fine tuned subtle camera shakes to enhance impact and weight. Both the player and enemies use randomized attack animations, but trigger corresponding hit reactions on the receiving end for consistent visual feedback.
I tweaked the player movement, camera, and controls to keep combat feeling fluid and readable. I balanced enemy spacing and approach speeds to give players room to react without breaking the pace of combat, keeping encounters challenging and cinematic.





AI Behavior
The AI detects the player, moves toward them, and attacks when in range. While effective, this approach is quite could be expanded with more dynamic behaviors such as evasive maneuvers in the future.
Troop Spawn & Order System
In this prototype I created a component which allows players to summon and another component to position them. Players can deploy up to six troops at a time, forming a cohesive unit. Then, each unit can be strategically placed in different areas while maintaining its formation.

At its core, the system works by line tracing from the camera as the player marks positions for troop deployment. The troops are then spawned at these marked locations, which are stored in an array. This array is used to calculate an average point, allowing the troops to move collectively through the troop commands component.
All spawned troops are stored in a map, where their unit number is determined by an integer value. When the player selects a unit (e.g., Unit 1), a C++ function in the blueprint retrieves all troops with the corresponding integer value from the map. These troops are linked to their previously calculated average point already, which can be moved to reposition them all at once.

Spawn Component

Demonstration

Order Component
Catapult
Created for a fun cozy game in development, where the player can posses objects. It launches the player to a predetermined landing spot by automatically calculating the required velocity and force. For ease of use, it can be placed directly into the level, where it will automatically face the landing zone.
When interacted, the catapult gets lowered and the player has X seconds to hop on before launch. If the player isn't using the catapult as a ball, they won't be launched all the way.
The landing zone, which is a separate actor will ease down the player's velocity when it enters the volume for a smoother landing experience.



Demonstration
Developer Menu
This prototype is a debug tool created in C++, for a simple stealth game. It allows game testers or developers to modify gameplay elements in real time, such as adjusting the enemy chase radius and modifying player health (applying damage or restoring it). Additionally, it includes options to trigger a ragdoll effect on the player, unlock all doors in the level, or restart the level instantly, providing flexibility for testing and debugging. The AI's chasing and patrolling tasks within the behavior tree were also implemented in C++.



Demonstration
Boss Battle Prototype
In this prototype, I worked on various attack types and patterns for a boss fight featuring a massive enemy. Additionally, I focused on the player character's abilities, like dashing, slow motion, weak spots to shoot and 3Cs.
I made a simple system which triggered different animations on the enemy blueprint, resulting in different types of attacks, combos and environmental changes. Then I edited and created different values to balance the experience as my team and I gathered feedback from playtest sessions.
Many thanks to Mukund Narayan for implementing the bow mechanic and dynamic level changes. Also, a big shoutout to Viktor Ganzha and Erik Löfving for their work on creating two distinct levels and Fredrik Nilsson for sound design!



Wizard Arena
In this prototype, the player is thrust into a 2v2 underground wizard battle arena, where they face off against an AI team alongside their AI teammate. There is one small problem though, the player's character haven't mastered any attacking spells yet, so they must rely solely on deflecting incoming attacks to emerge victorious.

Gameplay
Path Follow Component
This prototype was developed for a game concept where players must escort a cat during an alien invasion. I created a component that allows the cat to follow a predefined path through the level. The path is based on a spline, making it easy for level designers to adjust as needed.
If the cat is removed from the path, whether it's captured by an alien (until the player intervenes) or placed/spawned away from the starting point of the path, it will automatically locate the nearest point on the spline and resume following it to the end.

Follow path, start to end
