Q1: Why doesn’t nuBolo have a map overview like classic Bolo?
A1: This is a controversial issue, but the reasoning for not having it is that the game should include an element of the fog of war. It also forces players to use pillview, rather than relying on map overview to provide the same information.
As a compromise, nuBolo has a satellite photo feature that gives a thumbnail image of the entire map (but doesn’t show tanks); to prevent it from becoming a “God-view”, it updates only every two minutes. In play testing the thumbnail map view has proven to be less than useful because it is hard to differentiate between bases and pillboxes, and damaged terrain. It is likely that in future nuBolo versions the satellite view will use 8×8 pixel Bolo graphics, and will show tanks (although there won’t be any live action). [top]
Q2: What happened to dead reckoning?
A2: Dead reckoning was an attempt to smooth the motion of other tanks on the display between the times that network information arrived (i.e. between game packets). It did not work very well and would cause other tanks in the game to seem as if they were controlled by “drunken sailors.” Thus the option was eliminated. [top]
Q3: Why is the Control menu disabled, and what happened to computer-controlled tanks (Bolo brains)?
A3: Because of the very simple run-time structure of Classic Macintosh programs and the operating system (i.e. Mac OS 9 and earlier), and because of a silly programming error in classic Bolo, brains were (and still are) a huge security issue. It was possible to use Bolo brains to cheat with infinite shields, infinite ammo, etc., even in games in which brains had been disallowed. This problem was so bad that it pretty much caused the death of classic Bolo, with a number of long-time players giving up.
It was originally decided that nuBolo would not have any facility for computer-controlled tanks; since that time it has become possible to minimize the risk of cheating by using the architecture of Unix and Mac OS X. However, this is a work in progress and is not finished at this time, so the Control menu is currently disabled. [top]
Q4: What are firewalls, and how do they affect nuBolo?
A4: To answer this question, it necessary to understand a little of how the Internet and the Internet Protocol (IP) work. With IP, objects such as computers are identified with IP addresses, which are strings of integer numbers that uniquely identify the object. Communication between objects takes the form of packets — discrete blocks of data that are passed to the recipient address by the network. Also part of this picture are other objects, called routers, that have the responsibility of passing packets from one network node to the next; routers also have IP addresses.
An IP address by itself is not enough information for a receiving node to know what to do with an incoming data packet; the node may have several different processes running simultaneously, each using its own unique packet structure. To finalize the destination information, the IP address is extended with another field called the port number. These numbers are used to identify the standard internet protocols, such as File Transfer Protocol (FTP, 20-21) and Hypertext Transfer Protocol (HTTP, 80). HTTP is, of course, the protocol used for the World Wide Web. Since the beginning of Bolo over the internet in 1993, the default port number for Bolo has been 50000, although players have been free to use whatever port number they choose. This tradition continues with nuBolo.
Jump forward a few years and the internet has become dangerous for computers that are connected to it. One method that is used to keep unwanted entities out is the use of firewalls, which are intended to prevent unauthorized data packets from propagating past them. Firewalls work in a number of different ways — but the bottom line is that because Bolo is hardly a well-known protocol running on lots and lots of computers, chances are nearly perfect that any given firewall will prevent you from playing games with people outside of your immediate subnet. [top]
Q5: So how do I play nuBolo with my buddies in East Hoboken?
A5: Both of you have to employ knowledge of what blocking schemes are being used at both ends, which can be hard to acquire. Once armed with the nature of the problem, it is usually possible figure out a way to get past the Net Nannies(tm). [top]
Q6: What does it mean when I see the message Unable to open firewall tunnel while trying to join a game?
A6: It means that nuBolo was unable to receive the special firewall tunnel packet described in Question 7, and in general it means that something is preventing the flow of data packets needed to let you into the game. This is most likely a firewall (or firewalls!) someplace that is blocking nuBolo packets. Because the computer you are talking to is already running nuBolo, it is quite likely the problem lies with your side, although if the game has only one player, the problem could be at either end. See Question 7 for suggestions about clearing firewall blocks. [top]
Q7: What are some common firewall schemes?
A7: A very common scheme is port blocking. Some of these are pretty simplistic and just discard packets with high port numbers. There is no universal threshold for such blocks because network operators can pick whatever number they want, but 1024 is probably a good rule of thumb to start. Operators using such a firewall can’t be too draconian by picking a very low number, or needed services won’t be available (in the extreme, the perfect firewall is actuated by turning off the router and preventing all network traffic).
If your network uses high-port number blocking, you will probably have to select a lower port number to use for nuBolo. Unfortunately there are no hard-and-fast rules here, the only way to see if it is working is by trial-and-error.
Another common port block discards incoming packets with port numbers that are not on an approved list. An example of such a firewall can be seen inside Mac OS X, and could be preventing you from playing nuBolo. Open the System Preferences and click the Sharing icon in the Internet & Network group. Select the Firewall pane, and you will see a list of allowed protocols (called services in Mac OS X language), along with the port number associated with them.
If your Mac OS X personal firewall is on, you will have to create an entry in the list for nuBolo. Click the New… button, and select Other from the Port Name popup menu. Enter the port number you want to use for nuBolo (usually 50000), and type nuBolo in the Description. Click the OK button, and nuBolo should be usable, at least on your immediate subnet.
Keep in mind that additional routers farther along the chain can also block! If this is the case, you may have to plead your case with whoever has access to the router in order to get an exception for nuBolo. Otherwise, you’ll likely have to end up using an unblocked port number that is used for a different protocol, such as 80 for HTTP. In this case, try to remember that you won’t be able to run whatever programs that use that protocol at the same time as nuBolo, such as a web browser.
Finally, there are firewalls that operate by blocking unfriendly IP addresses. One way this is done is that the router keeps a list of friendlies, which are defined as IP addresses that someone on the inside of the router has sent a packet to previously. The assumption is that anyone trying to break in from the outside will not be known to someone on the inside subnet. The way this works is again simple — if a computer on the inside sends a packet to a computer on the outside (for example, to an HTTP URL address in order to view a web site), the destination address is added to the allowed list in the router, and then the data stream reply is let inside. List entries are given a time stamp so that they can be purged after a certain time limit.
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. [top]
Q8: What is Network Address Translation (NAT)?
A8: NAT is a technique used in routers, especially those of Internet Service Providers (ISPs), to share a single IP address (see Question 4) among several computers. What this means for nuBolo is that the IP:port number that your computer knows for itself is not the same address as the one the world beyond your local router sees. Because nuBolo needs to know this information, the game has to ask the nuBolo game tracker what the your real IP:port number is. If your internal address looks something like this example: 10.0.0.4:50000, and the game tracker shows your address as: 218:56:32:118:63919, you are using a NATed network. The scrambled port number is a very good tip-off. [top]
Q9: Will there be cross-platform versions of nuBolo in the future?
A9: This is certainly a goal, but no definitive dates for when they might be available can be given. Currently the hardware and software needed to develop nuBolo on other machines are not available, including Intel Macintoshes (nuBolo currently isn’t a universal binary)