Run Your Own Dungeon Siege Server: A Co-op Gaming Guide

Like many, my introduction to co-operative role-playing games came through classic titles like Dungeon Siege. Back in 2002, Gas Powered Games delivered an action RPG for the PC that captured the imagination.

Recently, after building a budget gaming PC, I was finally able to revisit Dungeon Siege. It’s readily available on platforms like Steam and GOG at a very reasonable price, making it easy to jump back in.

The real draw for me was the co-operative multiplayer mode. My brother and I were eager to experience the game together, just like we dreamed of when we were younger.

Initial Game Setup for Multiplayer

If you’re using the Steam version, or potentially the GOG version, you might encounter a “Disabled” message when trying to access the multiplayer option from the main menu.

To resolve this, you need to launch the game with the zonematch=true command line option. This can be easily set within the Steam game properties. For a detailed guide, this Steam Community post provides step-by-step instructions.

Steam properties for Dungeon Siege with the Zonematch=true option set Setting the ZoneMatch option will directly take you to the multiplayer screen upon game launch. If you wish to play single player, simply use the “Back” button to return to the main menu.

Should you encounter any other issues, the Dungeon Siege 1 Troubleshooting Guide on GitHub is an invaluable resource, packed with solutions for various game problems.

Navigating Dungeon Siege’s Multiplayer Connectivity

Dungeon Siege offers several multiplayer modes: Local Network, Internet, and ‘ZoneMatch’.

The Dungeon Siege multiplayer menu

‘ZoneMatch’, as far as I understand, was the game’s original matchmaking service, which is no longer operational. This option is unfortunately not viable for modern multiplayer sessions.

Local Network mode works flawlessly when both players are on the same network. One player hosts the game, and it readily appears for the other to join. However, with my brother and I living in different cities, a local network connection isn’t an option for us.

Internet mode is the straightforward choice for online play. It requires manually entering the IP address of the server you wish to connect to, as there’s no built-in server browser.

Initially, I attempted to use Internet mode with port forwarding on my router. Despite my efforts, I couldn’t establish a stable connection. Whether it was a configuration error on my part or ISP restrictions, exposing a 21-year-old game directly to the internet felt like a risky proposition in terms of security.

Leveraging Tailscale for Secure Server Access

Around the same time, I was exploring secure remote access solutions. I had been using a free Cloudflare Tunnel to access my NAS remotely. However, a mishap where I accidentally restarted the Docker container hosting the tunnel while away from home highlighted the need for a backup access method.

This led me to Tailscale, a fantastic VPN service that offers a free tier (along with paid options). Tailscale creates a virtual private network (VPN) connecting your devices securely. Built upon the robust WireGuard protocol, Tailscale simplifies VPN setup considerably. You simply install the application on your devices and optionally configure access rules.

With Tailscale, I gained seamless access to my NAS from anywhere using its Tailscale IP address. Furthermore, I could utilize my NAS as an exit node, routing my internet traffic through my home network or accessing other devices on my network that don’t have Tailscale installed, like my IP camera.

Dungeon Siege Co-op via Tailscale: A Seamless Experience

Using Tailscale for gaming isn’t a novel idea; it’s quite popular for hosting Minecraft servers. I installed Tailscale on my gaming PC and then used a sharing link to invite my brother to join my Tailnet.

The sharing link allowed my brother to set up Tailscale on his computer and join my virtual network. By default, device sharing allows the invited user to initiate connections to your device, but not vice versa. While this can be adjusted in Tailscale’s Access Control Lists (ACLs), since I was hosting the game server, my brother only needed to connect to my PC.

I hosted a Dungeon Siege game using the “Internet” mode and provided my brother with my gaming PC’s Tailscale IP address. To our amazement, it worked perfectly, just as if we were playing on a local network!

The reason “Local Network” mode likely didn’t work directly through Tailscale is that Tailscale might not fully support multicast traffic, which is often used for local network discovery of game servers.

Addressing Game Progress Retention

Dungeon Siege multiplayer spawns players into the single-player world, known as the Kingdom of Ehb.

The map of Ehb (source)

Unlike single-player mode, Dungeon Siege multiplayer does not offer in-game saving of world progress. While your characters (including their items and levels) are saved automatically, the game world itself doesn’t retain changes or enemy eliminations. Upon joining a multiplayer game, players choose a starting location based on their character level.

This limitation can be inconvenient. For instance, while you can spawn in Stonebridge, you can’t directly spawn in Glitterdelve, despite their proximity. Reaching Glitterdelve from Stonebridge requires traversing the spider-infested Wesrin Cross and unlocking a gate.

If you stop playing midway through Glitterdelve Mine, the next session will require re-clearing Wesrin Cross and repeating your progress within the mine. This lack of persistent world state in multiplayer can become tedious.

Virtual Machine as a Dedicated Siege Server Solution

A virtual machine (VM) is a software-based emulation of a physical computer. It allows you to run an operating system and applications within a virtualized environment on your existing computer. VMs offer features like pausing and resuming, effectively saving the entire state of the virtual machine to disk.

My solution to the Dungeon Siege multiplayer save issue was to host the game on a Windows virtual machine, essentially creating a dedicated “Siege Server”:

  • The siege server VM would continuously host the game, with a character safely positioned in a town or inn.
  • My brother and I would connect to this siege server VM to play together as usual.
  • When we finished playing, we would simply disconnect and freeze the VM, pausing its operation and saving its state.
  • Upon resuming play, we would unfreeze the siege server VM, spawn at the nearest available location, and continue exactly where we left off, with the game world in its previous state.

To implement this, I needed a virtual machine capable of running Dungeon Siege and Tailscale. I opted for Windows 10 as the VM’s operating system. Windows 10 is compatible with Tailscale and ensures access to the latest security updates.

Hypervisor Selection for Your Siege Server

Several hypervisor options are available for creating virtual machines. Popular choices include:

  • VMware Workstation Player: User-friendly and feature-rich, ideal for desktop virtualization. (Chosen for this setup).
  • VirtualBox: A free and open-source option, also widely used and compatible across platforms.
  • Hyper-V: Microsoft’s hypervisor, built into Windows Pro and Server editions, offering robust performance.

For this setup, I chose VMware Workstation Player due to its ease of use and robust feature set. VMware Player is free for personal, non-commercial use.

Step-by-Step Siege Server VM Setup

Here’s a detailed guide to setting up your Dungeon Siege siege server VM:

  1. Create the VM: Use a Windows 10 ISO image and follow the VMware Workstation Player wizard to create a new virtual machine. Remember that Windows 10 can be installed and used without a product key, with minor cosmetic limitations that are irrelevant for a dedicated game server VM.

  2. Allocate System Resources: Windows 10 can be resource-intensive. Allocate sufficient RAM and CPU cores to the VM to ensure smooth game server performance.

    I initially assigned 6 processor cores and 8GB of RAM to the VM. However, for Dungeon Siege, 3 cores and 4GB of RAM should be adequate.

    (Note: The core allocation in VMware might represent virtual cores, potentially exceeding the physical cores on your CPU. This allows for efficient resource management).

    The VM setting I used in VMWare Player

  3. Install Tailscale: Install the Tailscale application within the Windows 10 VM. Share the server VM with your co-op partner using a Tailscale sharing link.

  4. Install Dungeon Siege: Install Dungeon Siege within the VM.

    If you and your co-op partner are using the Steam version, it’s recommended to use the same version on the server VM to ensure compatibility. I found that retail CD versions and Steam versions might have multiplayer compatibility issues.

    Install Steam on the server VM and switch Steam to “offline mode” before launching the game. This prevents conflicts with your Steam installation on your primary gaming PC.

    Don’t forget to apply the zonematch=true launch option to the Dungeon Siege installation on the server VM.

    [  ](/images/dungeon-siege-coop/game-server-in-ds.jpg)

The servers player, Rory, hanging out in Stonebridge

  1. Host a Dungeon Siege Internet Game: Launch Dungeon Siege on the server VM and host a new game using the “Internet” mode.

    Ensure that the “Allow players to join game in progress” and “Allow players to choose start locations” options are enabled for maximum flexibility.

  2. Minimize the Game Window on the VM: Alt-tab to the Windows desktop within the VM to minimize the Dungeon Siege game window.

    I observed that leaving the game as the active window in the VM sometimes led to crashes. Running the game in the background by minimizing the window seems to improve stability. The game server continues to operate even when minimized.

      A VMWare Player window running the Game Server instance with Steam open
  3. Connect from Client Computers: From your and your co-op partner’s computers, connect to the Dungeon Siege game hosted on the server VM using the server VM’s Tailscale IP address.

  4. Pause and Resume Your Siege Server: When you finish playing, have both players disconnect from the game server. Then, pause or “freeze” the server VM in VMware Workstation Player. When you’re ready to play again, simply resume or “unfreeze” the VM to restore the game world to its previous state.

This siege server VM setup has proven to be a reliable solution for playing Dungeon Siege co-operatively over the internet with my brother, while also preserving our game progress between sessions.

Now you too can enjoy uninterrupted adventures in the Kingdom of Ehb with your friends!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *