For this assignment, you will be authoring rudimentary, intermediate, and advanced ABL behaviors for a single agent that controls multiple bots.
- Add a move action that takes a (int xdir, int ydir, int id) as input.
- Make a MoveTo behavior that moves a bot to a target location over time.
- Add a SetColor action that takes (int r, int b, int g).
- Add color sensing to the BotWME.
- Add on action that creates a new Bot
- Create 4 bots and have them keep a formation around the player.
Design and create a multi-bot social interaction that communicates to the player via movement and bot color. The player should be able to interact with your multi-bot behavior set through movement, shooting, or some other user interaction that you design.
Here are some spaces you can design multi-bot social interactions for but feel free to create your own:
- loneliness - how would the bots make the player feel lonely?
- factions - split the bots into two factions and put the player in the middle.
- stigma - if the character or a bot had a stigma (i.e. an extremely undesirable social quality), how would the bots react? If a bot or player interacted with the stigmatized character, how should the others react?
- building trust - The player starts as not being trusted by the bots. How would they gain their trust and how would the bots performance change?
You may work in teams of up to 3 people.
This assigment will be graded on a 100 point scale.
- 30 Starter Tasks
- 30 Intermediate Tasks
- 40 Advanced Tasks
Push your code to your group's GitHub Classroom repository. The master branch will be graded.
Question: How do I build and run the project?
Answer: The process runs in two steps: 1) compile the .abl code into .java classes and 2) run the GameEngine with the newly-generated code. To help you with this, there are two classes that have a entry point for execution (i.e. they have a '''static void main(String args[])''' function declared):
- abl.build.AgentCompiler.java - This class invokes the compile in abl.jar to transcompile .abl code into .java code.
- game.GameEngine - This launches the game. The code for your abl agent must be transpiled by abl.jar before you can run this class.
Question: I have changed my code and recompiled the project but the change isn't seen when I run the GameEngine class. What do I do?
Answer: Periodically, Java doesn't recognize that the .java files generated by abl have change and fails to update the .class files. Run Project->Clean... on the project and try again.
Question: There is an debugger window that opens and my bots aren't moving. What's is happening?
Answer: You have the debug variable set to true in AgentCompiler.java. This tells ABL to run your agent in debug mode which opens the debugger window and automatically pauses your agent before its first decision cycle. Press the Continue button to proceed.