The BOOM notation for the game of Hive
This article was reviewed by the wonderful community from the Hive Discord server. Thank you to Samraku, Frasco, and Veme for their valuable insights.
The European hive convention
Last week, the first European (and international) Hive convention was held in Budapest. Hive is a 2-player abstract strategy game with no elements of randomness, invented by John Yianni in 2000. It has simple rules, minimal material (only 28 pieces), and surprisingly high depth. The first world championship took place in 2007, and the community has been growing every year, along with the overall level of play.
I learned the game in mid-2023 and was immediately hooked. However, I couldn't play much since few people around me shared the same passion, and I was unaware of the community. It wasn't until I decided to create an AI for the game in the last week of that year that I discovered the Discord server and the interesting discussions happening there.
Since I was focused on the AI and didn't enjoy playing on BoardGameArena, I still couldn't play much. Time passed, and I decided to attend the convention in Budapest, hoping to meet people and learn some new strategies. A tournament was held on the first day, and I expected to struggle to avoid finishing last. With hope and about twenty games of experience, I naively started playing.
I got completely destroyed.
Out of the 8 games I played that day, I managed to score a single draw; the rest were crushing defeats. I knew I would lose, but not that badly. I asked Claudiu, my first opponent, what I did wrong, and he replied that he didn't need to think much; I lacked basic theory. That's when I realized I was still a complete beginner in a tournament later dubbed "the highest level IRL Hive tournament at the moment." Hive had so much to offer, and this was exciting!
The established notation
To learn from my mistakes, the first step was to record my games for later analysis. A well-established notation was invented in 2006 by Dave Dyer and is still used today. It uses the first letter of the English name of the bug to designate them, and each turn can be noted in two words: the first to designate the bug to move and the second to indicate the target based on a bug and a direction.
Example: bS1 /bG1
(this means that the first black spider moves to the bottom left edge of the first black grasshopper).
There are multiple things I don't like about this notation:
- It is verbose.
- The direction sign can prefix or suffix the target word.
- The pieces must be oriented with a vertex pointing upwards for it to work.
- We have to keep track of each bug's number.
- The characters
-/\
do not intuitively indicate outward direction (leading to additional explanations).
That's why I decided to try to invent something better. This is a challenging task as many people have already tried it. The issue is that it cannot be only marginally better, as replacing something that everybody agreed on 18 years ago is not easy.
But that won't stop us from trying, will it?
Introduction to the new notation
"BOOM" stands for "Bug Ordered & Oriented Moves"
First, here are the constraints I wanted to work with:
- Only alphanumeric characters (and a delimiter).
- It should work with both possible piece orientations: flat-topped or pointy-topped.
- It should be as concise as possible.
- We shouldn't need to track individual bug numbers.
Here's the gist:
I'm using the first letter of the bug names to designate their type, with uppercase letters for white bugs and lowercase for black. The direction is a number from 1 to 6 that follows the reference bug specification. The bug number is determined by counting the bugs in play in an unambiguous way.
The direction
A drawing is worth a million words:
In my experience, when playing over the board, we often point an edge towards the other player when placing the first bug. It's more natural this way, as it's easier to align the bugs when starting the game on the invisible axis separating the players, and also because in the official game, the bugs face the edge of each piece. However, this notation also works when pointing an angle towards the other player.
Theoretically, you could use an inverted clockwise direction system or start with 1 on any edge you prefer, since the result will be the same (just off by one reflection or rotation). But I propose using the methods described in the images to establish a standard.
The bug number
When we want to point to a specific ant, beetle, grasshopper, or spider, instead of using a virtual number assigned to the piece when it's placed, we count the bugs of that type already in play.
Again, a drawing: Now, by assigning numbers while following the arrows and going from left to right, we find that the white ant next to the white queen is ant #3.
This can also work when pointing a vertex towards the other player: Now, you assign number by following the arrows from top to bottom, like reading a book.
To be noted that we can still use this notation with the usual bug number if we so desire. It could be easier to use that if your pieces are already marked with a number.
Be concise
When there is no ambiguity, avoid specifying the bug number. It is also the most time-consuming part of the notation, so this makes writing moves faster.
When introducing a new bug into the game, don't specify its number. When stacking on top of a bug, don't specify any direction (when a beetle is climbing, for example).
Try to use unique bugs (queen, pillbug, ladybug, and mosquito) as movement targets to avoid the need to specify a bug number.
Example game
1. P
(White starts with his pillbug)
2. lP1
(Black follows with its ladybug in front of the pillbug)
3. QP4
(White places its queen opposite to the enemy ladybug)
4. ql6
, 5. AQ5
, 6. pq1
, 7. MQ6
, 8. mp2
9. Mq6
(First move of the game but we're still using only 3 characters)
10. ap1
, 11. SM6
12. aS5
(We don't need to specify the ant number: it can't be a placement)
13. BQ6
, 14. ap1
, 15. BP
, 16. bq2
, 17. pM5
18. a2A5
(First time where we need to specify a bug number)
The position after move 18 is:
This game was played on hivegame.com.
In this example I have noted the turn number, but when jotting down the moves while I play, I would instead write: P,lP1,QP4,ql6,AQ5,pq1,MQ6,mp2,Mq6,ap1,SM6,aS5,BQ6,ap1,BP,bq2,pM5,a2A5
That is short!
With a little bit of training, it can become second nature and will not cost you almost any extra time on the clock. I've used it effectively during my games and stopped using it only when I was down to under a minute.
Here are my handwritten notes, taken live during my games:
Standard specification of the BOOM notation
- Moves are in the form:
[bug id][bug number][bug id][bug number][direction]
. The first[bug id][bug number]
is the moving bug and the second is the target bug. [bug id]
should use a lowercase letter for black or an uppercase letter for white.[bug number]
is a whole number designating the specific bug corresponding to the preceding id.- When there is no ambiguity on the designated bug with the id only, the number can be omitted.
[direction]
is a whole number between 1 and 6 designating an edge of the target bug where to place the moving bug.- When
[direction]
is omitted, it means that the moving bug goes on the top of the stack of the target bug. - Pieces should be placed pointy topped, direction 1 is the edge at 1 o'clock (for the white player) and the rest follows in clockwise order.