Connecting the World
(A project for MIS 430 - Indiana State University - Spring '99)
Created by: Steve Thais, Alisha Travis, Rob Shank, Matt McPhail, Ploy Pachrankul
Aspects of Multi-player Gaming:
Links
to Obtain or Play FREE Games
Multi-player games were once the only kind of game
that could be found, with few exceptions. Only games like solitaire
could be played by yourself. With the creation of computer games
the opposite became true. There were some multi-player games, like
hot seat games where two or more people take turns on a single computer,
but those games were rare. Luckily for us, the times are changing
and multi-player computer games are now on the market in great numbers.
About 25 years ago, shortly after the Internet went
public, the first real multi-player games surfaced. The social aspect was
really what made the early ones so popular, with the option of calling
a small portion of this new world your own giving you a reason to come
back. Obviously these two aspects make the games interesting enough to
make it worthwhile to type every command.
The Internet is the next obvious horizon for multi-player
games. Some hurdles will need to be jumped before they will hit the mainstream.
The biggest problem is that consumer level Internet access is limited to
28.8 KBPS, which is much too slow for graphically heavy data streams or
information that is created by many players. Latency, the delay caused
by a slow connection, is the real bane of Internet gaming. Latency issues
can be reduced by complex programming called client side prediction, but
it will not fade until cheap, high speed, digital Internet access is available
to the majority of consumers. When that occurs, Internet multi-player gaming
will be the only way to go. With advancements in consumer Internet access
around the corner and computer hardware like 3D Accelerators we are on
the verge of being able to create a true interactive virtual society.
Multi-player games can be connected in several ways.
One of the most primitive ways is through direct connection. To make
this possible, two or more computers are connected through their serial
ports with a null-modem cable. A null-modem cable is a specific type
of serial cable (9 or 25 pin) that connects two computers through their
serial (COM) ports.
Some games allow multiple players to connect to
the same game through a modem connection. To create a modem connection,
the two players should select a modem as their connection type. The
player that is initiating the call should select a phrase like "select
game" from the game's menu. The other player should select a phrase
like "Enter new Number" and enter the phone number of the other player.
Then the game should automatically answer the incoming call and establish
a connection. A disadvantage to this type of connection is only two
players can engage in the game.
Another type of connection that usually allows for
four or more player, depending on the game, is an IPX network connection.
Here, all the computers that want to engage in the game should be connected
to an IPX-compatible network. This means each computer should have
a network card and use the IPX protocol. Then one player creates
a game. Anyone else who wishes to connect to that game just needs
to know the name of the game, given by the player who creates the games.
The last type of connection is through a TCP/IP
connection to the Internet. To make this possible, a player must
have a modem and Internet Service Provider, or a direct connection to the
Internet. Another requirement for this connection is to know the
on-line Internet gaming service and IP address that supports the game you
wish to play. It is important to remember that most multi-player
Internet and network games require the player to have the game's CD; especially
if the game is of high action. Each player then plays the game from
his or her own CD and the only data sent to them via the Internet are moves
of other players. Often the CD will directly link the player to the
proper Internet gaming service when a player selects multi-player and Internet
gaming as his or her connection type. Once a player is connected,
most services allow players to chat with other players in an effort to
arrange, create, and join games.
Other methods of Internet gaming also exist.
With additional software, drivers, and Internet accounts from an Internet
gaming gateway, it is possible to play many IPX-based network games over
the TCP/IP Internet. Unfortunately, most of these accounts are not
free. Kali is the most popular gaming gateway with a one-time cost
of $20 and over 250,000 members in 70 countries. Kali is a network
driver that allows people to play games on the Internet that are normally
limited to local networks. Kali sets up a virtual IPX network that
emulates local networks and allows nearly any IPX-compatible game to be
played over it. Each player connects to a Kali server, and can then
chat and play with the other people on the server.
Many multi-player games are played by several players
simultaneously over the Internet. To make this Internet connection possible,
multi-player games utilize the TCP/IP network protocol. TCP/IP is
the standard protocol utilized by the Internet to communicate across several
networks to precisely deliver data to a specified final destination, depending
upon the application.
TCP/IP is based on the “catenet model”. This model assumes there
are a large number of independent networks connected together by gateways.
A player should be able to access computers or other resources on any of
these networks utilizing TCP/IP. A datagram is a collection of data
that is sent as a single message. Each datagram is sent individually
and will often pass through a dozen different networks before reaching
its final destination. All a player needs to connect to a multi-player
game is the Internet address of the game server they wish to access.
When the user specifies an Internet address, the network software looks
up the address in a database, and identifies the corresponding Internet
address.
Two separate protocols are involved in handling
TCP/IP datagrams. TCP, the transmission control protocol, is responsible
for breaking up the message into datagrams, reassembling them at the final
destination, resending data that gets lost, and putting data back in a
sequential order. IP, the Internet protocol, is responsible for routing
individual datagrams. It may seem like TCP is doing all the work,
and in small networks this is true. However, with the Internet, simply
getting a datagram to its destination can be a very complex job.
Keeping track of the routes to all the destinations and handling incompatibilities
among different transport media is a very complex process.
This brings us to a very interesting question, “How
does TCP/IP protocol keep track of multiple connections to a given system
which is necessary for multi-player games?” Clearly it isn’t enough
to get a datagram to the correct destination. TCP has to know which
connection a datagram is part of. This task is referred to as “demultiplexing.”
In fact, there are several levels of demultiplexing transpiring in TCP/IP.
The information needed to perform demultiplexing is contained in a series
of “headers”. A header is simply a few extra octets tacked onto the
beginning of a datagram by the TCP protocol in order to keep track of it.
A header actually contains at least 20 octets, but
the most important octets are source and destination “port number” and
a “sequence number”. The port numbers are used to keep track of different
conversations. Suppose 3 different multi-game players are playing
the same game and making simultaneous moves. Your TCP might
allocate port numbers 1000, 1001, and 1002 to these moves. When a
player makes a move, a datagram is sent containing the “source” port number,
since the player is the source of the datagram. Of course the TCP
at the other end has assigned a port number of its own for the conversation
or data transfer between players. Therefore, your TCP has to know
the port number used by other players or player. TCP places the other
player’s port number in a “destination” port field. If the other
player sends a datagram back to you, the source and destination port numbers
will be reversed, since the other player will be the source and you will
be the destination.
After TCP has performed it main responsibilities
it will perform error-checking procedures as discussed in class.
Once error-checking is complete, TCP will send each datagram to the IP
level of the protocol. TCP will provide the IP level with the Internet
address of the computer receiving the datagram. Remember the IP level
is only concerned about the final destination, and has no concerns what
is in the datagram itself. IP’s responsibility is to simply find
an accurate and efficient route to deliver the datagram to its final destination.
In order to allow gateways or other intermediate systems to forward the
datagrams between players, IP adds its own header to the datagram. The
IP header consists mainly of the source, destination Internet address,
the protocol number, and another checksum. The source address is
simply the address of the player’s machine sending the datagram.
The destination Internet address is the address of the machine receiving
the datagram. The protocol number notifies the IP at the other end
to send the datagram to the TCP protocol. The checksum allows the
IP at the other end to verify that the header wasn’t damaged in transit.
If the IP doesn’t verify the checksum the datagram could be damaged during
transit and end up being deliver to the wrong location. Therefore,
it is very important that the IP and TCP have separate checksums to allow
for the correct sequencing and delivery of the datagram.
It is important to note that any multi-player game
is limited by the quality of the connection of all the systems involved.
The quality of play will depend on the speed and quality of the connection
between you and your opponent. Heavy network traffic, poor cabling,
line noise, latency, and other environmental effects can greatly detract
from the reliability and performance of a multi-player game.
The performance of a multi-player game is directly
determined by a player's quality of connection to that game. Latency
is one of the major factors of a player's connection. It is the measure
of time that it takes for a player's system to send and receive information
over a network or to and from another computer. Specific contributors
to a computer's latency include mismatches in data speed between the microprocessor
and input/output devices and inadequate data, which is called buffering.
Ping is another factor of a player's connection
and gaming performance. It is the speed of a player's connection,
or the time it takes for a data signal to travel to another player or game
server, and back to a player's computer. It is measured in milliseconds
where the larger the number equals a longer time delay. Therefore,
most people want to establish as low of a ping as possible. Players
who have direct connection to the Internet like here at I.S.U will have
a really low ping when connecting to a game server, usually less than 100ms.
Players with ISDN and cable modems (at times) can also establish pings
near 100ms. However, modem players get stuck with pings anywhere
from 200-500ms. Pings times that are around or below 300ms are usually
pretty reliable, but times above 400ms are virtually unplayable, especially
in high action games. To establish the best gaming performance, all
players should have approximately the same (when possible, low) ping time.
A player can improve his or her ping time by getting
a better, faster modem. However, ping is often limited by the quality
of phone lines between players. Within a computer, latency can be
removed or "hidden" by such techniques as prefetching (anticipating the
need for data input requests) and multithreading, or using parallelism
across multiple execution threads. The bottom line is that players
should understand what ping is and how it affects the game. It is
not much fun to lose to an opponent because your ping time is much slower
than theirs. Since many routes are possible when connecting to a
game server, it is a good idea to check your ping time after each connection
and look for servers that will allow you to connect at speeds near or below
other players.