Halite Home

The Non-Aggression Pact!


In multiplayer, there is a strategy that for me has proven to be somewhat successful, the idea of forcing your bot to never take the last neutral site between you and another player.

The reasoning behind it are pretty simple :
-Most bots send more strength to attack you more when you have more fronts with them, avoiding fronts can therefor be beneficial.
-The strength that is payed to open that last barrier would be payed by your enemy, which would result on minor savings, you do give your opponent the first move though, a smart bot could set up an attack while the neutral line is in place.

Testing this strategy internally, when two bots in multiplayer both do not open that last line of neutral sites between them, it's like they cover each other's backs and their win-rate went up drastically as a result: They had to fight one less foe in the midgame and their other foe's would succumb to superior pressure (with two neighbours, 1.5 to 1 as opposed to 1 to 1). The bots would always end up fighting in the end though, one of the bot's felt at some point comfortable taking on the other or they were connected to each other through the enemies they took out.

There might not be RNG in this game, but any multiplayer free for all game is by definition randomised by the players you get matched with. I have lost countless games because of ridiculously aggressive early expansions against me, directionally biased bots or players getting out of control because their neighbour was terrible. I think this one is an interesting strategy to share, it's the same type of RNG but it can have a positive effect instead.

Tell me what you guys think...


I think this strategy can pay iff your production is higher than ennemy's one, simply because else it will be able to earn strength way faster than you.

Nevertheless, it's an interesting idea, it may be effective on some kinds of map where hyper expansion is not the key.


There are a few bots out there that do this. It usually doesn't work out well for them - you see this telltale dancing around the borders when two bots implementing this strategy happen to be next to each other.

I agree that there are sometimes advantages to not breaking through a border, but the key to implementing this well is figuring out when it is advantageous to break through the border.


I agree, right now mine does it when he he has more strength than anyone else combined, but I'm sure there are cuter ways to write down these type of conditions.


@cdurbin Follows a similar strategy here and grabs 2nd in a 6 player game.


Ha, thanks for sharing. I've had some form of avoiding enemy borders in my bot for awhile - looks like it can get really wonky when combined with a recent change I made.

I've gone a little overboard with implementing every idea I come up with (this game is too addictive). I think it's about time to simplify my code again!


I still haven't improved my border strategy, but now @ewirkerman is really helping me in a lot of games. I've seen a bunch of games where I should finish towards the bottom, but our bots "Non-aggression pact" allow us to survive.

You can see my implementation is pretty terrible with wasted strength and production, as well as times I should clearly abandon the pact, but even so it is still effective.

Non-Aggression Pact in action


Like you said, the key is when to break through. I haven't decided on anything I'm happy with yet, but could be fun to watch a meta game build up. Maybe build in some memory for attacking bots who already attacked you?


This really does help you guys a ton in-game and, since you rank so close to each other, probably has quite a measurable effect on your rankings.

I've scrolled through several games involving both of you. I have yet to find a game where neither one of you finishes first (I'm sure they're there though).


Agreed. It also made me realize there is room for a new challenge after February 12th:

Team Halite

You are randomly assigned to teams at the start of the match and all players on the same team finish in the same place regardless of territory of players on your team or when you were knocked out.

All of the mechanics are the same, you still control only your own pieces and damage all other players including your teammates.

I think there's enough nuance that by default the best team players would not necessarily be the same as the best single Halite players, and would require some interesting new behaviors. This is not just an excuse to keep the game alive beyond February 12th. :slight_smile:

Some ideas for Halite v 2.0