SPAM is a high performance ability- and projectile framework that saves you time by handling the “how” of your abilities and projectiles so you can focus on the “what” of your game.
What’s And How’s?
How do I spawn a projectile and make it move towards a given target?
How do I make this spell damage the enemy?
How do I pool projectiles and VFX to make my game more performant?
How do I add cooldowns, animations and sounds to abilities?
How do I make an ability only affect targets that are stunned?
How do I apply and trigger damage/healing over time?
How can I make my lightning spells do extra damage when it rains?
All of these technical details and more are solved for you. It saves you time by enabling you to focus on what you game should be instead of how you implement and optimize abilities and projectiles.
SPAM supplies the logic for spawning, moving, and pooling all your abilities, projectile and VFX so you can focus on the what’s of your game:
What happens when a target takes damage?
What happens when I kill an enemy?
What happens when I stun a character?
SPAM is also easy to integrate with any current systems you have as the code is interface-based and works in an “opt-in” fashion.
Abilitities and projectiles system:
Projectile abilities such as bullets, rockets, and fireball…
Targeted abilities such as heal, shield, lightning strike…
Directional abilities such as shotgun, ground-slam, fire-breath…
Raycast abilities (beams, gunshots…)
Arched projectile movement, customisable with animation curves for easy editing.
Easily add variation to projectile abilities by setting min/max values for arched movement, speed, and spawn time. SPAM will use a random value in this range every cast.
Multiple projectiles per cast.
Zero garbage after initialization.
Area of effect and inter-area line-of-sight check (don’t want to get hit through a wall, do you?)
Wedge and circle telegraph/indicator with in-editor previews.
Automatic pooling of VFX and projectiles.
Event-driven for loose coupling (optional, can be toggled off)
Clean code interface: Just call Ability.Cast(direction) or Ability.Cast(target).
In-editor documentation and validation.
Easy to use custom editors and windows. Add an ability to a character with just the click of a button!
Apply status effects such as stun, burn, shield.
Apply and damage & healing over time.
Pre-conditions: Only apply effects when target has a certain condition (if wet add frozen. If target is undead apply extra damage).
Emergent gameplay: Let the world add and remove conditions to targets and characters and design how your abilities behave under different circumstances.
Apply buffs/debuffs from abilities, world, equipment.
Simple procedual shatter component: Shatter any mesh procedually!
Force shield shader.
Mask cutout shader (used for indicators / telegraphs).
Example UI-prefabs for cast time and ability slot with cooldown indicator.
Indicators / telegraphs can be set to show “time to cast”, filling them up during the ability’s cast time.
High Performance & Zero Garbage Policy