So I've done a bit of digging and found some of the answers, but also more questions...
First of all, the main problem seems to be that Bolo was designed
poorly to only work with computers directly connected to the internet (this was quite common in the earlier days of the internet), not behind a router or firewall.
4. Bolo.NetworkingFAQ
• "My Mac has no direct Internet connection. Can I write a Unix proxy for playing Bolo?"
No. Your Mac itself needs to be connected to the Internet. Bolo is not a client-server program and cannot easily be modified to connect via some other computer acting as its proxy on the Internet. Purists will argue that this is false -- anything is possible on a Turing Complete computer, given enough programming. They are right of course, but in this case, "enough programming" is enough to effectively connect your computer to the Internet, at which point it becomes easier to *actually* connect your computer to the Internet using existing software. You should also note that in order to provide sufficient real-time performance, the Bolo proxy could not be written as a user-level program, or even as a root-level program. On Unix, protocols like TCP/IP do not run as separate programs because they require accurate timing to work reliably, so they have to be compiled into kernel itself, and the same would be true of the Bolo protocol.
Here's another snippet I found which probably explains why connections are problematic today.
http://web.archive.org/web/20030620123025/http://www.lgm.com/bolo/guides/longfaq.html#netbolo
Unlike most other network games, Bolo is not a client-server system. Bolo forms a network of Macs by linking them in a ring where one player sends packets of game information to a neighbor, who in turn sends packets to the next neighbor on the ring, and so on. These packets are either DDP on AppleTalk or UDP over the Internet. When a new player joins, he sends a packet to each machine in the ring to figure out the delay between it and all Macs, then it adds itself into the ring in such a way as to minimize the total time around the ring. The advantage of a ring is its flexibility: nobody needs to maintain a server, and anybody can start or join any game. The disadvantage is that everybody is limited by the slowest connection in the ring. This is why it's a very bad idea for a modem player to join a game with direct ethernet players, because they must then continuously wait on the slow modem connection, resulting in lag which is characterized by jerky, unresponsive play or outright errors when the ring is broken and the game is frozen.
I've yet to figure out those internet games people mentioned worked. As far as I can see the tracking servers have nothing to do with this, they simply list games, but it's possible there's something going on behind the scenes that's built in to Bolo and not documented?
The
nuBolo page has some interesting notes:
Using the external nuBolo game tracker (bolo.usu.edu, port 50000), it is now possible for players using Network Address Translation (NAT) firewalls to start games.
I'm fairly certain that's a standard Bolo tracker they're stating nuBolo is compatible with.
And a bit further down, a note about getting around other connection issues:
Fortunately, nuBolo has a built-in protocol called firewall tunneling that is designed get around such lists. In a nutshell, firewall tunneling works by getting all the computers involved in a nuBolo game (or those who wish to join a game) to send packets to each other, thereby getting themselves on any approved sender lists. When a new computer tries to join a game, it sends a special packet to the nuBolo game tracker, and another one to the computer already in the game. The game tracker then relays the request, and the node sends its own special packet to the person wanting to join.
You also have to keep in mind nuBolo and WinBolo likely did not have access to the original source of Bolo so they are more clones than ports. I'm not sure how compatible they are with the original Bolo.
Here are some additional resources I've found while searching around:
BoloWeb, a 68k web server that gets running games from trackers and displays them on the Web.
I've archived a copy of it on GitHub:
https://github.com/SuperSVGA/BoloWeb
https://supersvga.github.io/BoloWeb/
An archived BoloWeb page listing running games:
http://web.archive.org/web/19990117023011/http://boloweb.stanford.edu:80/BoloWeb.ACGI
An article on Bolo from NetGuide in 1995:
http://www.bolo.net/O Bolo Mio, Steve Silberman, NetGuide Magazine, May 1995.pdf
Stuart Cheshire's Dissertation, may have some useful networking details:
http://web.archive.org/web/20030512180643/http://www.lgm.com/bolo/guides/dissertation/
Another Bolo FAQ:
http://web.archive.org/web/20030620123025/http://www.lgm.com/bolo/guides/longfaq.html
WinBolo Source, with tracker server source code:
https://github.com/kippandrew/winbolo