My Bot and some thoughts, as someone who came to the party much too late

Hey all, I do apologize for being silent this year.

I’m going to drop a few observations and some challenges I faced, If anyone can offer some insight I will be deeply grateful.

For event 1 I worked on a genetic sequence, but the round delay messed me up so i moved it off.
For the second event the same thing happened,

Then I found myself starting my bot with a complete rebuild on 20 August 2021.

It was a bit to take on but i pushed in a bit of hours.
Essentially over the last 2 days.

My strategy is pretty straight forward. I knew that teleport was the absolute game. The one who grows the fastest wins almost automatically.

I had only 5 strategies built in this year

A) Growth
This is a 9 round genetic sequence that moves my bot according to score / growth for the first 9 moves,
Every round I push out a move and recalculate for 60 ms. This worked pretty well and it seemed to honour the 1 round relay Challenge #1. I also figured out an new addition to my own varient of a Genetic AI, which kills off all but the strongest member of a population and adds 8 new members (moving in 8 different straight lines) to push deeper,
This was a great find because I always had issues with convergence.

**I make this sound intense but its not that impressive. It also only half works *Challenge #2

B) Colossal
Once I reach a certain size and my bot gets slow, my genetic sequence fails, for this I entered a new movement pattern where I count the scores for moving in 50 speed sequences 5 times (for around 250 distance traveled)
This made my bot move almost more to avoid gas and the border than to actually consume, but it worked well enough and being slow every round I could recalculate my lines.

C) Torpedo A
I could probably have done better here, and its a weakspot, but I needed to focus on teleport.
For now I barrage anything that is larger than myself = 30 size (a threat that cant be teleported) and which size is in a certain distance ratio.

D) Chaos
This is my teleport strategy, though given more time and focus I would have been able to do so much more here.
The largest challenge here was tracking my own teleporters **Challenge #3, I only started this function at 1PM Yesterday so im grateful it works. What I settled for was to store the last teleporter fired’s angle, and if I find a teleporter with that angle I set it to my own.

I would fire my teleporter towards a opponent where if I teleported and mysize - 20 < enemy size with an bit of an offset.

This works 90% and if any enemy is weak I have a pretty good response, But I tested reference bots, and killing them is much easier than enemies that fire back.

E) Chaos Strike
This is simple, if the next state of my teleporter will allow me to teleport and kill the enemy, I hit that.

To me this is the absolute of the challenge.
But to do well here you really need to get into a dominance position.

I did not use shield,
I did not use SuperNova
I even ignored Astroids,

Now for my challenges, Asking because I wonder if I could have handled them better.

Challenge #1:
On my side I could not get past the 1 round delay, I had a pretty dead AI and the moment I added timed loops (doing nothing) I got a 1 round delay.

I checked 1 Tournament match and saw that even the reference bots seem to have this as they always turned one round late. Was anyone able to bypass this in real time? or was it a engine limitation?

@Entelect Team: I would reason it would be wise to add a 10 MS delay between sending the updated game state and pushing the new moves, so that we can push moves in real time

**In case this is the engine. That one round delay is quite complex to drag along. I had to store my last move made in a variable to force that as the start of all my genes in the next round and do that just to have a realtimelike AI.

If anyone got a solution here please let me know (I did not want to mess with posting moves before the new gamestate comes.)

Challenge #2
Calculating new positions,

What was up with this? My own AI just could not correctly calculate the new positions,
To give one case and likely where I messed up:

I was traveling at say 30 Degrees, first move hits no food, second one does, Then the distance traveled differed between these moves,
Almost like hitting food impacted the actual move that was being processed,
**I assumed for now that traveling 20 and hitting food meant traveling 20.

Sadly I could not focus on this problem,
Does anyone know exactly how the new point calculations worked?
That messed me up a lot.

Challenge #3
Was there a place to actually read whether a teleporter belonged to self?
Or did you need to do funny loops,

Anyways,
That is my own strategy and things that messed with me a bit.
For me it is a matter of teleporting.

Doing all of this the last week I noticed that I could have influenced the balancing a little bit more.

I also want to mention that I think this year’s challenge was amazing,
**I just had a lot of distractions this year, so I missed out.

In fact, If the challenge did not extend I would not even have participated.

My Bot is very weak starting game (grows faster than the to closest references 80% of the time) but it gets pretty beefy when it activates colossal.

My final assessment: Its all about teleport
But I ignored the Supernova, (Most matches ends way before it even appears I think…)
Its common for matces to be done just after round 200 (for a 4V4 setting).

With all this said, Goodluck all,
And what did you work on that you feel was pretty decent?

Hey @WillieTheron, those were some great insights

As a Third-year student, I did not have many great tricks up my sleeve.
I kept my bot really simple because I had to focus on my Informatics third Year project.
I did incorporate all features besides the afterburner because it did not seem to be useful.
You are right the teleporter was a game-changer and too Over Powered there should have been something else to counter it.
My AI chose an action and movement angle based on priority and I had a function that would average the angles.
With a simple bot, I did not face any issues with the game engine as I used mathematical models.
For the first tick, it takes an average of 40ms but after that, it drops down to 0ms with a normal average of 16 ms.

1 Like

Sometimes simple is best.

I always overcomplicate things my side, But time was rough.

Goodluck on your side.

1 Like