Skip to content
Homesliced Software
Available nowBullet hell · Shmup patterns

Bullet Heck

Deterministic bullet patterns and fire control for bullet hells and shooters.

Unity
6000.0.85f1+
Version
1.0.0
Price
$45
License
Asset Store EULA

Technical details

Specifications

Performance figures were measured on a mid-range laptop CPU and are quoted as measured. Where something is untested, we say so.

Compatibility

Unity6000.0.85f1 (6.0 LTS) or later. Tested on 6000.0.85f1 and 6000.6.4f1. Unity 2022.3 isn't supported.
Render pipelinesBuilt-in and URP, verified in clean imports with URP 17.0.4 and 17.6.0. HDRP is not supported.
PlatformsTested on Windows x64, in the editor and IL2CPP players. On other targets, build and run the DeviceCheck sample to confirm bit-exact results there.
Play modeWorks with Enter Play Mode Options and Domain Reload off.
World2D, on the XY plane or the XZ plane for top-down 3D scenes.

Simulation

Math16.16 fixed point; 65,536 angle units per turn
Tick rate1 to 1000 Hz, 60 by default
Pools4096 bullets, 256 owners and 1024 scripted bullets by default (configurable)
CollisionCircles and capsules, swept, on 32 layers with an optional graze radius. A receiver grid broadphase changes cost, never outcomes.
ReplaysSeed, content hash, settings hash and per-tick commands, about 15 bytes a tick, with desync checkpoints every 60 ticks

Content

RecordsBullets, patterns, emitters, paths, actors and bullet scripts
FormatJSON, one record per file or bundled. A strict reader and writer with exact decimals and no floats.
ErrorsName the file, field and line, with typo suggestions

Rendering

Draw pathGraphics.RenderMeshInstanced, up to 1023 bullets per call
ShaderOne unlit SDF shader, no textures. Orb, needle, ring, glow and trail shapes with color, size, stretch and core.
DebugHitbox overlay. Looks are excluded from the content hash.

Performance

1k bullets11 to 12 µs per tick
10k bullets vs 4 receivers140 to 144 µs per tick
20k bullets300 to 304 µs per tick
10k bullets vs 128 receivers279 to 280 µs per tick
10k homing bullets (worst case)593 to 595 µs per tick
Measured onIL2CPP player, 60 Hz, Intel i5-12450H laptop. Single-threaded: no Jobs or Burst.

Code

SourceFull C# source under HsSoftware.BulletHeck
AssembliesCore (no engine references, .NET Standard 2.1), Json, Runtime, Editor, Samples, plus six test assemblies
DependenciesNone required. The Input System is optional for the samples. Tests compile only when the Test Framework is present.
Tests696 EditMode tests in both editors and pipelines; 650 run headless under dotnet test
Package234 files, 1.4 MB
LicenseStandard Unity Asset Store EULA

Not included

NetworkingNo network transport. The rollback sample uses an in-memory stand-in, so you choose your own transport.
StagesNo wave or timeline system. Sequencing a stage is left to your game; the Shooter sample shows one way.
OtherNo HDRP, no 3D bullets, no multithreading

Before you buy

FAQ

Do I need to understand fixed-point math?+

No. You write ordinary decimal numbers in JSON or in the inspector, and they're parsed exactly into fixed point. You only see fixed point if you write C# against the core.

Does it include networking?+

It includes what rollback needs: a deterministic world, zero-allocation snapshots and a seekable timeline. The Rollback sample shows two peers over a simulated network. The actual network transport is up to you.

Can I use it in a 3D game?+

Yes, for top-down or side-on play. The simulation is 2D, and the runner can map it onto the XY or XZ plane of your scene. Bullets don't move in 3D.

Can I draw bullets my own way?+

Yes. The included renderer draws SDF shapes with one shader, but the simulation doesn't depend on it. Read the world's bullet data and draw it however you like.

Does it include art or enemies?+

The samples draw ships, enemies and effects in code, so there's no imported art. The included enemies and the boss are data you can copy and change.

Which platforms are supported?+

It's tested on Windows x64, in the editor and in IL2CPP players. On any other target, build and run the DeviceCheck sample to confirm bit-exact results there.

How was Bullet Heck made?+

Built by HS Software with AI code assistance.