AshenTrials is an Unreal Engine trial that challenges you to navigate an urban parkour world and capture a hidden flag under the clock.
Players must traverse a field of randomly placed platforms, dodge falls off tall buildings, and locate a hidden flag before time runs out. Falling too far or letting the timer expire triggers Game Over.
-
Spawn Platforms: On BeginPlay, the game mode scatters
InitialPlatformsaround your starting height in a planar field. Each platform’s Z is randomized within ±PlatformVerticalSpacing around the player, and X/Y are randomized within ±PlatformHorizontalRange.You’ll see parkour information logged in the Output Log (Window → Developer Tools → Output Log):
- LogTemp: Parkour defaults (platform count, spacing)
- LogTemp:
Spawning 500 platformsonce before the loop. - LogTemp: dozens of
Spawn @ X=... Y=... Z=...for each platform.
-
Track Height: Each Tick, the game mode compares the player's current Z position against the highest Z they've reached so far.
-
Game Over on Fall: If the player falls more than FallThreshold below their peak height, the BlueprintImplementableEvent
OnGameOver()is fired. -
Countdown Clock: A countdown timer starts at
TimeLimitseconds and displays on-screen. You will see a yellow debug message in the viewport each second showingTime Left: N, and it firesOnCountdownUpdate(N)to update any UI. When the clock reaches zero,OnTimeExpired()is fired and the game is ended viaOnGameOver().Note: this countdown display and event logic are implemented in C++—you must rebuild the project (or use Live Coding) before pressing Play to see the timer.
-
Hidden Flag (
AFlagActor): The game automatically spawns a flag at a random parkour location using default C++FlagActorClass. When the player overlaps it,OnFlagFound()fires, marking a successful finish.
APlatformActor (Source/AshenTrials/Variant_Platforming/PlatformActor.h/.cpp)
- Actor representing a single platform using a scaled cube mesh (0.5×0.5×0.1) with randomized flat color.
APlatformingGameMode (
Source/AshenTrials/Variant_Platforming/PlatformingGameMode.h/.cpp) - Main parkour GameMode: handles platform scatter, countdown, flag spawn, height tracking, and Game Over logic.
- PlatformActorClass: Class of the platform actor to spawn (now defaults to C++
APlatformActor, no need to assign manually). - InitialPlatforms: Number of platforms to generate initially.
- PlatformVerticalSpacing / PlatformHorizontalRange: Controls platform placement spacing.
- FallThreshold: Maximum drop (below highest reached point) before Game Over.
Ensure your project’s Default GameMode is APlatformingGameMode (or its Blueprint subclass) so the parkour logic runs automatically. No manual map overrides are required.
Press Play; platforms and flag spawn automatically around you. Open the Output Log (Window → Developer Tools) to view parkour details (mode defaults, spawn count, spawn positions, flag location). Live Coding (Ctrl+Alt+F11) hot‑reloads C++ changes—no editor restarts needed for parkour behavior updates.
If some gaps feel too large or your jump feels too weak, you can adjust these settings: PlatformVerticalSpacing (in BP_PlatformingGameMode or default C++ value): lower the value (default 50) to reduce vertical gaps. PlatformHorizontalRange (in BP_PlatformingGameMode or default C++ value): lower the value (default 200) to bring platforms closer.
- Jump Z Velocity: increased by default to 1000 in code (parkour mode) so you can jump much higher.
- Gravity Scale: reduced by default to 1.5 in code (parkour mode) to enable longer hang time.
- Jump Max Count (in BP_PlatformingCharacter): increase for extra mid‑air jumps.
These options let you fine‑tune how challenging the Parkour course feels.
This README will be updated as platforming features evolve.