Questionable strategy


#1

I have noticed some people’s bots are sending a ship to the other teams shipyards. Essentially blocking it indefinitely. From watching the games, it seems they have no ability to destroy it? I only had one match against the person doing it, although it seems impossible to defend against besides preventing them getting to your shipyard. It feels like they are taking advantage of a bug. Of course I am likely wrong :slight_smile:

Is this expected? If so, no worries. I did not mention the player or link the games in case of this.


#2

You may use one of your ships to cause a collision, in which both your ship and their ship would be removed from the game but all of the halite would be dropped into your shipyard.


#3

Perfect! I will have to implement that somehow. I’m using ML personally so it would be hard without hardcoding that aspect. Either way, appreciate the advice.

Thank you!


#4

At the moment, it’s more or less a rush strat… High risk, possibly high reward. I think you can also spawn a ship to clear it (but I haven’t attempted that yet).


#5

In gaming terms it’s more cheese than rush - it only pays off if opponent doesn’t yet have a (simple) fix for it. If opponent does handle it then you’ve significantly crippled your economy and won’t catch up.


#6

You can definitely spawn a ship to clear it.

Note that if the ship is destroyed above your base, any halite it had will drop into your base!


#7

I assume it’s better to attack their dropoff points (if possible) since they can’t instaspawn a defender there.


#8

I don’t think either way is productive. The ship on a dropoff does not hurt you untill you want to use it. And when you do you just rum whatever ship you wanted to unload into the blocking ship autocollecting al of your and his halite and move on with your life.
I have only seen spawn blocking as a strat on lower level bots and if you set your ships to ram enemies on drop points it does not even count as an annoyance.


#9

I also only saw it through the higher rankings as my progressed to a decent rank.


#10

I just ran across this in a few games, enough to make me want to code in a counter.


#11

The simplest solution is to set the ship on all your shipyards and dropoffs to None in case it’s not owned by you. 5 lines of code. That will make your “naive navigation” calls ignore them and collide, in case you use that method, of course.


#12

That’s what I did, but rather than setting all ships and shipyards to none, When a ship is one square away I just check if the ship on my shipyard/dropoff is owned by me and if not, then ignore naive_navigate and just use the unsafe move to kamikaze it.


#13

@Stoobert but using that approach the shipyard/dropoff won’t be tagged by your own ship and cause a collision if there are 3 or 4 of your own ships trying to drop stuff there at the same time?

Ship 1 detects enemy, send move command without naive.

Ship 2 detects enemy, send move command without naive.

Ship 3 detects enemy, send move command without naive.

Ship 1 crashes with enemy as intended, ships 2 and 3 crash with each other.


#14

There is a flag to detect if a ship has decided to kamikazi, and if so, the others will wait until the square is free.


#15

It’s a fairly good strategy if the user is checking to make sure if their dock is safe, but you can quickly work out if they’re not by sending out a bot right at the start, checking to see if it reached the enemies dock, and then seeing if it remains there or not.

If it’s been in the dock and is then destroyed, don’t send out more. If it’s been in the dock and remains in the dock, you’ve won. It’s a massively positive risk reward payoff. If it doesn’t work out you’ve lost one of your ships early in the game which shouldn’t have a massive impact if your bot is comparable in skill, if it does work you’ve guaranteed a win.


#16

Dirty tricks are totally fair game. As long as everyone has access to the same set of rules, everyone has the ability to come up with a counter to a presently-winning strategy.


#17

On the contrary, it makes all the difference vs bots of equal level.


#18

If we view it probabilistically (kinda),

Running the dock block strategy:

  1. Your bot is worse, but they check if the dock is safe before depositing --> Your Victory
  2. Your bot is worse, but they don’t check if the dock is safe before depositing --> Your Loss
  3. Your bots are the same, but they check if the dock is safe before depositing --> Your Victory
  4. Your bots are the same, but they don’t check if the dock is safe before depositing --> 7/10 Your Loss
  5. Your bot is better, but they check if the dock is safe before depositing --> Your Victory
  6. Your bot is better, but they don’t check if the dock is safe before depositing --> 7/10 Your Victory

Victory in 4 out of 6 outcomes.

Not running the dock block strategy:

  1. Your bot is worse – > Your Loss
  2. Your bots are equal --> 50/50
  3. Your bot is better --> Your Victory

Victory in 3 out of 6 outcomes (1.5 out of 3)

The way I see it at least, it’s worth trading the possibility of losing to an equally good bot for the possibility of beating a far superior bot comfortably. It’s a scummy strategy, but it will work until people stop checking if their dock is safe.


#19

The point is that the outcomes you are predicting may be fit to describe middle to low ranks. Once you climb the ladder you will find less and less bots that get stuck by that cheesy strategy, so at that stage the effect is that your opponent gains a huge advantage over your bot that has only 4 mining turtles.


#20

Yep, the only real reason this strategy can work is naive_navigate.

Heck, my bot within top 100 doesn’t check for enemies at all yet so even fairly uncomplicated bots can run over this strategy.