[RELEASED] Crux 2.0 - Procedural AI Spawner for Terrains (Biomes, Population Caps, and more)

Crux
Crux is a runtime procedural AI spawner capable of spawning AI dynamically across terrains according to customized biomes and conditions. Crux eliminates the hassle of having to place AI by hand as well as allowing AI encounters to be realistic and unique every time. Crux works with all types of Unity terrains whether they are procedurally generated, designed by hand, or endless. Crux performs well by despawning AI that are out of range of your player and only making efficient calculations once every spawn interval.

Note: Crux is a spawning system, not an AI system.

How it works
Users create biomes that are defined by as many textures as needed. As the player moves through the terrain, the spawn position gets the texture and spawns AI according to the biome and the conditions. Each biome has 3 categories of AI; Wildlife, Creatures, and NPCs each with their own rarity and conditions for spawning. For example, your Wildlife category for the Forest Biome has a 60% of spawning. When a successful spawn happens, Crux randomly picks an AI from the Wilderness Category where deer and rabbits are common whereas fox and bear are rare. Crux uses customizable population caps for each object to help keep environments balanced and realistic.

Purchase
Get it here: https://www.assetstore.unity3d.com/#!/content/79350?aid=1101l3nnr

Screenshots

[spoiler]

2883769--211806--Crux Demo 2016-12-12 17-27-30-347.jpg2883769--211809--Crux Demo 2016-12-12 17-24-31-366.jpg2883769--211810--Crux Demo 2016-12-12 17-26-32-906.jpg
2883769--211808--Crux Demo 2016-12-12 17-35-12-198.jpg2883769--211807--Crux Demo 2016-12-12 17-30-07-056.jpg
[/spoiler]

Demo Videos

[spoiler]

More to come!

Spawn ID Feature
Here's a new video demonstrating the Spawn ID feature included with Crux. The Spawn ID System generates a Spawn ID for each Crux game object. If enabled, these spawn IDs can be used to spawn AI to the player's location making it easier for development and testing (Similar to AAA games such as Skyrim/Oblivion/Witcher 3). All Spawn IDs are generated automatically by Crux and written to a txt file. The format includes both the AI's name and Spawn ID.


AI Generation Demo
Here's a video demonstration showing various AI encounters from wandering around 24 sq km.. Each encounter you see was dynamically created by Crux's spawning system. The Forest and the Desert areas each have their own Biomes each with their own types of animals and creatures that can be spawned using Crux.

[/spoiler]

Editor Screenshots

[spoiler]




[/spoiler]

Documentation

[spoiler]

Documentation
If you are interested on checking everything out before Crux is released, here are the links to do so. We will be continuously updating the wiki site with more tutorials and information. Tutorial videos will be coming soon.

Crux Wiki Site
Crux Documentation
Crux Tutorials

[/spoiler]

Further Details
There's so much Crux can do, and there's way too much to list everything, but here's the features worth mentioning.

Supports
* Supposts CTS
* Supports Unity Terrains (Mesh support coming soon)
* Supports procedurally generated and endless terrains (Unity Terrains Only, mesh support coming soon)
* Supports 3rd party terrain systems and shaders such as Gaia, Map Magic, and Distingo
* Supports any character controller system
* Supports any AI system that supports spawning
* Supports Emerald AI
* Supports Unity NavMesh
* Developed by the same developers as Emerald AI and UniStorm (UniStorm implementation planned for optional special conditions such as time of day, weather, and seasonal spawning)

Key Features
* Efficient and powerful - Crux performs well by despawning AI that are out of range and only making efficient calculations once every spawn interval.
* Unlimited Biomes - Supports an unlimited amount of Biomes.
* Unlimited Objects Support an unlimited amount of objects for each category
* Population Caps - Customize the population Caps for every object to help keep environments balanced and realistic.
* Global Caps - Gives control over the max number of total objects that cab be spawned at a time.
* Spawn ID System - The Spawn ID System generates a Spawn ID for each game object. These spawn IDs can be used to spawn AI to the player's location making it easier for development and testing (Similar to AAA games such as Skyrim/Oblivion/Witcher 3). All generated spawn IDs are also created in a txt version with the name of the AI and their Spawn ID.
* Spawning and Despawning - Crux gives users the control over the spawning radius as well as the despawning radius.
* Rarity of Encounter - Customizable the rarity of encounter for each AI (Common, Uncommon, Rare, and Ultra Rare).
* Odds Based on Category - Adjustable odds for each category of AI (Wildlife, Creatures, and NPCs) However, Crux also supports purely random spawning of every category.
* Angle Detection and Restriction - Angle detection that only spawns AI within the angle limits of the terrain.
* Obstruction Avoidance - Crux automatically avoids positions that are obstructed to avoid being placed on non-terrain areas and objects.
* Spawn by Groups - Customizable group numbers allow you to spawn AI in randomized groups based off of your input.
* Spawn Radius - Customizable spawn radius gives you control over group's spawn radius.
* Easy to use with Low Learning Curve - Easy to use Editor with low learning curve. No other scripts are required. All you have to do is customize the conditions.
Crux

Road Map Version 2.0
For more information regarding Crux 2.0, see the post here: https://discussions.unity.com/t/648836 page-5#post-3615943
- Full Support for MegaSplat
- Option to not spawn to textures
- Mesh support
- Spawn around tag option to spawn around areas such as camps, caves, city, etc.
- An additional options tab for spawning non-AI objects, if desired.

Animated models by: Protofactor, INC & Adventure Forge (Deer and Wolf model)

6 Likes

Nice, looking forward to this :)

dose it work with unitys NavMesh?

and i am sure it will work seamless with your Emerald AI :)

Ahhh nice "* Supports any character controller system"

Yes, it works with both Unity's NavMesh and Emerald AI.

Ohh cool cant wait for this any ETA ?

never mind just seen a week or so lol

Thanks!

Yeah it should submitted by December 20th, possibly sooner.

1 Like

Hey everyone!

Here's a video demonstration showing various AI encounters from wandering around 24 sq km.. Each encounter you see was dynamically created by Crux's spawning system. The Forest and the Desert areas each have their own Biomes each with their own types of animals and creatures that can be spawned using Crux.

Lighting and sky by: UniStorm
AI created with: Emerald AI (The AI's aggression was turned down so they wouldn't attack the player)
Terrain created using Map Magic.
Trees and bushes: SpeedTree
Character models: Protofactor, INC & Adventure Forge (Deer and Wolf model)

https://www.youtube.com/watch?v=aa6JWlHsX_s

2 Likes

Wow this was quite a sneaky reveal @BHS This looks pretty cool

1 Like

looks awesome,
- Would be possible to spawn the animals in areas(may be with a visual radio as emerald) apart from textures?
- will you include the scene of the video or at least can you tell me the settings of the terrain and where you found the grass?i am trying to get that effect (terrain texture and grass) but all the grasses i found are wider but yours look thinner

thanks

Wow! Another amazing looking product by BHS. :)
Which assets did you use in the video? You're scene is very lovely.

Hey there!

  • Not at release, but we plan on having other methods for spawning areas other than just textures.

  • The scene will not be included because it uses assets from the Asset Store. The grass texture is from the Map Magic asset.

The setting for the grass were:
Min Width: 3
Max Width: 4
Min Height: 1
Max Height: 2
Noise Spread: 0.1

[quote]
Wow! Another amazing looking product by BHS. :)
Which assets did you use in the video? You're scene is very lovely.
[/quote]

Thanks! The assets used in the video have been added to the post.

Hey everyone!

Here's a new video demonstrating the Spawn ID feature included with Crux. The Spawn ID System generates a Spawn ID for each Crux game object. If enabled, these spawn IDs can be used to spawn AI to the player's location making it easier for development and testing (Similar to AAA games such as Skyrim/Oblivion/Witcher 3). All Spawn IDs are generated automatically by Crux and written to a txt file. The format includes both the AI's name and Spawn ID.

AI created with: Emerald AI
Terrain created using Map Magic.
Character models: Protofactor, INC & Adventure Forge (Deer and Wolf model)


Here's an example of a generated Spawn ID txt file. This can support as many objects and biomes as needed.

Name: Deer  -  Spawn ID: VIL872
Name: Forest Rabbit  -  Spawn ID: TDW535
Name: Fox  -  Spawn ID: QWN205
Name: Wolf  -  Spawn ID: LGW272
Name: Brown Bear  -  Spawn ID: LXX270
Name: Troll   -  Spawn ID: UJF337
Name: Forest Spider   -  Spawn ID: VFR213
Name: Goblin   -  Spawn ID: AWR363
Name: Elephant  -  Spawn ID: MXP352
Name: Zebra  -  Spawn ID: CYF720
Name: Desert Rabbit  -  Spawn ID: PAB131
Name: Skeleton Soldier   -  Spawn ID: IBQ612
Name: Skeleton Warrior   -  Spawn ID: RSO828
Name: Skeleton Knight   -  Spawn ID: SZH186
Name: Desert Spider   -  Spawn ID: QAB879
3 Likes

=) Looks very nice

What is the price estimated for first release?

1 Like

Hey there!

Thanks! The release price will be $24.99, but may increase with as we further develop the system.

1 Like

Hey everyone!

We've added some new features. One of these is to help better evenly distribute spawning. This is done by efficiently detecting previously spawned AI and avoiding spawning new AI too close. The distance for this is customizable and this feature is completely optional. Groups will still spawn as normal. This just gives each spawned AI, and their groups, some space.

Another new feature that has been added is visible spawning radii.

The yellow circle is a customizable radius where AI cannot spawn. This is the area where the player is. This is to stop AI from spawning too close to the player.

The red circle is a customizable radius where AI can spawn. AI can spawn anywhere in this radius as long as the proper conditions are met and there are no obstructions.

The blue circle is the radius that controls despawning. Once an AI has left this, it will be despawned. This is also customizable.

This gif shows the spawning process during runtime. The clusters you see is the group feature in action. Each Crux object has their own customizable group radius and population caps. The spawning process stops once the max global spawning amount has been reached.

2891857--212648--CruxSpawnGif.gif

2 Likes

Great work! Very excited to see this, it's exactly what I need. Kudos for supporting such a wide range of tools, especially MapMagic. It seems many tools are not designed with procedural environments in mind, which makes open world game development challenging. I really love the idea of Unistorm integration as well (monsters that come out at night? Awesome!!!!)

A few questions:
* How easy is it to adjust the spawning dynamically, ramping or toning down spawning at runtime based on outside variables? (Thinking dynamic difficulty, like spawns based player deaths, health or level, or more complex logic tracked outside the system like spawning X if Y mob is destroyed or X along with Y if difficulty is set at Z etc. I'm especially interested in the idea of "guaranteed random" where you increase/decrease spawn probabilities to ensure players see certain content rather than just being at the mercy of the RNG)
* What about optionally preventing spawning in the viewing direction (to prevent content from popping into view)?
* The spawning logic looks geared toward an avatar that's on foot. What challenges do you see with avatars with higher rates of speed (say a jeep, drone or helicopter)? Dynamically increasing the spawn circle based on avatar speed might help
* Going forward, any plans for spawning in more structured environments like cities/towns (vehicles on streets, people on sidewalks or plazas)?
* Support for particle effects, music, sound triggers on spawn/despawn?
* Pooling integration?

Some future suggestions:
* Spawn biased on average movement vector to help ensure content is spawned ahead of player rather than behind
* Spawn based on waypoints (to help ensure content along static or procedurally generated quest routes)
* Spawning on meshs? (For birds that explode from trees or bushes, bats from caves, etc.)
* Spawning that's agnostic of terrain (spawning based on globe so we get spawning of birds in air or even use something like this for a space or undersea game)?
* Zone Controller compatibility?
* Apex Pathfinding compatibility?
* ORK compatibility (eh, probably a longshot but never hurts to ask!)

1 Like

Hey there!

Thanks, glad to hear your interested in Crux.

Great questions and suggestions!

1) Right now, spawning is capped based on the object's Population Cap and the Global Cap. Spawning also takes in account the Category Odds and the Object's Spawning Odds which can be set to the following (Common - 55%, Uncommon - 30% , Rare - 10%, Ultra Rare - 5%). More complex spawning logic will come with future updates. We are currently taking feature requests so suggestions are always welcome.
2) This is something that we wanted to add, but didn't quiet make it in for release. There is a setting to prevent spawning from happening too close to the player. This is adjustable via the Crux Editor. During testing, there was no visible spawning.
3) The Spawn Interval speed can be adjusted dynamically so adjusting the spawning speed based on the player's speed is certainly possible.
4) Yes, with our next update the plan is to add a spawning node feature. This will allow Crux to detect these nodes and spawning accordingly.
5) Yes, this is something that we would certainly like to add within our next update or two.
6) As of right now, we haven't seen the need for object pooling based on our tests. Crux doesn't spawn enough objects to need pooling. However, if and when the time comes, we may add this in the future.

Great suggestions!
1) A method for better spawning AI in front of the player is something that is planned for our next update.
2) The spawning node feature should be able to make your waypoint suggestion possible.
3) Spawning on mesh is something we would like to add in the future as the Crux develops.
4) This is a feature that we can definitely consider for a future version. It also depends on the need/demand of suggested features.
5) Crux hasn't been tested with Zone Controller, Apex, or ORK, but our goal is to support as many systems as possible. Crux should work with most AI systems as long as the AI system supports spawning.

Hey everyone!

Crux has been submitted and is awaiting approval.

We're looking forward to seeing what everyone thinks of our newest system.

1 Like

Ausome

My card is ready :)

Are you going to release some tut's on how to use it before its release?

Thanks

Hey there!

Crux's documentation and tutorials will be online and finished up sometime after the holidays. We can post them here when they're finished.