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 8x8 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).
[top]