1 of 23

2 of 23

Competition Overview

  • Github Code

  • Colab Code

3 of 23

The Challenge: Competitive Game of Life

  • You control a grid of agents.
  • Your objective: eliminate the enemy agents

Your Cells

Enemy Cells

Neutral Cells

4 of 23

  • Each Cell Can attack in a 5*5 grid
  • Attacked Cells become the type of the cell they were attacked by in the next time step

t = 1

t = 2

5 of 23

  • BRAND NEW: If enemy cells attack the same cell, the winner of the cell is probabilistically determined

t = 1

t = 2

p = 0.60

p = 0.40

6 of 23

Details: Cell Death

  • If cells are surrounded by >6 live cells, the cell dies

7 of 23

Maps

  • Size may range from 5x5 -> 50x50
  • Edges wrap around
  • May contain walls
    • Walls of width 1 can be “jumped” over
  • BRAND NEW: Map evolution
    • Walls can appear and disappear over time

8 of 23

Example Maps

9 of 23

Map Evolution

10 of 23

  • Your job: Write a function that receives the game state, and returns attack direction for each cell

Function Input:

[game_H, game_W]

(0 empty, 1 wall, 2 friendly, 3 enemy_0, …)

or: [C, game_H, game_W] (one hot)

Function Output:

[game_H, game_w] (coords encoded as ints)

or: [attack_h, attack_w, game_H, game_W]

11 of 23

Designing an Agent

What policy() sees per cell

What policy() does per cell

12 of 23

Two Types of Function Input

13 of 23

Enum Input (per cell)

  • Enum: int
  • Total output: int[game_H, game_W]
  • Input from the perspective of agent 0 (blue): see right

2

2

2

2

2

2

3

3

0

0

2

2

2

2

2

2

2

2

0

0

3

2

2

2

2

2

2

0

3

3

3

3

2

2

2

0

2

0

3

3

3

2

2

2

2

0

0

3

3

3

3

2

2

0

0

3

3

3

3

3

2

2

2

0

3

3

3

3

3

2

2

0

0

3

3

3

3

3

3

2

0

0

3

3

3

3

3

3

3

2

0

3

3

3

3

2

3

3

2

2

14 of 23

One-hot Input (per cell)

  • One-hot: int[]
  • Total output: int[N, game_H, game_W]
    • N = number of agents
  • Input from the perspective of agent 1 (red):
  • [[[0, 1]
  • [1, 0]]
  • [[0, 0]
  • [0, 0]]
  • [[1, 0]
  • [0, 0]]
  • [[0, 0]
  • [0, 1]]]

15 of 23

Two Types of Function Output

16 of 23

Enum Output (per cell)

For a given cell:

  • Enum: int
  • Total output: int[game_H, game_W]
  • Output for this cell: 18

6

11

16

7

17

8

13

18

1

2

3

5

10

15

0

21

22

23

20

9

14

19

4

24

12

17 of 23

Probability Output (per cell)

For a given cell:

  • Distribution: int[5, 5]
  • Total output: int[game_H, game_W, 5, 5]
  • Output for this cell:
  • [[0.02, 0.03, 0.01, 0.01, 0.01],
  • [0.01, 0.01, 0.01, 0.01, 0.01],
  • [0.01, 0.04, 0.06, 0.02, 0.09],
  • [0.01, 0.01, 0.02, 0.2, 0.1],
  • [0.01, 0.01, 0.09, 0.1, 0.1]]
  • Can also output logits (github only)

0.01

0.04

0.01

0.01

0.02

0.01

0.02

0.2

0.03

0.01

0.01

0.01

0.01

0.01

0.02

0.01

0.09

0.1

0.01

0.01

0.09

0.1

0.01

0.1

0.06

18 of 23

Tournament Details

19 of 23

Game Details

  • Grid size will be anywhere from 5x5 -> 50x50
    • May not stay consistent across matches
    • May not have non-square grid sizes
  • There may be walls present - and those walls may move
  • Map evolution
    • Maps that change over time
  • 1v1 matches
  • Each team starts with 1 cell
  • There will be timestep limits ranging from 50-2000
    • If grid sizes change, timestep limits will scale accordingly

20 of 23

Prizes

Prizes will be given as tuition reimbursement

$1000

$500

$250

21 of 23

Timeline and Structure

  • You have 1 months from today!
    • Noon, Mar 4th, 2024 <- this updated!!
  • Teams of 1-4 people
  • Winners will be decided on tournament, where models battle each other
  • Submissions will be sent to: mlds.utexas@gmail.com with subject line: 2023_2024_long_comp

22 of 23

Code & examples

  • Colab Version
  • Github Version

23 of 23

Game Night Social!

Form Teams!