Full Report for Bug by Nick Bentley

Full Report for Bug by Nick Bentley

Place a piece, creating or enlarging a bug, eat neighbouring bugs of the same size, and grow.

Rules

Definitions

1) A bug is an entire group of connected, same-color stones on the board. A single stone is also a bug.

2) The size of a bug is the number of stones it contains.

Play

The board starts empty. Black begins the game by placing one black stone on any empty space. Then, starting with White, the players take turns. Each turn has 3 steps, taken in order: 1) Place, 2) Eat, 3) Grow

1) Place: You must place one stone of your color on an empty space such that the resulting bug isn't larger than the largest bug on the board (regardless of color) prior to placement.

2) Eat: All your bugs which are adjacent to one or more enemy bugs of the same shape (but not necessarily the same orientation) must eat (capture) those enemy bugs. Return eaten bugs to your opponent.

Note mirror-image bugs count as the same shape.

3) Grow: Increase the size of each of your bugs that ate, by exactly 1, by placing a stone of your color on any empty space adjacent to each such bug.

If eating would unavoidably force a bug to grow by more than 1 through a merger with another bug of the same color, no eating occurs.

If, after growing, a bug is adjacent to an identically-shaped enemy bug, it must eat the enemy bug (and grow again) if possible, and so on.

End of the Game

The first player who CANNOT place a stone in the placement step WINS. That is: you win if you've filled the ecosystem with your bugs so much you can no longer expand.

Standard

Nick kills me - his games are always a real nightmare to programme! In this case, I ended up implementing the game twice. The main problem was identifying when two neighbouring bugs are the same, allowing for reflection and rotation. For the HexHex3 implementation, I tried pre-generating every single board position for each shape, so I could do a straight lookup - that resulted in 2Mb of data after around 60 minutes of processing. Clearly not scalable! For the HexHex4 case, I represented the board as a bitboard (long integer, with each bit representing a different board cell), and did low-level bit manipulation to rotate and compare shapes. The result is fast enough to beat most humans, but unfortunately doesn't scale to larger boards for different reasons*; I may do so at some point using the Java BitSet class (extended to allow shifts) for the bit array, but not for a while.
*Ai Ai represents hexhex boards internally as a standard hex grid with the corners missing. That means HexHex5 (61 cells) actually requires 81 bits internally, which is more than a 64-bit integer will hold.

Miscellaneous

General comments:

Play: Combinatorial

Family: Combinatorial 2017

Mechanism(s): Pattern,Capture,Territory

Components: Board

BGG Stats

BGG Entry Bug
BGG Rating 7.60882
#Voters 34
SD 0.990356
BGG Weight 2.3333
#Voters 3
Year 2017

BGG Ratings and Comments

User Rating Comment
bootleby N/A My rather 'cold' rating likely has to do with my inability to play this very well, so I'm not getting any insights into the strategic depth since I'm still wearing water wings in the shallow end. I like this game but I don't foresee myself suggesting it? Unless I'm trying to get in as many Nick Bentley games as possible in a day or something I don't know. That is, actually, likely to happen at some point haha
gmcnish N/A Print hexhex3, go stones
mrraow 10 Bug is impressively opaque, even on very small boards. But in a good way; the 'perceptual binding' means that the player gets the feeling of understanding being just beyond the horizon, rather than forever beyond reach. Want to play more. Much more :) Playable in Ai Ai (on small boards). Nick kills me - his games are always a real nightmare to programme! In this case, I ended up implementing the game twice. The main problem was identifying when two neighbouring bugs are the same, allowing for reflection and rotation. For the HexHex3 implementation, I tried pre-generating every single board position for each shape, so I could do a straight lookup - that resulted in 2Mb of data after around 60 minutes of processing. Clearly not scalable! For the HexHex4 case, I represented the board as a bitboard (long integer, with each bit representing a different board cell), and did low-level bit manipulation to rotate and compare shapes. The result is fast enough to beat most humans, but unfortunately doesn't scale to larger boards for different reasons*; I may do so at some point using the Java BitSet class (extended to allow shifts) for the bit array, but not for a while. *Ai Ai represents hexhex boards internally as a standard hex grid with the corners missing. That means HexHex5 (61 cells) actually requires 81 bits internally, which is more than a 64-bit integer will hold.
bdeink 7
nhjelmberg 9 I commend the deisgner for a brilliant achievement. This is a game that feels like it was just waiting for someone to discover it. In a time where many designers seem content with copying old mechanics, I am so glad to see that there can be new games under the sun. It will be difficult to return to my own feeble attempts. Thank you for sharing this and good luck with Bug!
BobW42 8 Fun, simple, portable game.
arian 7
fogus 7.4
bcurfs 8 This game is a cute abstract strategy with an interesting mechanic. You eat your opponent's bugs and if you can't grow you win (you basically dominate the board). Scalable to different board sizes, but my favorite size for any game on a Hex board is Hexhex-5 (61 fields). That makes the games not too long and still interesting.
Carthoris 8 A killer combinatorial game with real staying power.
grasa_total 7 Ingenious and surprising in the way I expect from a Nick Bentley game. But very opaque. I don't think I know what's going on yet.
bothros 8
russ 8 Clever fun game (be sure to read Nick's article about the game's development) which is interesting even on the tiny size 3 hexhex, and playing on successively larger boards is also cool. It can play out variously (e.g. we had one bizarrely short game with only 6 stones placed, while other games have gradually larger and larger bugs being created), and there are lots of aha-effects to be had. Note: early on we switched to playing that merging is not legal in placement. Discussion in this thread: https://boardgamegeek.com/thread/1937898/merging-groups-allowed-placement-disallowed-growth
Observer9 8
paynentt 7
Kaelistus 7
srlindemann 8
casualcasual N/A I'm not a combinatorial type of player for the most part, but Hive grabbed me, and engaged me. I suspect it's probably those thematic mnemonics. I use the Hive pieces to play Bug, and it's kind of similar; very abstracted but sort of saying something about evolution and expansion. The backwards thinking - of essentially tying to NOT be able to have your turn (probably not unusual, but I just don't have a lot of experience with these sorts of games) is the appealing bit here, to me. A neat little puzzle then; not as engaging and as free form as Hive (again, I don't play a lot of these), but good to be able to pull out and use as something different every now and then. I also should note I'm playing mostly with my son on the 3Hex grid, I'm sure there's a bit more to it on the 4x.
molnar 9
pvtparts 6
rayzg 7.5 Finally played with the correct rules where you win if you cannot place a piece at the beginning of your turn. I'm torn about what I feel about this game. I love how original the mechanics are and how such a deep game could be created with such a small board. My only issue is that there's not much clarity in the game for me. It's really, really difficult to see the repercussions of your moves. I'm hoping that further play will make the tactics more clear.
hunky dory 7.5
fiddly_bits N/A I have sufficient bits to play. My board is part of a Chessex mat I cut up long ago to play Hex and other shapes of game.
takeoutweight 9 I've not played anything like it. One of my favourite modern abstracts. The board can take on so much personality and drama even on a microscopic hex3. I think bug has the best depth-per-board-space ratio out of any game I've played?
pkufahl 7 I've just scratched the surface of this game, designed around the phenomenon of perceptual binding, our neurobiological tendency to recognize patterns as objects. Bug has several interesting aspects to it: 1. You place markers onto a hex grid, but cannot create the largest group on the board this way. 2. Instead, your groups grow after "eating" your opponents' groups of the same size and shape. 3. Having no legal place on the grid to place your next marker is the way you win the game. I'm always looking for that next abstract game to (at least, temporarily) capture the imagination of myself and one other player, and hopefully I can get in more plays of this one.
wefelker 7
Bola! N/A Subtle!
fakeai N/A Print n Play version
tkvaran 9 As of late December 2017, my favorite abstract of 2017. Feels classic and deep. Prefer the 4 hex board to the super tight 3 hex board.
nycavri 8
orangeblood 8 Delightful interplay of attacks and counterattacks. At first I wondered about the victory condition (first player who cannot move wins), but after just a couple of games it's pretty intuitive and works well.
njking 6
schwarzspecht 8
Dawaran 6.8
4characters 8 Unique, innovative
bluebee2 9 PnP. Played with several people and made a few fans of the game (including my college student who it taking it back to school to create more fans)! Loved every game. We're sticking with the hexhex3 for a bit and learning as we go. I'll be playing this quite a bit.
nigelreg 7 PnP version
ed_in_play N/A printed boards to use with Go pieces
azeem 6
EllenM 7 Worth an abstract try We enjoy pulling this one out periodically
AndrePOR N/A Print & Play Edition
rayr N/A = 2017-07-16 Played a couple of split-personality solo games this weekend to learn the rules. I'm liking what I see, but, unlike Yavalath/Pentalath/Manalath, it's going to be a lot harder to see when and where a mistake was made in order to understand how to improve. On a hexhex3 board, it took me about 4 plays to *start* seeing how to improve my chances of being the first player unable to make a move. Fortunately, even if you can't play towards the actual goal (to win by not being able to move), it feels like playing towards the subgoal (eat opponent's bugs) is generally well aligned with the main goal. I'm liking the game. It feels dynamic and I love the tug-o-war. I've noted before that I enjoy games where a seemingly strong move can leave you open to a strategic counter attack. Nick put it even better when he wrote about letting the game balance overly strong moves instead of having the rules forbid them. In Bug, the largest bug on the board is a sitting duck; it can't grow to defend itself so all of the spaces immediately adjacent to that bug are open for your opponent. Those open spaces give you a lot of flexibility, but your ultimate goal is to run out of moves. This means that the closer you get to winning, the fewer options you have. It's an interesting balance and kind of acts like a built-in catch-up mechanism without any heavy-handed rules to enforce it. Playing on a 1999 Abalone board with 7/8" marbles, using a 3rd color to mark off a hexhex3 region. Using the no-merge variant. No rating until I play against a real opponent and start to understand some of the strategies.
pezpimp 5.5 You play a piece on the board anywhere as long as it does not create a set larger than any exiting set. If you play a piece in which the size and shape matches an opponents set then you eat them and grow (you have no choice, this is automatic), this is the only way to create larger sets. We played with the correct rules this time around and although better it was not great. We tried a larger board but it just gets repetitive, you can now come from behind and challenge more but can't say that it was more fun.

Levels of Play

AI Strong Wins Draws Strong Losses #Games Strong Win% p1 Win% Game Length
Random              
Grand Unified UCT(U1-T,rSel=s, exp=0.70, secs=0.01) 36 0 0 36 100.00 58.33 35.42
Grand Unified UCT(U1-T,rSel=s, exp=0.70, secs=0.07) 36 0 6 42 85.71 57.14 51.05
Grand Unified UCT(U1-T,rSel=s, exp=0.70, secs=0.20) 36 0 13 49 73.47 51.02 56.29
Grand Unified UCT(U1-T,rSel=s, exp=0.70, secs=1.48) 36 0 8 44 81.82 54.55 54.34

Level of Play: Strong beats Weak 60% of the time (lower bound with 90% confidence).

Draw%, p1 win% and game length may give some indication of trends as AI strength increases; but be aware that the AI can introduce bias due to horizon effects, poor heuristics, etc.

Kolomogorov Complexity Estimate

Size (bytes) 29331
Reference Size 10293
Ratio 2.85

Ai Ai calculates the size of the implementation, and compares it to the Ai Ai implementation of the simplest possible game (which just fills the board). Note that this estimate may include some graphics and heuristics code as well as the game logic. See the wikipedia entry for more details.

Playout Complexity Estimate

Playouts per second 15206.44 (65.76µs/playout)
Reference Size 389863.55 (2.56µs/playout)
Ratio (low is good) 25.64

Tavener complexity: the heat generated by playing every possible instance of a game with a perfectly efficient programme. Since this is not possible to calculate, Ai Ai calculates the number of random playouts per second and compares it to the fastest non-trivial Ai Ai game (Connect 4). This ratio gives a practical indication of how complex the game is. Combine this with the computational state space, and you can get an idea of how strong the default (MCTS-based) AI will be.

Win % By Player (Bias)

1: White win % 53.50±3.10 Includes draws = 50%
2: Black win % 46.50±3.07 Includes draws = 50%
Draw % 0.00 Percentage of games where all players draw.
Decisive % 100.00 Percentage of games with a single winner.
Samples 1000 Quantity of logged games played

Note: that win/loss statistics may vary depending on thinking time (horizon effect, etc.), bad heuristics, bugs, and other factors, so should be taken with a pinch of salt. (Given perfect play, any game of pure skill will always end in the same result.)

Note: Ai Ai differentiates between states where all players draw or win or lose; this is mostly to support cooperative games.

Playout/Search Speed

Label Its/s SD Nodes/s SD Game length SD
Random playout 10,162,042 18,693 680,856,819 1,252,454 67 0
search.UCB NaN NaN 0 0
search.UCT NaN NaN 0 0

Random: 10 second warmup for the hotspot compiler. 100 trials of 1000ms each.

Other: 100 playouts, means calculated over the first 5 moves only to avoid distortion due to speedup at end of game.

Mirroring Strategies

Rotation (Half turn) lost each game as expected.
Reflection (X axis) lost each game as expected.
Reflection (Y axis) lost each game as expected.
Copy last move lost each game as expected.

Mirroring strategies attempt to copy the previous move. On first move, they will attempt to play in the centre. If neither of these are possible, they will pick a random move. Each entry represents a different form of copying; direct copy, reflection in either the X or Y axis, half-turn rotation.

Complexity

Game length 55.33  
Branching factor 13.62  
Complexity 10^52.97 Based on game length and branching factor
Samples 1000 Quantity of logged games played

Move Classification

Distinct actions 52 Number of distinct moves (e.g. "e4") regardless of position in game tree
Killer moves 7 A 'killer' move is selected by the AI more than 50% of the time
Killers: Bug #7 eats,Bug #2 eats,Bug #5 eats,Bug #4 eats,Bug #3 eats,Bug #13 eats,Bug #1 eats
Good moves 26 A good move is selected by the AI more than the average
Bad moves 25 A bad move is selected by the AI less than the average
Samples 1000 Quantity of logged games played

Change in Material Per Turn

This chart is based on a single playout, and gives a feel for the change in material over the course of a game.

Trajectory

This chart shows the best move value with respect to the active player; the orange line represents the value of doing nothing (null move).

The lead changed on 17% of the game turns. Ai Ai found 13 critical turns (turns with only one good option).

Overall, this playout was 84.38% hot.

Position Heatmap

This chart shows the relative temperature of all moves each turn. Colour range: black (worst), red, orange(even), yellow, white(best).

Actions/turn

Table: branching factor per turn.

Action Types per Turn

This chart is based on a single playout, and gives a feel for the types of moves available over the course of a game.

Red: removal, Black: move, Blue: Add, Grey: pass, Purple: swap sides, Brown: other.

Positions Reachable at Depth (Includes Transpositions)

0 1 2 3 4 5
1 37 1369 37069 960895 18663247

Note: most games do not take board rotation and reflection into consideration.
Multi-part turns could be treated as the same or different depth depending on the implementation.
Counts to depth N include all moves reachable at lower depths.
Zobrist hashes are not available for this game, so transpositions are included in the counts.

Shortest Game(s)

No solutions found to depth 5.

Openings

Moves Animation
d1
e1
f1
g1
c2
d2
e2
f2
g2
b3
c3
d3
e3
f3
g3
a4
b4
c4
d4
e4

Puzzles

Puzzle Solution

Black to win in 17 moves

White to win in 16 moves

Black to win in 15 moves

Black to win in 10 moves

White to win in 14 moves

White to win in 16 moves

Black to win in 13 moves

Black to win in 12 moves

White to win in 10 moves

Black to win in 7 moves

Black to win in 8 moves

Black to win in 5 moves

Black to win in 10 moves

White to win in 6 moves

White to win in 3 moves

Black to win in 8 moves

Black to win in 8 moves

Black to win in 5 moves

Black to win in 7 moves

Black to win in 4 moves

Selection criteria: first move must be unique, and not forced to avoid losing. Beyond that, Puzzles will be rated by the product of [total move]/[best moves] at each step, and the best puzzles selected.