Skip to content

ensemble-ai/abl-assignment-rts-squad

Repository files navigation

ABL-Assignment

In the assignment, we create a 4 bot social interaction, where we introduce distance sensing and color sensing into the Bot Sensors and WMEs. Based on the sequential behaviors and a new Move action that computes the inter distance between player and bots, the bots move away from the player as a group and eventually after constant pursuit disappear from the scenario due to constant bullying by the player bot. The distance based sensing provides for a move action based formation pattern that keeps the 4 chaser bots together and away from the player bot. A randomized increment of escape distance is updated for the bots in response to the player's movement towards the bot. An increasing escape speed for the bots facilitates the escape of all the bots quickly following player's continuous movement towards the bots. The update for trajectories and formation of the bots is done in the sensors and WME's and eventually triggers an incremental move action of the bots away from the player/host. If not, then the bots remain together and maintain the distance and group among themselves.

Description

For this assignment, you will be authoring rudimentary, intermediate, and advanced ABL behaviors for a single agent that controls multiple bots.

Starter Tasks

  • 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, int id).
  • Add color sensing to the BotWME (this includes changes to BotSensor.java and BotWME.java).

Intermediate Tasks

  • Add on action that creates a new Bot
  • Create 4 bots and have them keep a formation around the player.

Advanced Tasks

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?

Group Work Policy

You may work in teams of up to 4 people.

Grading

This assigment will be graded on a 100 point scale.

  • 30 Starter Tasks
  • 30 Intermediate Tasks
  • 40 Advanced Tasks

Turn-in

Push your code to your group's GitHub Classroom repository. The master branch will be graded.

Questions and Answers

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):

  1. abl.build.AgentCompiler.java - This class invokes the compile in abl.jar to transcompile .abl code into .java code.
  2. game.GameEngine.java - 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.

Screenshot of the ABL debugger

About

abl-assignment-rts-squad created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages