Pool Kit - The ultimate system for pooling, spawning and despawning

Hi everyone,

I’d like to introduce PoolKit, soon to be released on the Asset Store!

About PoolKit v3.0.2

PoolKit is a truly next generation system for pooling, spawning and despawning.

Ever heard of “Pool Types”, “Chain Spawning” or “Automatic Despawning”? Among many other concepts, PoolKit is first to offer these unique and innovative pooling features in an easy to use, streamlined and professional series of tools to help you annihilate memory allocations and improve the performance of your games!

PoolKit is a unique solution that tackles the problem of garbage collection which comes from instantiating objects. These memory allocations can cause huge spikes and “stuttering” in gameplay. PoolKit can uniquely pool and spawn your prefabs with ZERO garbage collection which can be up to 77% faster than instantiation (~33% on average) and helps to make your game a smoother experience which is increasingly needed on platforms like mobile and VR!

PoolKit also thinks about how you work in Unity and includes it’s own powerhouse of a Spawner. This can be used to create enemies, special effects, weapon systems and more! In addition, an incredibly powerful all-purpose Despawner component can be attached to your gameobjects to despawn them after they are triggered by countdowns, particle systems, audio sources, physics collisions or scripts. It then allows you to setup “Chain Spawning”, a specialized despawner feature to spawn any number of new instances to replace a despawning object. This is just a tiny fraction of what PoolKit can do and I invite you all to check out the videos and demos!

Features

  • Complete Solution For Pooling, Spawning, and Despawning!
  • Easy To Use Visual Inspectors!
  • Use “Pool Types” to select the data architecture of each pool!
  • “Pool Protection” can rebuild your pools in real-time!
  • Pools can be local to a scene or global to many or all scenes!
  • Automatically create global pools when the game starts!
  • “Instance Recycling” can re-spawn existing instances!
  • “Preloading” can create instances over time!
  • Instances can have “Automatic Despawning” setup via the pool!
  • Recieve Notifications when specific prefabs change state!
  • Unique scripting interface offers blazingly fast notifications!
  • Advanced Spawner to spawn enemies, weapons, effects and more!
  • Powerful Despawner to configure events that despawn your objects!
  • Unique Chain-Spawning System built into every despawner!
  • Cross platform and works in 2D & 3D projects!
  • Comprehensive API!
  • Comes with 5 Tech Demos and 9 Example scenes!
  • Documentation PDF and High quality video tutorials!
  • Full source, No DLLs!
  • Fast and friendly email support!
  • Compatible with Unity 5.6.x, 2017.x and 2018.x!

3rd Party Integration

  • Built-in PlayMaker actions!

Introduction Video

Find out more about PoolKit in this short video:

Promo Images

Find out more about Pool Kit with these promo images:

Tutorial Videos:

Follow these tutorials to become a Pool Kit pro! :slight_smile:

> Tutorial 1 - PoolKit Pools
> Tutorial 2 - PoolKit Spawners & Despawners

Documentation

Take a look at the Pool Kit manual here:

> Documentation (PDF)

WebGL Tech Demos:

Check out these cool WebGL demos to get an idea what PoolKit can do for your games! :slight_smile:

> WebGL Demo 1 - Spaceships
> WebGL Demo 2 - Breaking Rocks
> WebGL Demo 3 - Lazer Cannons
> WebGL Demo 4 - Interactive Fireworks
> WebGL Demo 5 - Performance Tests

Release / Price

The system is pending approval on the Asset Store. It will be launching with a huge 50% discount at launch and selling for $30 (reduced from $60).

If you can’t wait, good news! It’s available on my site too which can be found here: PoolKit – Professional Pooling System For Unity – Unity Games Development

Thanks for your interest! If you have any questions, feel free to ask! :slight_smile:

  • Mel

it looks promising. I’ll take a serious look at it.

Is your spawner can support a random range, radius or area ?

Can you have like 5 different ennemies characters and spawn them at random ?

thx

EDIT: should have read the documentation first LOLL

Think from the doc your Random Range & Random With Weights functionalities are doing pretty much that and more.

Hi @f1chris ,

Thanks for your interest in PoolKit! :slight_smile:

There are loads of ways to randomize both enemies and spawn points - glad you found what you needed in the docs!

If you have any more questions feel free to ask! :slight_smile:

  • Mel

Hi everyone,

POOL KIT IS NOW LIVE!

PoolKit is now LIVE on the Asset Store! Check it out here:

Pool Kit - The Ultimate Pooling System For Unity

If you have any questions, feel free to ask! :slight_smile:

  • Mel

How would you compare your asset to “Pooly - Professional Pooling System”? I’d like to hear your honest opinion.

Hi @AndroYD ,

Its a little difficult to compare as I’m obviously biased, but I would honestly say on balance I think PoolKit has way better features across the board as well as totally unique features other systems don’t have. PoolKit is actually first to introduce Pool Types and Chain Spawning systems (as far as I know). Based on what I can tell, PoolKit’s spawners and despawners appear to have more features based on the docs. PoolKit’s “Automatic Despawning” is another cool feature that happens at the pool-level!

Also, PoolKit allows you to setup a unique physics event in the despawner without using memory allocations each frame (it doesn’t look like that’s the case with the other system based on some of the comments ). PoolKit also gives you control over the source of the collisions which other systems don’t offer either. It is possible to get memory allocations to zero with PoolKit as internally it doesn’t even use co-routines by design.

Another point is PoolKit allows advanced users to turn off specific features they don’t need to gain performance boosts.

That’s just a few of the reasons I would encourage people to try Pool Kit. Hope that helps! :slight_smile:

  • Mel

Hi everyone,

POOL KIT v1.0.1 IS NOW LIVE!

PoolKit v1.0.1 is now LIVE on my site, and should hopefully be available on the Asset Store soon.

It’s a small update which allows you to minimize and expand prefabs in the Pool Editor. This is very helpful for very large pools - thanks to Dhruv for the request! :slight_smile:

Please remember to backup your projects before updating. I’ll let everyone know when the update is available on the Asset Store.

Thanks to everyone who has purchased Pool Kit so far! :slight_smile:

  • Mel

POOL KIT v1.0.1 IS NOW LIVE ON THE ASSET STORE!

PoolKit v1.0.1 is now LIVE on the Asset Store !

IMPORTANT: Please remember to backup your projects before updating! :slight_smile:

  • Mel

Would like to know if/how i can use it with unet in a multiplayer game?

Hi RandAlThor,

This seems more of a question for the unet guys as I’m not familiar with their system. However, if unet can support objects that are “pooled” from 3rd party systems out of the box then PoolKit shouldn’t have a problem with it :slight_smile:

Hope that helps!

  • Mel

Hey,

Just bought Poolkit, but can’t use it. After importing it into Unity 2018.3.6f1, I get a couple errors when trying to add a pool:

  • Can’t add script behaviour Pool because it is an editor script. To attach a script it needs to be outside the ‘Editor’ folder.
    PoolKitMenuItems.CreateGlobalPool() Assets/Editor Default Resources/Editor/Hell Tap Entertainment/PoolKit/PoolKitMenuItems.cs:66
    64: // Instantiate it in the scene
    65: GameObject poolGO = new GameObject(“PoolKit Global Pool”);
    –>66: Pool pool = poolGO.AddComponent();
    67: pool.dontDestroyOnLoad = true;

GenericMenu.CatchMenu()

  • [Exception] NullReferenceException: Object reference not set to an instance of an object
    PoolKitMenuItems.CreateGlobalPool() Assets/Editor Default Resources/Editor/Hell Tap Entertainment/PoolKit/PoolKitMenuItems.cs:67
    65: GameObject poolGO = new GameObject(“PoolKit Global Pool”);
    66: Pool pool = poolGO.AddComponent();
    –>67: pool.dontDestroyOnLoad = true;
    69: // Register Undo

GenericMenu.CatchMenu()

This makes it impossible to use the Pool :frowning:

Another question: can I place the asset in a different folder? All my third-party assets live in the Assets/thirdparty folder with its own Asmdef. That way I keep compilations down to only the parts that changed.

Thank you!

Hi heynemann,

Sorry to hear you’ve run into an issue. My initial thoughts are you have likely broken the system by moving everything into different directories, or more likely due to the asmdef setup you’re trying to achieve ( I haven’t tested PoolKit that way and cannot yet offer support for that kind of setup at this stage ).

Because of the custom inspectors in PooKit, it requires things to be in the correct folders to load resources into the Editor. I would also note that the “Editor Default Resources” folder is a special Unity folder designed for this very purpose. The contents are essentially editor-only assets that wont be included into your builds unless you directly reference them.

For now, I would suggest removing all the PoolKit files from your project and installing it again, preserving the original file structure.

Hope this helps! :slight_smile:

I got it working by reimporting everything and moving only the “Hell Tap Entertainment” folder to my thirdparty folder.

I got a different question now. I really want to use the spawners but I require that it spawns new objects in an unnocupied spot. Is this something you plan on supporting? Like, spawn 20 units, so they don’t spawn on the exact same spot. If it is something that the Spawner already supports, sorry for the ignorance, hehehe.

Thanks for the quick replies!

Hi heynemann,

Glad you got it working :slight_smile:

Hmm, I guess the simplest way is to use the “sequence ascending” option and setup your spawn points normally ( in your case, set up 20 different spawn points ). This will cause all of the 20 spawned units to be in each of the 20 different locations and therefore none of them should be in the same spot.

Hope this helps!

Hello! I have a quick question. I use Playmaker and am currently experiencing pretty big performance spikes when I first start my game and am trying to instantiate all my pools. It seems the major performance spike occurs in Fsm.InitData() in the profiler, which is basically where PlayMakerFSM is initializing all its actions and variables.

I’m considering purchasing Pool Kit to replace my object pool I coded that is instantiating the prefabs. I watched the tutorials and it seems like the lazy pre-loading might be what I need since most of my prefabs are pretty big with a lot of PlaymakerFsm components. My question: Do you think Pool Kit will help with performance issue? I’m using a simple “Instantiate” now to create the pool. I saw on your video that Pool Kit is on average ~33% faster than instantiate, so I just wanted to see if you thought your asset could help with this.

Thanks!

Nick

Hi Nick,

Firstly, thanks for your interest in PoolKit! :slight_smile:

Yep, using lazy preloading should help to lessen the initial memory spike by adding objects to the pool over time rather than instantly in one go. You can also configure how fast / slow this happens to find a balance that works best in your project.

Hope this helps! :slight_smile:

  • Mel

Very nice Asset. (left ya a review)
One minor suggestion if you do an Update sometime;
A little more compact option or something for the Prefab Inspector for those longer Pools, save some scrolling.

Hi @XCPU ,

Thanks for the positive review, much appreciated!

I’ve added your suggestion to the wish-list! :slight_smile:

  • Mel

@melgeorgiou ,

Hi. Interested in this Asset. Could I use it for weighted loot item spawning say?

Hi @Duffer123_1 ,

Firstly, thanks for your interest in PoolKit!

And yep, you sure can :slight_smile:

  • Mel
1 Like