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.