explain this lecture 

hi everyone welcome to um the 2025

battle code kickoff um here at MIT um

yeah we started at 7:05 because again

it's MIT time so um all of our lectures

will be starting at uh 5 minutes after 7

p.m. so let's just get started with

revealing this year's game hope you all

are very excited to compete this

month so yeah again welcome to battle

code 2025 where am I te's largest in

Premier AI programming competition where

teams of one to4 compete using Java um

this year we're using Java 21 not Java 8

which hopefully you guys are happy about

and we're also introducing a new

experimental python division um for MIT

students to compete in if you're here

you probably know that this is a sixun

iip class um but even if you're not

registered for the class at MIT uh we'd

like you to register on the play. battle

code.org um website because that's where

you'll be submitting your code and

seeing how your Bot runs against um

other opponent's bots so yeah if you

haven't done that yet go to play.

code.org and um just sign up and join a

team if you're on a

team okay before we move on we'd like to

give a special thanks to all of our

sponsors who helped fund our servers in

tournaments this year and additionally

we'd also like to acknowledge all of our

devs this year that have been working on

the game um affectionately Miss Miss

name U Miss SP to devs um our engent uh

client and web infer team have all been

working very hard um to prepare this

game and make this whole game possible

for you guys this

year okay let's move on to some class

Logistics so we'll be holding lectures

um every weekday for the first two weeks

of January um so that's beginning today

at 7M eastern time in this room

32155 um and there'll be live stream on

YouTube as well which some of you may be

watching

um the lectures will last on average

about an hour from 7:00 p.m. to 8:00

p.m. and then after that we'll be

hosting 2our office hours inside this

room um after each lecture so feel free

to come in here if you need help with

your code or um writing your Bot and

again these lectures will be for just

the first two weeks of Ip um again this

is a six unit IP class for MIT students

and it's uh past sale so there are two

ways to pass this class for credit

either you can create a bot that can be

a reference player which will release um

as well as the code for for in week

three and if you don't want to do that

the other way to pass this class is to

basically write a two-page report

explaining um how your team coded your

Bot what strategy use um and yeah so

those are the two ways to pass the

class now let's move on to the

tournament Logistics so we have first

two um our first two Sprint tournaments

will be on Tuesday so that'll be January

14th and January 21st respectively um um

and after that we'll have the

international qualifiers on January 25th

and the US qualifiers on January 27th um

if you're an MIT student and this is

your first time competing in battle code

you're also eligible to uh to compete in

the novice qualifiers which happened on

January 29th and if you're a high

schooler which none of you guys in this

room are but if you're a high schooler

you're also eligible to compete in a

special High School Division on January

29th um you're not required to

participate in any of these tournaments

so we really recommend that you compete

in all the ones that you're eligible for

um just because uh there's really no

loss in competing and we have prizes for

each of these tournaments um the

eligibility is open for the Sprint one

and Sprint two so anyone is able to

compete for those um for international

qualifiers we take um teams consisting

consisting entirely of international

college students and um for us

qualifiers to take teams that consist

entirely of us college students um and

on February 1st we're going to be

hosting the final tournament in cust

Auditorium here at MIT so if you're in

one of the top 16 teams we'll fly you

out to MIT um and uh you get to meet the

other teams we have a fancy dinner the

night before and you get to talk to all

the sponsors it's really a lot of fun so

yeah that's something to look forward to

and there will be lots of prizes of

course so yes the final uh the final

dinner and the final tournament will be

on Friday and Saturday um at the very

end of I or January

okay um oh yeah so the way that you

basically submit Bots for tournaments is

you basically submit your code to a

website by sted deadline and we just

take the code that you submitted and run

it against other people's spots

um okay let's move on to some practice

materials because you guys might be

wondering like how do you see how your

Bot kind of ranks against other people's

bots so one way that you can do this is

by using the official reference play

which again will release week three of

the competition um

this is also the bot that you guys have

to be in order to pass this IP class um

another way that you should really take

advantage of is by uh using the

scrimmages feature that we offer so

scrimmages are just friendly um matches

between teams um they let you see your

robot kind of play out in action against

other teams and you can kind of evaluate

how your strategy is stacking up against

other people's um we also offer rank

scrimmages so in those you'll be able to

stick some ELO points on the outcome

match and basically um the scrimmages

help you um determine an internal ELO

which we then use to see the tournaments

in the later um like the US qualifiers

and international qualifiers um so after

you submit your Bot for scrimmage your

engine should run the game and outplay a

replay file and um you're able to

download replay files from online and

then use like your client to visualize

these um so basically you can see what's

going on during each of your games and

that should also be a helpful way way

for you guys to kind of practice and

like see what's going on with your

Bot okay so now we'll move on to the

actual reveal of the game so drum roll

please okay battle Cod 2025 theme will

be chromatic conflict sure you guys have

seen the bunnies ready but now we're

going to tell you a little bit more

about what they're doing and why they're

in Conflict so yeah um I'll pass it on

to Leo now

um hi everyone so I'm Leo I'm one of the

of the I'm one of the T devs and I'm

going to guide you through what the game

is going to look like this year um the

game is chromatic conflict and here's a

sample you can see there of what the

characters in the game look like um so

here's a brief overview of the story

behind The Narrative behind the game the

bread and food of Y has begun to run out

forcing robot Society to adapt gone at

the jovial docks replaced by steampunk

robot bunnies who have who have

converted their need for nut CH into a

reliant on paint these Bernies have

become territorial forming Clans and

defense formations to protect the

resources that keep keeps them running

for the past two centuries these bures

have stayed within their own territory

but clams have begun Clans have begun to

degrade the environment and start

branching out with these Clans will

these Clans be able to expand their

territory and generate enough pain to

protect their families or will they

stray too close to other CL and be wiped

out in Conflict this is the big deal of

the game um the objective of the game

basically is to paint More than 70% of

the paintable squares on the map and you

use Towers to generate paint money or to

defend your land paint specific patterns

to do extra stuff you basically can

paint specific patterns around certain

areas in order to be able to do more

stuff um so here's a sample of what the

map will look like you'll get very

familiar with this figure because it

will come back a lot as you go through

the battle code this year um we first

have RS which are immovable and non

destructible and they're used for

building Towers Towers like I said

before are used in turn to generate

money to generate pains which are going

to be very useful for you if you want to

win the game and then we have Towers

like I said it's built on top of rings

and we have also walls which are

impossible and you cannot paint on them

we also have paint and each team has two

paints one primary and one secondary

paint the resources the main resources

you're going to to use as you go through

the game is paint and chips which is

basically money cash

um more details on Towers again

repeating Towers can only be built on

ruins that's very important because it's

not going to work anywhere else you can

spawn BTS and hold 1,000 pins mat

maximum in each Tower and you start with

500 Paints in each

Tower um can you can attack other BS

with a single attack or an area of

effect attack a single attack is

basically

one restricted range one restricted

block and then an area of effect is a

much larger

area um so here is what the icons for

The Towers look like this one is for the

one to the extreme left is for the money

generate the chips or the money to the

middle is the paint to generate paint

and to the extreme right is for defense

um if you want to build if you want to

create something out of the towers you

have to use the function Mark to pattern

and once you use the function to try to

build it on a ring it has a very useful

functionality where it will show you the

part it will show you where you can

paint using the numbers like one two

around it and using those numbers it

basically guides you on how to paint in

order to construct whatever you want to

construct and then complete our pattern

is the function you call once you are

done painting around once you done

painting on the

r around the R so yeah that looks like

it so money and paint massively mind

resources in order to be able to

generate all of that you have to M the

resources and so money and pain Towers

yearn for the

minds pin stored in the tower

paints stored in the tower

chips pains are stored in the tower and

chips are available to all elite units

you also have something called spal

resource pattern which is a 5x5 pattern

and for each instance of the pattern

that you create on the map you'll be

able to mine at a rate multiply by three

which is really useful um you start

using the pattern using a function

called Mark resource pattern and you

stop the pattern using complete resource

pattern and then you also have

um again Towers can spawn units for you

and if you have enough paint a star can

pound it can spound a a BT with three

blocks in the tower three

blocks of within the

tower um so we have two types of attacks

again we have single block attack and

area of effect attack and every turn a

tower can perform one of each so you

choose one

um so now we move to what the part two

will look

like there

no okay wow hello um well you've already

seen them but like we got the soldier

Bunny and The splasher

Bunny and the mopper bunny um so these

are your three types of robots that you

can spawn and use however you want um so

the soldier bunny can paint empty tiles

or deal 20 damage to enemy Towers not

robots um within a radius of square root

20 um and then the attack and cool down

are um special to

itself um and then splasher bunnies BAS

basically Target a center location and

then like Splash um like all of the

tiles in a circular area around that

location so it can deal damage to enemy

Towers um but it costs more to like

produce it and um to do an

attack and then mopper bunnies um

basically clean up your tiles for you um

so it can remove enemy paint on the tile

um and if if an enemy robot is on the

tile they lose 10 paint and the mopper

gains five paint so it actually loves

stealing it can transfer paint from

itself to Allied robots or Towers um and

it has a little mop sleep attack that

can remove um five paint from enemy

robots in three adjacent

tiles oh so for example um you can see

in the top left um if silver chooses to

swing right then it will remove five

paint each from all three of the gold

bunnies um if it chooses in the bottom

left if it chooses down um left or up

either way it's only going to be like

one bunny loses um five paint the rest

are fine and then um if they don't also

have to be like in a line like if for

example you had one in the corner over

here and then in the corner over here

and you swung um right um both of um

would lose five paint

okay um communication is key to a

healthy relationship unfortunately if

your robots and towers are not connected

by paint they are not in a healthy

relationship so they can't communicate

um and what that means is that um the

robot needs to be able to access the

tower through the paint so like it has

to have some Pathway to the tower in

which it only walks on like its own

paint um and and you can send two kinds

of um communic there are two forms of

communication U one of them is messages

and they go from robot to Tower or Tower

to robot um and you have to be within

range of each other um you can send more

information that way but it's also like

there's a bite limit um the second way

is markers and you can communicate like

robot robot communication that way but

it literally all it does is just like um

you should paint this color on this

block but it stays there

so so hopefully that give you guys a

basic idea of what the game looks like

for this year um if you have more

questions um we strongly recommend you

to take a look at the game specs which

are now released on Play battle code.org

um they have basically descriptions of

everything we just discussed earlier but

in more depth and they also have more

detailed diagrams of all the units inter

their actions because we know from that

was probably a little bit confusing when

you looked at it for the first time um

yeah um in addition we just want to make

some more comments about the python uh

the experimental python division so

basically we've introduced a new python

engine for this year because that's

something that's been highly requested

in previous years um the way that it's

going to work is that all competitors um

even nonm will be able to submit Bo and

python um but only MIT students will be

able to um submit python Bots for

tournaments um that's just because the

python is still in the experimental

stage we're still trying to work out a

few bucks but other than that um if

you'd like to submit a python B please

go ahead we'd really like to

see oh yes unfortunately Java and python

Bots cannot like crossplay against each

other um maybe that's something we'll

think about um implementing in the

future but but for now Pyon is still in

an experimental stage but we hope you

guys enjoy the the new Option of

Pyon um also if you guys haven't joined

a team yet um we're going to open the

room up to team finding now and you're

also free to join our Discord um at this

link shown here um we have a team

finding Channel and we also have a few U

voice channels if you guys want to join

and talk to other people uh to find your

team again you can be in teams of up to

um four for this

competition and thank you guys um please

let us know if you have any questions um

we're always active on Discord and yeah

hope you enjoy reading this text and uh

we'll be back here tomorrow at the same

time to discuss um intro to Joba also

just like basics of how to get set up in

so