This is an old revision of the document!
doomsday_shell is a tool that allows you to run your own Doomsday servers and monitor the status of Doomsday servers running on remote computers over the internet.
This article is for doomsday_version_1.14.
In the past, hosting a multiplayer game has required one to run Doomsday in a special “dedicated” mode and configure everything by hand via the console or configuration files. The experience has been far from ideal. The Shell solves this problem by making it easy to start, stop, and monitor your Doomsday servers.
The Shell comes in two flavors:
doomsday-shell-text) to be used in terminals.
To host your own multiplayer game, you need to start a Doomsday server. Typically this is done by starting a server on your local computer. The Shell makes this easy: select Server → New Local Server. A dialog will open that allows you to specify the configuration for the new server. Presently the Shell is unaware of any front-end (Snowberry) game profiles you may have set up, so you need to configure the settings manually.
Basic settings: * **Name:** Name of the server. This is just for identification purposes so that players know which server they are connecting to. * **Game mode:** Game mode to run in. You must ensure that Doomsday will find the required [[iwad_files]] for the selected game mode. In the Shell [[#Custom_IWAD_folder|Settings/Preferences]] you can configure where to look for IWADs. * **TCP port:** Port that the server listens to for incoming connections. If you're expecting people to connect over the internet, make sure that the port is open in your firewall and/or NAT settings. * **Public server:** Checking this will make the server public so that everyone can see it. * **Shell password:** Password for opening a Shell connection to the server. Clients connecting to the server to join the game do not need to know this password. | Advanced settings: * **Runtime folder:** Folder where the server stores its runtime files ([[doomsday.out]], savegames, etc.). * **Options:** Additional command line options for [[doomsday-server]].
Click Start Server when you're done. After the server has launched, a connection to it is automatically opened. (If the connection fails, it means the server failed to launch. Check the error from the server's doomsday.out file.)
To allow other people to see your server via the master_server, the server has to be configured as public. Even after the server is started you can still change whether the server is public or private using the Console:
server-password "your-shell-password" server-public 1
Defining a password is mandatory for public servers; otherwise malicious users could log in via the Shell and misconfigure it at will.
If a server is not public, it will not be announced to the master_server and anyone wishing to join has to either be on the local network or know your IP address.
Each window of the Shell connects to a single server. It is important to note that a Shell connection is akin to an ssh connection to a Unix server — the server is running before the connection is opened and continues to run after the connection is closed.
The Status page displays an outline of the current map on the server. The positions of all players in the game are shown using position markers.
The Console page provides a console command line interface to control the server. You can issue any console commands and variables.
Keyboard shortcuts for the command line:
|Home, Ctrl-A, ⌘-A||Move to the beginning of the line|
|End, Ctrl-E, ⌘-E||Move to the end of the line|
|Ctrl-K, ⌘-K||Delete the rest of the current line|
|Up / Down||Move up/down in the command history (or lines of the current command)|
|Tab||Complete the current word (cycle through suggestions on each press)|
|Shift-Tab||Complete the current word (cycle backwards through suggestions on each press)|
Unless you've told doomsday where to find iwad_files, you will need to specify the IWAD folder before you can start a server. In practice, the Custom IWAD folder setting will insert an -iwad option into the doomsday-server launch options.