Gatling - Projectile & Ballistics System
AnkleBreaker
$54.45
$108.90
50%OFF
(no ratings)
Jump AssetStore
Projectile & Ballistics System. Thousands of live projectiles in 2D and 3D, hitscan and travel time in one pipeline, and impact rules authored as assets.💬 Join the AnkleBreaker Community! 💬Got a question, feedback, or a feature you'd love to see? Join our Discord - we actively improve our assets based on your input, and it's where we drop our latest announcements and run giveaways.👥 Discord: 👉 discord.gg/AnkleBreaker🌐 Website: 👉 anklebreaker-studio.com💥 Every Projectile, In One System 💥Shooters, action games and physics sandboxes all need the same thing: spawn, simulate and pool projectiles, resolve hits, and present muzzle, impact and explosion FX - usually rebuilt from scratch on every project.Gatling ships that whole stack as ScriptableObject-authored, damage-agnostic content. You author weapons, projectiles, impact behaviours and surface materials as assets, drop one rig in the scene, and fire - from a component, from three lines of code, or from your own netcode. Everything runs on a central fixed-step simulation with swept, anti-tunnelling collision, so a round never passes through a wall because the frame was long.It never applies damage. An impact is an event on a bus carrying the physical context - speed, energy, angle, surface, damage multiplier - and your game decides what a hit means. There is no health component to inherit from and no assumption about your gameplay.And going online later is not a rewrite. This package is networking-agnostic by design: it carries no networking dependency at all, so a solo project never sees a line of networking code - but it does carry the seams a netcode needs. Server-authoritative multiplayer is the separate AnkleBreaker Gatling FishNet module, which drives these exact same assets. It is not included here, and no assembly in this package references FishNet.🎯 Real Ballistics, Out of the Box 🎯Ballistic zeroing - you configure a hit distance, never an angle. Set a weapon to zero at 50 m and the solver finds the launch angle for you, in 2D or 3D, and it holds at any simulation step rate. Four modes (Absolute, Adjustable, Adaptive, None), plus a high-arc solver for mortars and catapults and a quantised solution cache so it stays cheap. In third person the muzzle sits off to the side of a centred crosshair - the shot still converges on what you aimed at.Hitscan and travel time in one pipeline. The same weapon asset can resolve instantly up close and simulate beyond. Hitscan fast-forwards the real trajectory through the same maths, so a tracer draws the arc the shot flew instead of the straight chord between its ends.Impact behaviours you compose, not code. Stop, Stick, Bounce, Ricochet, Explode, Penetrate - ordered, shareable rule assets, gated by surface layer, impact speed, energy and grazing angle, and falling through to the next rule when one cannot apply. The same round skips off a plate it grazes and drills the plate it meets square, because the gate is the angle and not the prop.Penetration that reads the wall. Surface materials carry an entry threshold, a flat and a per-metre speed loss, a maximum penetrable thickness and an exit floor. Thickness is measured on the collider's own shape, so a round travelling along a beam is not mistaken for a round going through it. AP ammunition becomes a data change - unlimited material types, at zero Unity-layer cost.Wind that bends the shot after it leaves the muzzle. Author it as a preset, a scene component, a Unity WindZone with no integration code to write, or a box or sphere volume for a wind that only exists somewhere. It is a pure function of the simulation clock - no state, no random - so a gust is reproducible, and it runs across the job system: Burst-compiled when Burst is installed, ordinary C# jobs when it is not.2D and 3D, not 3D with a 2D mode. One SimulationSpace toggle switches the gravity source and the collision backend. Zeroing, penetration, ricochet, wind, tracers, pooling - every feature works in both dimensions, with dedicated 2D side-view and 2D top-down samples.🧩 Core Building Blocks 🧩ProjectileSimulationManager - one deterministic, fixed-step, data-oriented sim per scene, tunable from 10 to 240 Hz.ScriptableObject content - weapons, projectiles, impact rules and surface materials are assets, shareable and diffable, and the same assets drive solo and networked play.ProjectileEmitter - a no-code component for turrets, traps and AI: set a fire point, fire from UnityEvents or animation events, preview the arc with a Scene View gizmo before you press Play.Static zero-alloc event bus - fire requests in; fired, impact, expired, bounced, penetrated, exploded, stuck, out-of-range and removed out. Every hit reports object, point, normal, velocity and kinetic energy. No singleton to reference.🚀 Why Gatling? 🚀Damage-agnostic - it reports the physics of every hit and never imposes a damage model, so it drops into any combat system.Three fidelity modes - pure deterministic, hybrid PhysX handover on impact, or full Rigidbody, chosen per projectile.Impact marks that ride targets - decals, stuck arrows and planted bodies follow the platform, vehicle or player they hit, and transfer onto ragdolls and wrecks at their exact world pose.Built to scale - pooled from end to end, with no steady-state allocation. Measured on the shipped stress bench: about 10 800 live simulated projectiles at 60 fps, and about 2 500 once every one of them owns a GameObject - which is exactly what the distance and frustum culling, the far LOD band and the GameObject-free instanced tracer are there for.Profiler-honest - Gatling.Step, Gatling.Visuals and Gatling.Wind markers, plus zeroing-cache hit-rate counters, so a busy frame is attributed rather than guessed at.Headless-ready - Mute Audio, Mute Visuals and Mute Effects run the package with no presentation at all: a dedicated server fires, sweeps and lands the same shots without instantiating a single visual.🛠 In the Editor 🛠Configuration window - weapons, projectiles and surface materials in one place, with a live trajectory preview. An empty Default Projectile slot creates and assigns a definition in one click.Test Fire - fires the asset you are tuning down a graduated range, in 3D, 2D side view or 2D top down, past a station of the four penetrable materials at that layout's own ballistic scale.Documentation window - 41 pages across four tabs (Get Started, Manual, Scripting, Reference), searchable, with a guided tour and one-click links into the windows, menu items and assets each page describes.Examples window - browse every sample scene and open it.Themed inspectors for every Gatling component and asset, and a dependencies installer that never installs anything without an explicit click.📦 What Is in the Box 📦13 sample scenes - three showcase halls (3D, 2D side view, 2D top down), a bullet-hell arena, a staged battlefield, the 3D / 2D / third-person ranges, penetration, thrown objects, traps and turrets, wind, and a stress bench.Pooled native effects and audio - muzzle, impact and explosion slots driving ParticleSystem prefabs (or VFX Graph assets when that package is installed), and fire, flight-loop, impact and explosion audio on pooled sources with a voice budget. Switch them off per definition and drive FMOD or Wwise from the same events instead.Full C# source. No DLLs.🛠️ We also offer other quality & productivity tools for Maps, Cinematic Cameras, Manager Initialization, Radial Menu and more.Unity Version: 6000.0.41f1 (Unity 6.0 LTS) and newerRender Pipelines: The runtime is pipeline-independent - its code draws through your own materials and standard ParticleSystems, and ships no shaders or materials of its own; the two unlit shaders and every material in the package are sample and starter content. The sample environment art is authored for Built-in; in a URP or HDRP project Gatling offers to convert it on import, or run Tools > AnkleBreaker > Gatling > Material Converter > Convert Sample Materials yourself. Your own materials are never touched. On HDRP the sample EFFECT shaders are not covered (they declare no LightMode tag, which HDRP ignores): props and environment convert and render, sample impacts, trails and marks do not - assign your own effect prefabs to the same slots.Scripting Backend: Mono / IL2CPPPlatforms: All platforms supported by UnityPhysics: 2D and 3D collision backends behind ICollisionBackend, selected by one SimulationSpace toggle. Swept anti-tunnelling collision, batched as one parallel job per step.Required Dependencies: AnkleBreaker Core (free) - installed on demand from Tools > AnkleBreaker > Dependencies Installer > Gatling, never on your behalf. Until it is present Gatling's assemblies are left out of the compilation rather than failing, so the project imports with zero errors.Optional Dependencies: AnkleBreaker Managers Loader (Gatling's managers boot through it when present and on their own when not), Burst (the wind and sweep jobs are Burst-compiled when installed and run as ordinary C# jobs when not), VFX Graph (effect slots then accept VisualEffect prefabs as well as ParticleSystems, detected automatically).Input: Runs under any Active Input Handling setting - legacy Input Manager, Input System package, or both. No hard dependency on the Input System.Namespaces: AnkleBreaker.Gatling - one using covers the whole runtime API - alongside AnkleBreaker.Gatling.Managers, .InputSystem, .Examples and .TestRange, and AnkleBreaker.Gatling.Editor with its editor sub-namespaces.Zeroing Modes: 4 - Absolute, Adjustable, Adaptive, None, plus a high-arc lobbed solver and a quantised solution cacheImpact Behaviours: 6 - Stop, Stick, Bounce, Ricochet, Explode, Penetrate. Ordered rule assets, gated by surface layer, impact speed, energy and grazing angle, falling through to the next rule when one cannot apply.Penetration: Per-material entry threshold, flat and per-metre speed loss, maximum penetrable thickness and exit floor. Thickness is read from the collider's own shape.Simulation Fidelity: 3 modes - Deterministic, Handover-on-impact (pooled kinematic body handed to the physics engine when it lands), Full RigidbodySimulation Rate: 10-240 Hz - the zeroing guarantee holds at any rateWind: Four authoring routes (preset asset, scene component, Unity WindZone, box or sphere volume), a pure function of the simulation clock so a gust is reproducible, position-dependent sources on the job system, capped at 8 local sources and said out loud rather than billed silentlyPerformance: Measured on the shipped stress bench - about 10 800 live simulated projectiles at 60 fps, about 2 500 when each one owns a GameObject visual. Pooling throughout (projectiles, visuals, Rigidbody bodies, effects, audio sources, tracers), distance and frustum culling with hysteresis, a far LOD band, and a GameObject-free instanced tracer mode. Gatling.Step, Gatling.Visuals and Gatling.Wind Profiler markers.Editor Windows: Configuration (Weapons / Projectiles / Surfaces) with a live trajectory preview and a Test Fire bar that sends the asset you are tuning down a graduated range in 3D, 2D side view or 2D top down, Documentation (41 pages, four tabs, searchable, guided tour), Examples, Welcome, Dependencies Installer, Material ConverterSample Content: 13 sample scenes plus a Test Range, an optional Managers Loader sample tier, 5 ready-made player rigs (FPS, TPS, FPS+TPS, 2D side view, 2D top down), 3D and 2D simulation rigs, and a starter weapon and projectileUnit Tests: 166 test files - EditMode throughout, plus one PlayMode fixtureSource Code: Full C# source included. No DLLs.Networking: Not included. This package carries no networking dependency: no assembly references FishNet, there is no using and nothing to install - the module is named in the documentation and in the package keywords, and that is the whole of it.Damage: Not included, by design. Gatling reports impacts with their physical context; your game decides what they mean.




