Empire Deluxe Enhanced Edition

Network Play Notes

Quick Links:

Other Details Links:


Network Play Overview

Setting up and connecting for a networked game is not always the easiest task. There are many factors that impact networking, most outside of and beyond the control of the game itself, such as your firewall settings, you connection speed, your connection quality, and the actions of the person at the other end. The more you understand the basics of how to network the game, the better you will find you can get beyond all of these things and get down to the business of conquering your opponent.

Be aware that when doing network play, if you are not running at least a  full 800x600 window size, the bottom buttons on the Information Window may be obscured. If you are running 800x600, you need to move or hide your system's bottom task bar if you have one.

Client - Server Architecture

Empire Deluxe Enhanced Edition supports network and Internet play via TCP/IP. With this capability, you are able to combat human as well as computer opponents online.

Unlike previous versions of the game, Empire Deluxe Enhanced Edition uses what is called a "Client-Server" architecture, which basically means one player sets up and runs the game, and the others hook up to his game to start and play. This offers many advantages in network play, such as the ability for remote players to disconnect and reconnect whenever they desire, without he game having to be restarted. It also allows players to set up a game and invite others to join up to play.

The player running the server will be referred to as the "Server Player". The players connecting to the server will be known as the "Remote Players".

The Server Player is responsible for configuring the game, inviting players, and starting the game when everyone is ready.

The Server Player, the one who will setup the game, will have to:

The Remote Players need to determine how they will connect to the server player.

What is a Port? What Is an IP Address?

The IP Address and Port number essentially  are combined to be like a telephone number that they can use to call the Server Player over the Internet. Just like dialing a person's telephone, the value of these two numbers must be exact, or you will never make the call.

The IP Address is sequence of four numbers, each ranging from 0 to 255, identifying your physical location on the Internet or Private Network. A host name, such as killerbeesoftware.com, can be used to hide the numbers. Directory Services on the Internet know how to look up the numbers given the correct name.

The Port Number, identifies what 'frequency' the program will be listening for call on your machine. This number can range from 1 to a little more than 65000. Some common programs, such as mail and web browsing, use standard port numbers for their services. All of these standard numbers are below 10000, and it is recommended you stay away from those. Other applications, such as online games, use other port numbers. Look to their documentation for specifics.

Firewall Notes

Remote Players do not need to worry about firewalls. If they are able to use a web browser on the Internet, they should be ok.

The Server Player will need to be aware of  whether or not he is protected by a router or firewall software from the Internet. If so, then the port number selected must be “opened” in the firewall, and the router must be able to “forward requests” on that port to the appropriate computer. It is beyond the scope of this manual to describe how to do this, and it varies with different firewalls and routers. Refer to your router's manual, or ask questions from your friends and other players who have played network games before.

The Server player is able to specify the port the game will listen to for incoming calls from Remote Players. This is set in the Connections Tab. Be aware that some routers seem to have trouble with the port you are using if, when configuring "port forwarding", your desired port is at one end of a range. For example, if you desire 46000 to be your port setting, and in your router you specify a range of 46000-46100, it may not allow players to connect. Instead, it is best to define a range that straddles the port (s) you wish to be open.


Starting A Network Game

The Server Player's Setup

The server player does most of the work in setting up and configuring a game. This is equally as true in network games.

Before Remote Players Can Connect:

There are a few mandatory steps the Server Player must take before others can begin to connect.

  1. The player will set up a game as he normally does, except he will have to choose the menu option Network Play from the Opponents Menu Option, and then he will need to go to the Players Tab and specify which player position will be for Remote players.
  2. With the selection of Network Play from the menu, two more tabs appear. These are the Connections Tab, and the Advertise Tab. The Advertise Tab is only needed when using the Connection Service. The player must perform some tasks on the Connections Tab.
  3. With the Connections Tab selected, the player must first decide on his Port.  The game uses a default port number of 46000. You do not need to alter this unless you feel it is necessary.
  4. The server player then decides on a "Game Password". This is used to control who you wish to login in to your server while you are setting up a game, and adds extra security protection for your game once the game has started and some players have logged off. If you feel a Game Password is not needed, you may leave this blank. If you enter something (case is important), you must reveal it to anyone you want to connect to your server before they try to connect.
  5. The Server Player Must Choose the maximum number of people he will allow to connect to his server at one time. Once this number is reached, no one else will be able to connect unless this number is raised. This number does not have to match the number of network players configured from the players tab, though the game will not be able to start if extra people not assigned positions are connected.
  6. When the Server Player is ready for others to connect, he presses the Start Accepting button.
  7. After this, he waits for players to connect. If he wishes to Advertise his game on the Connection Service, he must setup the Advertising. He may also configure any other part of the setup while he waits.

Server Advertising

If the Server Player wishes to Advertise his game over the Internet via the Connection Service, he must first setup up the network game, then do the following:

  1. Select the Advertise Tab from the setup.
  2. Enter a title and description for the game. The description is just game highlights, not the entire summary. Remote Players will not be able to read the summary until they log onto the Server.
  3. Select a Connection Service Server from the Server List. This will be the server that the game will be advertised on.
  4. Press the Start Advertising button.

The Server List also has a Page Button that will allow you to view an independent information page for that connection service. Select the server from the combo box next to the button and click the button to see the page.

After Remote Players Have Connected

Once Remote Players have connected to the server, you are able to chat with them by entering your comments in the chat box at the bottom of the program screen.

Remote Players enter a server unassigned. The Server Player must assign them to an available position, following these steps:

  1. Select the Connections Tab.
  2. Find the player you wish to assign in the connected players list on the right. Select that player.
  3. Find the desired player position in the Set Position combo box. If the position is not listed, you have not set that position up as a network player. You must go back to the Players Tab and do this.
  4. With the desired position in the combo box, press the Assign button to assign the player.

When all players are connected and assigned, you may start the game by pressing Begin Play.

The Remote Player's Setup

The Remote Player's setup is fairly simple. He just needs to determine how to connect to the Server Player's game.

To connect, he follows the following steps:

  1. From the Main Menu, he selects the Remote Connect option from the Play menu options.
  2. He first checks his Player Name and Password he wishes to use in the game.
  3. If there is a Game Password to be used, he enters that as well, otherwise it can be left blank.
  4. If NOT using the Connection Service, he enters the IP Address and Port he was given by the Server player. Then presses the connect button.
  5. If he IS using the Connection Service:
    1. He selects the servers he wishes to use to look for advertised games.
    2. He then presses the Refresh Button.
    3. He looks for his desired game from the list displayed.
    4. He double clicks on the desired entry. Connecting him if possible.

The Service Hosts area also has a Page Button that will allow you to view an independent information page for that connection service. Select the server from the combo box next to the button and click the button to see the page.

Trouble Shooting

Connecting may fail for various reasons, but the most common one is the Server Player does not have a good setup. Some common errors are:

  1. Accept button is not pressed - press it. 
  2. The firewall of the Server Player is blocking the call from the Remote Player. - Check your router manual for information on port forwarding.
  3. There is a game password for the server when one was not intended. - Clear it. To do this, you must push the stop the Accepting Button.
  4. The IP and Port given to the Remote player was not correct (not using connection service) - Either the information you sent is incorrect, or you sent an "Internal" IP address from your home network, not your external IP Address. There are web pages you can access which will give you your external IP Address.

The Connection Service

The Connection Service is a means for Remote Players and Server Players to find each other. It is not a network or something that you need to log onto in order to play. It is only available if you desire to use it, and only if you have access to a server. It does not have to be used in order to play the game via a network.

The "Connection Service" is really only a web server, set of scripts, and a database that listen for Server Players to advertise their games, and then stores that information in its database. When Remote Players request that information, it is sent to them.

All of this communication is done via HTTP. When a server advertises, he sends an HTTP POST with the advertising information to the specified server on the server list. It will then update this information every 30 seconds, or whenever the Server player toggles the accept button, assigns a player, or chooses to exit.

The Remote Player gets the information via an HTTP GET request to the server. It is then displayed to the client.

Note: Even though a player's game may be advertised on the connection service, his firewall may be preventing players from connecting.

Entries In The Connection Info Table

When a game is advertised and the Remote Player calls to refresh entries from the Connection Service, an entry for that game will appear in the Connection Info table. The columns for the entries are:

The Remote Player may select an individual entry from this list, and do one of the following:

 

Running A Connection Service
 

The connection Service is NOT a closed, proprietary network. The specifications for the connection service are open, so that anyone that wishes to and has the appropriate knowledge and resources can run one. You can set you own up and run it privately amongst friends and league members, or open to the general public.

 Resources and skills required are:

Killer Bee Software is running a simple Connection Service, made up of Several PERL scripts, an Apache Web Server, and a MySQL database all on a Linux machine through an ISP. These scripts, even though not part of the games distribution, will be made available for download at killerbeesoftware.com shortly after release.

Adding Connection Service Servers For the Game To See

To add an additional connection service to the game, the games Properties File must be edited. This file is called Properties.ini and is located in the "Data" directory off the root directory of the game. The person running the connection Service should be able to provide this information.

The appropriate fields to set are under the [INET] header, and are:


Disconnecting From A Game And Coming Back

Once the game has started, Remote Players are able to disconnect from a game, and return at a later time provided they have the same user name, password, and know the Game password if necessary. The player simply says his good byes and exits the game.

When it is time to reconnect, the player connects as before. He can even use the connection service, provided the Server Player has set up In-Game Advertising.

The Server Player cannot exit the game without terminating it.

If it is a player's turn and that player is currently not online the game will wait for him. The exception to this is if the game is running under a game clock.

In-Game Advertising

If a player drops or disconnects, and he had previously used the Connection Service to find the game, odds are he is going to need to use it again to reconnect. In-Game Advertising is possible, but it is not turned on automatically when the game begins. The Server Player must choose to have it on and configure it appropriately.

To do this, the Server Player must click on the Network status and Filters Button, the yellowish colored box to the right of the chat window. In the advertising area, he can enter a title, selects the advertising server, and then presses the Start Advertise For Players button. The Server player can do this at anytime, he does not have to wait for clients to first disconnect. The game will only be advertised if a player is currently disconnected.

If you select a server from he server list and press the Page button, you will be able to see the information page for that server.


Restarting A Network Game

Restarting a network game is very similar to initializing one, except that now the Server Player does not have to wait for the Remote Players to connect to begin the game. He can start it on his own and, if needed, run an In Game Advertise.


Chatting During A Game

Players can chat with each other during a game. They can also filter who they wish to chat with at any time. The Server player also has a separate method to send "Control" messages to all players without changing his chat filter.

The chat window appears automatically during a network game. It consists of several parts:


Post-Game Activity

When a player loses, or the game ends, they are still connected and can still chat until they exit or the server player exits the game.