SPAM - Spell, Projectile, Ability, Magic Framework (Lite)

$19
Publisher Infinite Void
File size 1.38MB
Number of files 257
Latest version 1.0.0
Latest release date 2023-04-07 02:59:10
First release date 2023-04-07 02:59:10
Supported Unity versions 2018.4.2 or higher

Discord | Documentation | Forum | Changelog


------------------------

NOTE: This is the lite edition of SPAM - Spell, Projectile, Ability, Magic Framework.

The lite edition is a fully functional and high performance ability-/projectile framework, but additional (and future) features such as the powerful and versatile "Conditions System" is not included.

You can use this edition if you don't need these additional features, or as an evaluation if SPAM is the right fit for your project.


If you decide to upgrade to the standard version at a later point, you will get the price of this edition as a discount on the full package price.

------------------------


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?

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.


Features

  • 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!

Additional features:

  • 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

The framework is meant to be highly performant and optimized so you can focus on your game instead of digging through the profiler. The only garbage allowed from the framework is during startup and initialization. This means that as soon as your ability is ready it's garbage free to cast (spam) again and again and again.

All components turn themselves off/on depending on their internal state so there's no unnessecary update loops running during gameplay.


Extendable & Pluggable

SPAM is built to be extendable and you can easily add effects that aren't supplied in the base framework. Derive your custom effect from the effect base class and the framework will automatically pick it up and let you add the effect to your abilities.

Effects are applied by checking for an interface at their target, so you can easily use this framework side-by-side of your existing solution. All you have to do is to make sure the target has a component that implements the given interface the effect is trying to apply and you're good to go.

Examples of some built-in effects:

  • Damage
  • Heal
  • Add explosion force
  • Pull towards
  • Shield
  • Teleport
  • Stun
  • Shatter (procedual shatter behaviour supplied)
  • Add Buff/Debuff (actual handling buffs and debuffs not included)