AI代写:CS344 Behavior Trees

代写Behavior Tree,实现游戏里面几个不同NPC的简易AI.


Have at least 4 NPCs doing something interesting.

  • Implementing 10 Behavior Tree Nodes in C++
    • per node implemented
    • At least 3 of them have to be control flow nodes or decorator nodes.
    • Debugging nodes do not count towards this total
  • Using the GUI, create 4 unique behavior trees
    • per tree implemented
      • At least 8 nodes per tree
      • At least 3 nodes deep at some point in the tree (root node is at depth 0)
    • Required: use all 10 of the nodes you created
    • Required: use all 4 trees in project
  • Project post-mortem readme.txt.
    • Have project name and summary.
      • No “Behavior Tree Project” as project name. Choose the name to better represent what you implement.
    • Write one paragraph explaining what you liked about the project and framework.
    • Write one paragraph explaining what you disliked about the project and framework.
    • Mention any difficulties you experienced while doing the project.
    • Describe any attempted extra credit.

Extra Credit 1

First to find a particular significant bug in the Behavior Tree framework (not the entire project).

Extra Credit 2

2 instances of agent communication with messaging system.

  • Required: sender and receiver have to be different
  • Required: include file and line number to find agent communication code in readme.txt.
  • At least one communication between agents with different trees.
  • Use SendMsg(), SendMsgToAll(), or SendMsgFromSystem().

Extra Credit 3

Implement Formations.

  • At least 3 different formations.
  • Must move various directions as a formation and not single-file queueing
  • Must have button(s) to switch between them.
  • Must move to the target when user clicks it with mouse.

Extra Credit 4

Implement Flocking.

  • Flocking must look believable with default variables.
  • User can change target by clicking it with mouse.
  • Must have sliders or buttons to tweak separation, alignment, and cohesion.
  • Must also do changing goals and wandering.

Turn in 1

Remove “Homework1” directory (-5% if the folder is not removed).

Turn in 2

Place in directory “Project1” All code, resource files, and exe (-5% if I can’t double click exe and run). (-5% for large unnecessary files: “.ncb”, “.db”, or “.sdf” file, hidden subversion directories/files, anything from the Debug/Release dir that isn’t the exe)

Turn in 3

Maintain original framework structure and make sure *.bat batch files set to the correct VS version. (-5% if I can’t double click Build.bat to build the project)

  • Do not change solution name, project name, or folder name.

Turn in 4

Readme.txt (include what the behavior trees do, all attempted extra credits, and post-portem).

Create Behavior Trees

  1. To create behavior trees. First create node files. (there are example files in “Source\ BehaviorTrees\Nodes\“ folder as reference)
  2. Then register nodes in “BTResources\Nodes.def”.
  3. Then run BehaviorTreeEditor.exe to create your behavior trees.
  4. In world.cpp, register agent with the tree
  5. Read course slides for more info.


  1. The framework supports VS2013 and VS2015.
  2. If you can’t build the project. You may need to install DirectX SDK.
  3. By default the framework uses VS2013. You can change the setting via:
    Project->Property->Congiguration Properties->General->Platform Toolset
  4. After you finish the project. Please change “vs_version” variable in Build.bat file for the version of Visual Studio you use. (2013 for VS2013, 2015 for VS2015)
  5. Double click Build.bat to build the project and place executable in “BehaviorTrees” folder. Then test your executable to make sure it runs and does not crash.
  6. Change your executable file name to the name of your project. (So when TA build your project the executable does not get overwritten)
  7. Before submission, double click Clean.bat to remove all unnecessary files. Also manually check the size of your folder. If it exceeds 20MB then you may have some unnecessary files or folders.
  8. Do not change “BehaviorTrees” folder name.
  9. This is a 32-bit project. DO NOT CHANGE IT TO 64-bit.


  1. Executable is in release mode.
  2. Fill out readme.txt.
  3. Submitted on the network (“Submit”) folder BEFORE 6:00PM.
  5. All code and resource files were in “Project1” folder.
  6. Removed all other files and folders in your submission folder.
  7. Changed “vs_version” variable in Build.bat file for the version of Visual Studio you used.
  8. Did you test the exe runnable without the debugger? Test it by double clicking the exe to run (NOT IN THE DEBUGGER).
  9. Did you remove all unnecessary files? Include but not limit to: the debug folder, release folder, ipch folder, ncb file, db file, sdf file, and all subversion files. (Use Clean.bat)