コンテンツにスキップ
出品Warmpoolのメディア1

説明

Spawning and destroying actors is expensive. If your game creates bullets, impact

effects, pickups or enemies every few frames, that cost shows up as frame hitches

and garbage collection spikes.

Warmpool creates those actors once and reuses them. Instead of destroying an actor

you put it to sleep, and the next request wakes it back up.

WHAT MAKES IT DIFFERENT

No base class. Any Actor subclass works, including Blueprints you already shipped.

Nothing to reparent, nothing to migrate.

No setup. There is no manager to place, no config asset to create, no registration

step. Ask for an actor and you get one — the pool is created on first use.

Your actor never learns it is pooled. A reused instance comes back with its

components in the state SpawnActor would leave them in. Projectiles fly, particles

replay, sounds restart. You build the actor the ordinary way and it works.

That last point is the one most pooling systems leave to you. A Projectile Movement

component clears its own Updated Component on every impact, so a pooled projectile

would normally fly once and then be dead forever. Warmpool reconnects it and

re-applies Initial Speed on every spawn, so there is nothing to wire.

TWO NODES

Replace Spawn Actor from Class with Spawn Pooled Actor.

Replace Destroy Actor with Despawn Pooled Actor.

That is the whole API for most projects. Leave the Actor pin empty on Despawn and

it returns whoever called it — which is what a bullet returning itself on impact

wants.

WHEN YOU NEED MORE

Pool Profile — a data asset holding your pool sizes, so you type them once instead

of into every level.

Pool Prewarmer — drop it in the level and the pool is filled at load instead of

mid-combat. Set Per Frame and the work spreads across frames while the level keeps

running.

Pool Lifetime — a component that returns the actor after a set time. No timer

nodes, no Begin Play wiring.

Max Size and overflow policy — cap a pool, or make it refuse rather than grow.

Despawn All Pooled Actors — return a whole class at once. A wave cleared, a weapon

reloaded, a round reset.

Get Pool Stats — Total, Active and Available, for a debug overlay or to prove the

pool is actually being reused.

IT TELLS YOU WHEN SOMETHING IS WRONG

Prewarming eight thousand actors in one frame is a visible hitch. Warmpool times

its own work and tells you the Per Frame value that would have fit:

Prewarming 8000 instances of 'BP_Bullet' took 3400 ms in one frame (0.43 ms

each), which is a visible hitch. Set Per Frame to 11 on that pool row: the same

work then costs about 5 ms per frame and finishes in 728 frames, with the level

still running.

Those numbers are measured, not estimated. A pool that runs out, or a prewarm that

contradicts its own Max Size, gets the same treatment — one warning, once, with

both numbers named.

INCLUDED DEMO

A playable first person room. Shoot the button, enemies spawn from the corners,

walk at you and ragdoll when hit. Bullet and enemy pool counters are on the wall.

The demo is built from the same nodes you get — nothing in it is special-cased.

It lives in one folder and deleting that folder leaves the plugin working.

NOT SUPPORTED

Networking and replication are out of scope for this version. Warmpool runs

locally on whichever instance calls it. Replicated actors have their own lifetime

rules that pooling has to respect, and doing that properly is a larger job than

this plugin takes on. If you need pooled replicated actors today, this is not the

right tool.

Free, source included.

含まれる形式