
Achylys
Toon Tanks is a stylized third-person tank shooter where the player must destroy all enemy turrets in each level to progress. The game is controlled from a top-down camera and features precise aiming through a dynamic crosshair system. Built using Unreal Engine 5 and C++, this project helped me deepen my understanding of the engine’s class system, component architecture, and game state management.
To ensure Achylys not only played well but also looked visually distinct and atmospheric, I placed a strong emphasis on aesthetic cohesion and optimization using a combination of lighting, post-processing, procedural tools, and LOD systems.
Lighting & Shadow Design
Given the game’s core mechanic revolves around shadow manipulation, lighting wasn’t just cosmetic—it was functional.
-
I carefully designed dynamic lighting setups to cast deep, readable shadows that aligned with gameplay needs.
-
Spot and directional lights were used to sculpt tension in stealth zones, while soft ambient lighting helped create safe or “breathing” areas.
-
Light importance volumes and shadow resolution scaling ensured performance stayed consistent even with multiple shadow-casting lights.
​
Post-Processing for Visual Identity
Post-processing helped define Achylys’s surreal, stylized tone while reinforcing player readability.
-
I used color grading to create a cold, muted world punctuated by bright highlights in shadows and weakpoints.
-
Vignette, chromatic aberration, and subtle bloom were layered in to give the game a cinematic feel without obscuring gameplay clarity.
-
For stealth tension, I dynamically adjusted exposure and saturation during high-alert moments or inside shadows, creating visual contrast that matched the player’s state.
​
Procedural Content Generation (PCG)
To support the roguelike structure, I utilized Unreal Engine's PCG framework to generate layouts dynamically.
-
Environments were constructed using modular tiles and volume-based rulesets, giving each level a unique configuration while maintaining performance-friendly layouts.
-
Shadow-casting objects were spawned procedurally with constraints to ensure proper lighting and interaction opportunities for the player’s shadow jump mechanic.
​
Level of Detail (LOD) Optimization
Performance was a constant consideration during development, especially with the use of real-time shadows and procedural layouts.
-
I implemented custom LOD meshes for environmental assets and enemies, reducing polygon counts based on camera distance.
-
Combined with culling volumes and distance-based actor disabling, this ensured high frame rates even in large, shadow-heavy scenes.
-
I used HLOD systems for complex modular structures, merging distant meshes to reduce draw calls efficiently.
​


Shadow Detection
Shadow detection is performed using a BoxCast system; once a shadow is found, its material highlights to indicate interactivity. Players can then enter the shadow to navigate undetected.
There are two shadow types:
-
Static Shadows are tied to stationary objects. Upon entry, their collider bounds activate to constrain the player's movement.
-
Movable Shadows belong to dynamic entities like enemies and NPCs. Inside these, the player can scan for weak points and selectively dismember limbs, affecting enemy behavior—cutting an arm disables attacks, while slicing a leg severely reduces mobility. Limb dismemberment also applies tick-based damage over time, creating long-term tactical effects.
​


Static Shadows being highlighted
Movable Shadows being highlighted
To support player experimentation and risk-reward strategies, I implemented a placeable temporary checkpoint system. When inside a static shadow, players can drop a checkpoint that becomes their respawn location if they die while it's active. Upon respawn, the checkpoint is consumed.
The game also features a Soulsborne-inspired save system, which tracks player position, key items, health, and resource states. Unlike traditional bonfire systems, it doesn't restore health or refill resources, encouraging careful progression.

'Bonfire' Checkpoint (Save progress here)

'Bonfire' Checkpoint (Progress Saved indication)

Temporary checkpoint ( Shoots a beam of light for player to understand where they placed it)
Body Dismemberment
​
One of the standout mechanics in Achylys is the enemy limb disfigurement and weakpoint system, which integrates tightly with the core shadow-jumping mechanic. When the player enters an enemy’s movable shadow, they gain a strategic stealth advantage—the enemy's anatomical weakpoints (e.g., arms, legs, head) become clearly highlighted through a custom material or outline effect.
While inside the shadow, the player can hover over and click on any revealed weakpoint to instantly slash that specific limb. Each limb responds with unique consequences:
-
Arm slashed – disables the enemy's ability to attack.
-
Leg slashed – severely reduces the enemy's movement speed.
-
Multiple limbs – can gradually disable the enemy completely, making them vulnerable.
​
Each successful weakpoint attack also builds a meter (execution gauge). Once the meter is filled, the player can initiate a cinematic shadow execution, allowing them to decapitate the enemy in a single strike—bypassing health entirely for a satisfying stealth kill. This system adds layers of tactical decision-making, rewarding players who plan their attacks and exploit openings from within the shadows.
This entire system required:
-
Dynamic weakpoint detection and highlighting inside enemy shadows.
-
A modular damage system tied to specific bones or limbs.
-
Real-time animation state changes and behavior shifts based on lost limbs.
-
A bleed-over-time mechanic causing sustained damage after dismemberment.
-
A meter buildup system with visual feedback and triggering conditions for executions.
​



Weakpoints shown when in enemy shadow
Enemy when the leg is cut
Enemy when the arm is cut
Additionally, I developed a robust and user-friendly settings menu designed to give players full control over performance, visuals, and input customization, ensuring accessibility across a range of hardware and play styles.
The settings system includes:
Display & Graphics Options
-
Resolution and Screen Mode: Players can switch between multiple resolution presets and toggle between fullscreen, windowed, and borderless window modes. This ensures the game runs smoothly on both low-end and high-end systems.
-
Texture & Shadow Quality: Graphics presets allow players to independently adjust texture resolution and shadow detail levels. Lowering shadows or textures can significantly boost performance on mid- to low-spec hardware without impacting gameplay clarity.
-
V-Sync and Frame Cap: Options to enable vertical sync and limit frame rate are provided for screen tearing prevention and GPU load management.
​
Control Customization
-
Mouse Sensitivity Sliders: Fine-grain control over both horizontal and vertical sensitivity for precise player tuning, especially important in stealth and combat scenarios where accuracy matters.
-
Toggle vs. Hold Input Modes: Players can choose between toggle or hold behavior for crouch and sprint actions. This not only improves accessibility but allows different types of players (e.g., casual vs. competitive) to tailor the feel of movement and stealth interactions.
​
Backend Implementation Highlights
-
Settings are saved and loaded persistently across sessions using a custom configuration system.
-
All options are runtime-adjustable, meaning players can apply changes without restarting the game.
-
The UI is designed with clarity in mind—featuring intuitive sliders, dropdowns, and tooltips explaining how each setting affects performance and gameplay.
​




Final Thoughts
​
Creating Achylys was more than just a technical exercise—it was a chance to build a world where mechanics, art, and systems all support a single core idea: controlling shadows to control outcomes. From designing responsive stealth mechanics to optimizing visuals and building immersive environments, this project helped me push past my comfort zone and grow both as a programmer and as a designer. It made me fall even more in love with the craft of game development.
​
​
Gameplay:

