Project index
What each supplied Unity project is for, which one to open first, and why the PackageExport project has no game in it.
On this page
Five Unity projects ship with this asset. Four are games. The fifth builds the packages.
| Project | What it is for |
|---|---|
| Platformer | GameObject agents, a first tree and state machine, list and struct values, variable-length arguments. |
| DungeonHeist | One guard that reacts to changing facts, gives up its running work, and takes a value you edit mid-game. |
| HordeSurvival | Entity agents by the crowd, plus a director graph choosing what the next wave looks like. |
| RacingLine | A decision graph bound to a vehicle simulation that was written before the graph existed. |
| PackageExport | The editor host that writes the distributable packages. No gameplay. |
Each game chapter names its own scene, the object to select, and the graph files that scene runs. Start with Platformer.
PackageExport
Section titled “PackageExport”PackageExport is a build tool with a Unity project around it, and you never need it in your game. Its single editor entry point runs in batch mode: it reads a prepared export plan, checks that every staged content folder the plan names is actually present, fails loudly when one is missing, exports each entry recursively to its requested .unitypackage path, and exits with a code the build can read. Staging and cleanup belong to the packaging script that calls it, and testing belongs to a different build configuration, so the exporter itself runs no gameplay, validates no behavior, and knows nothing about the sample projects beyond the folders it was told to write. It is listed here so that finding it in the distribution raises no questions.
Path layout
Section titled “Path layout”The four game projects use the standalone layout you see in every screenshot on this site: Assets/Platformer/... for Platformer, Assets/_Project/... for the other three. Importing a packaged sample instead puts the same folders under Assets/BitQuirky/BehaviorTreesAndStateMachines/Samples/, with the shared command support beside them, so a path from a chapter still reads the same from its project folder down.
Take the behavior, leave the plumbing
Section titled “Take the behavior, leave the plumbing”A sample graph calls the sample game’s real methods and holds references to its real scene objects. That is deliberate, and it means a graph file copied on its own into your project will bind nothing. Keep the set together while you are learning from it: the graph, the host component, the generated provider, and the game capability the graph calls. Then swap that contract for yours one member at a time.
GameObject integration covers the agent on a prefab. Entity integration covers the same job in a World. Sample games is the course order itself, four chapters starting with Platformer.