[RELEASED] Procedural Toolkit




Now released! Asset store link below.
Asset Store link:

Documentation:

Website for direct contact:
https://www.fantasticmazes.com/

Some notes:
More videos coming soon, documentation has a basic start guide and some detailed information on the inner workings of how the system creates its random generation process.

Also please note - this should be backwards compatible with earlier versions of unity, if using 5 still, you will have to move the editor folder to the root of your project. Other than that I don’t think I’ve used anything that is 2017~8 dependant.

What is Procedural Toolkit?
Procedural Toolkit is a procedural generation toolkit/randomizer that will aid you in the construction of your next procedurally generated game. The product aims to make customizing modular procedural assets as easy as possible.
Use your own assets to create beautifully customizable objects that you control through an easy to use workflow.

Seed your random generation process through an efficient and quick seeded random generator - this ensures that across all devices your randomized objects will always stay the same no matter what.

Replay your random generation process and restore the objects you create by simply entering in a value, create the same object over and over again, set limits on the objects you create and have full control over how you give life to the randomized scenes.

The concept is that you define which connectors can spawn which prefabs and then the pooling system takes care of populating the data for use with the randomizer script. Any kind of mesh can be used - and the procedural generator allows for rotation and multiple compound colliders as well. The system was designed so that you don’t have to create your objects inside of Unity as it uses naming conventions to populate the data in the code when the pool is created. (Meaning you can create your prefabs inside of maya, or blender or whatever program you want, as long as naming conventions are followed)

You can use your own colliders to design an outline/template of the permutation you want to create as well. The generator will test against all objects in the scene relatively quickly and find the best possible fit for each permutation.

4427074--403813--test.gif

4427074--403813--test.gif
4427074--404284--compound_colliders.png

1 Like

A couple more things that can be done with the toolkit:

Update:
Here is a mini demo scene showing some of the features that the project is capable of

I’ve just been testing this on multiple devices (WebGL, mobile, etc) It seems as if the seeded random generator is holding up very well and generating the same permutations on various devices as expected. Hooray. Also performance seems to be decent as well.


**Submitted for review! In the next few weeks Ill be making tutorial videos and creating some nice randomized objects with some popular asset store assets to show the capabilities of the project.



Just wanted to let people know - its live! I may adjust the prices depending on featureset etc. but hooray.

Theres also a 30+ page documentation somewhere that I do need to upload on how to use the thing. If anyone needs examples or has any questions on how it works, or comparisons, please let me know! Happy to answer.

Documentation: https://static.wixstatic.com/ugd/b606ff_f45dcb76f454485e93617ac144b03d90.pdf

Please note - there are no dependencies required for Procedural Toolkit, its designed to be as seamless as possible, you can import it into any of your projects and it should work as long as you adhere to the layering system. All thats required is for Collisions hit triggers, in physics to be turned on.

I have tested on mobile, web and desktop and all platforms seem to do well depending on the number of objects you pool.

Bit of a fun thing I’m working on at the moment using PTK - with a little modification this kind of behaviour is possible.

4453459--408499--LoopingBuilder.gif
4453459--408502--test3.gif

some performance related things - I’ve got the generation process to as low memory usage as I possibly can. (There’s still a list needed for checks, but this is as good as I can get I believe)

Currently working on:
Dynamic pooling - finished prototyping
Saving and loading - finished prototyping (related to the reverse feature. Prototype done)
Saving and loading is a little bit different from restoring an object from a seed, with saving and loading you can restore objects that are “force” spawned into the world and attached to the randomize. Such as buildings or intractable modular parts as shown above.
Animating and more post processing hooks (for post spawning interactions)

i have building exterior, can i feed to this script door locations and window locations so this can generate interior automaticly?