1 of 10

4 min presentation in DD2438

Group 14:3

Samin Chowdhury and David Kaufmann

2 of 10

Approach so far

  • Behaviour Trees
  • 2 “attackers”, 2 “defenders”
  • Dictionary of pairwise distances
  • Basic controller simply accelerating towards target
  • Simple collision recovery

Up next…

  • Use observations to get better reading of position
  • Figure out proper attack strategy
  • What to do about the super pills
  • How to run Client-Server

3 of 10

Behaviour Trees

  • Inspired by Petters videos & PandaBT Demo
  • Use the PandaBT package
  • Have separate behaviours for “attackers” and “defenders”

4 of 10

Pairwise Distances

  • Created because we thought we will have to change our target location often
  • Calculated at the start of the game
  • Dijkstra from every possible start grid cell
  • (according to Wikipedia more efficient than Floyd-Warshall when graph is sparse)

Pro

  • Makes querying of distances very fast
  • Fast calculation of paths

Con

  • Still slow (~ 15s)… Maybe we’ll try to speed it up somehow

5 of 10

Attackers

  • Divide food based on pseudo Voronoi
    • Each attacker takes care of food they are closest too
  • Once enough food collected go home

Open Questions

  • How to best avoid opponents?
  • How to decide what to do with next action (avoid opponent?, go home?, eat food?)
  • What to do about super pill? (Maybe take at the end)

6 of 10

Attackers next steps… what do you think?

Different Ideas

Pros

Cons

Voronoi

Calculate Voronoi partition to find grid-cells the attacker can reach before any opponent

Will guarantee that we can reach all cells without getting caught by opponent

Computational expensive,

How to decide which field within the Voronoi region to choose?

Some “deep” Q-Learning

Learn action values from which we can infer the optimal action in each situation

We are excited to work with it,

Fast querying of Q-Values,

Decision in every situation if policy is good

Will policy be good?,

Need to setup training environment,

How to run training,

What is the input and output,

Changing number of agents?

A* with smart heuristics

Run A* based on grid with heuristic expressing more than distance

Could work as a heuristics approach,

Could have similar benefits as Q-Learning without training difficulty,

What should we set as target position,

Again are we fast enough to calculate,

Can we define expressive heuristics

7 of 10

Defenders

  • Defenders guards the edges
  • Position is based on the biggest opening between the map

  • Next Step (Depends on Observation Update)
    • Defender should Position themselves along the edge based on the Closest Enemy
    • Better Future Position Calculation

8 of 10

Observations

  • We currently do not have a good Estimation for the Observations
  • biggest issue is how rarely the Observation readings updates

  • Questions:
  • Will there be faster Observation updates?
  • Can we use RayCast outside host mode?
  • How to best estimate the noisy readings?

9 of 10

Client-Server

We experienced issues when running client server mode:

  • For some reason game does not start properly, only one team performs actions
  • When building a new executable the code remains the old one

Anyone having similar issues or any hints?

10 of 10

Progress Status Week

  • Comment to customer paying 250 000kr for the report:
    • We have a simple solution running now we will go towards more advanced approaches
  • Planned Time spent: 20%
    • (Out of the combined 200h)
  • Actual Time spent: 15%
    • Out of the combined 200h
  • Actual Progress: 15%
    • (estimate progress towards completing assignment)
  • Risk of not completing assignment: 3%