Adaptive Scare Framework is a framework designed to increase the horror game experience, in both Singleplayer and Multiplayer, by giving you more control over scare events based on states created in blueprint.
A simple example level where you play as an robot vacuum cleaner on a scary floor, demonstrating the system, is included.
Interested in our product? Be sure to check out the videos to see if it meets your needs. Got questions? Join our Discord community—our team is happy to help!
Possibilities
Sanity meter: Create you own custom sanity meter where scares escalate as the player's 'sanity' decreases.
Strategic Tension: Trigger scares when the player’s flashlight is off and they’re standing still, plunging them into darkness.
Terrifying Timing: Amplify vulnerability by scaring players with low health.
Eerie Exploration: Play ominous sounds if players linger in one spot too long, keeping them on edge.
Sinister Ambushes: Launch events based on proximity to cursed artifacts or unsettling objects.
False Security: Delay scares until players feel safe, such as after unlocking a door or solving a puzzle.
Group Dynamics: In multiplayer, target the most isolated player or the one with the least equipment.
Events
Executed on a pawn component, network optimization and replication is done for you.
Three distinct event types are supported:
Gameplay Tag Only: For general-purpose event triggers.
Tag and Location: Perfect for location-specific scares.
Tag and Actor: Target specific actors within your scene.
Scope Execution:
Server-side Control: Execute events locally (target-specific player) or globally (all relevant players).
Client-side Execution: Events always execute locally on the target client.
How It Works:
Add your gameplay tags you wish to use as events in a data asset file.
Bind the events on the AdaptiveScarePawnComponent and decide what to do. Play sound effects, particles or spawn actors, your choice.
Execute your events on server or client from the AdaptiveScareWorldSubsystem.
States
A state represents a gameplay condition or context that influences a float value. This float value can then be used as a threshold to determine whether an event should be executed.
How It Works:
Each state calculates a float value, and the total value can then be used as a threshold when executing an event. An optional weight can be used to influence the total value (Weighted average).
Example:
A flashlight state returns 0 when the flashlight is on, indicating no scare potential.
When the flashlight is off, it returns 100, signaling a high scare potential.
Multiple states can be combined, assigning each a unique weight to control its impact on the final value.
Example: A player movement state and flashlight state. The flashlight state might have a weight of 2, doubling its importance compared to movement.
Using our product in your game? Let us know! We'd love to help promote your game to our community.