Weighted Random Enemy Spawning | AI Series Part 20




Published: 06 Jul 2021

In this tutorial I show how to add a new EnemySpawnMethod - WeightedRandom. I will show how to define a ScriptableObject to configure the bounds of the weight for an arbitrary enemy that is then used to spawn enemies. We'll refactor the EnemySpawner to spawn with this method, and use the new ScriptableObject instead of directly using EnemyScriptableObjects.


This configuration-driven approach to the weights allows you to be flexible in designing different scenarios for your players. Maybe some levels should favor particular enemy types, or maybe as more enemies become unlocked, you weight the new enemies to have a higher weight since they're more challenging.


In Llama Survival I implemented this exact same system to have some bosses favor spawning on specific levels, and also generate more dynamic gameplay by allowing me to customize the zombie spawn weights to control difficulty.


As usual with the AI Series, we're using the NavMesh Components: https://docs.unity3d.com/Manual/NavMesh-BuildingComponents.html not the built-in navigation system.


๐Ÿ‘จโ€๐Ÿ’ป As always, all code from this video is available on GitHub: https://github.com/llamacademy/ai-series-part-20/


๐Ÿท๏ธSave 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: https://www.jetbrains.com/store/?section=personal&billing=yearly


๐Ÿงก Believe in LlamAcademy's mission and have received value from the videos? Here's how you can show your support:

๐ŸŒŸ Patreon: https://www.patreon.com/llamacademy

๐ŸŒŸ YouTube Member: https://www.youtube.com/channel/UCnWm6pMD38R1E2vCAByGb6w/join or click the Join button on any video

๐Ÿ“š Take my Unity ShaderGraph Course:

https://www.gamedev.tv/p/unity-shader-graph?affcode=45216_kuvg0bp7

๐Ÿ‘• Get yourself some LlamAcademy merch: https://llamacademy.myspreadshop.com/

๐Ÿ’ธ Use my Affiliate Link for Humble Bundles https://humblebundleinc.sjv.io/9g4ak4

๐Ÿ’ธ Publisher Sale! 50% OFF an entire publisher's Assets! Publisher changes weekly! https://assetstore.unity.com/publisher-sale?aid=1101l9QvC (affiliate)

๐Ÿ’ธ Save up to 50% on NEW Assets: https://assetstore.unity.com/?new_sale=true&orderBy=1&aid=1101l9QvC (affiliate)


Some links may be affiliate links, which at no additional cost to you, gives me a small portion of the purchase.


Connect on Social Media

Some links may be affiliate links, which at no additional cost to you, gives LlamAcademy a small portion of the purchase.