Self-Hosted Server Guide

From Dune: Awakening Community Wiki
Jump to navigation Jump to search

It is now possible to self-host an entire Dune: Awakening world on your own hardware. As per the Official Announcement this is still an early iteration of the tool and will change over time following wider community testing and feedback.


Who is this guide for?

Dune: Awakening worlds are designed to run across multiple machines, with multiple server packages running concurrently. It's very computationally expensive and players should not expect hosting their own servers to be straightforward like other similar survival games such as Minecraft, Rust or Conan Exiles (where the server software is a single self-contained executable).

This guide will take you through the process of choosing a machine to run a server on your own (purchased or rented) hardware. It expects a reasonably high familiarity with how online multiplayer games work, as well as general understanding of the concepts of networking, servers and clients.

Hosting a whole world is an involved and potentially expensive process. If you are looking to just get to playing the game with your friends, it's recommended to rent an instance from a game host rather than attempting to host one yourself.

If you are prepared to continue - this guide will offer tips and advice from the author, FlamingMojo, who has many years of experience hosting game and web servers, as well as developing server-side mods and plugins for games (and hosts this Wiki).

Key Terminology

As several terms used in this area of computing can refer to different devices and concepts, this guide will use the following terms consistently:

  • A Client refers to a player's copy of the game, purchased on Steam and runs on their computer, which connects to the servers.
  • A Machine refers to the physical hardware that the server(s) run on. Simply put, a server machine is just a computer you don't turn off.
  • A Server refers to any individual piece of software which is running on a machine. There are several types of server:
    • A GameServer is what the game client connects to. It runs an UnrealEngine package and hosts map(s) for player characters to load into.
    • A DatabaseServer (DB) is what stores important game data. For Dune: Awakening, PostgreSQL is the primary database used.
  • A Virtual Machine (VM) is a piece of software which emulates (pretends to be) a real machine, including its own Operating System (OS).
  • An Instance refers to a running copy of a server, e.g. each Sietch is an 'instance' of a GameServer, hosting the Hagga Basin map.
  • A Battlegroup is the official term for a 'World', including at least one Hagga Basin instance, one Deep Desert instance, and the Overland Map, Arrakeen and Harko Village instances.

There may be more specific terminology used in this guide, which will be explained as they become relevant.

Acquiring Hardware

In order to make a viable self-hostable Battlegroup, the developers have compressed the original architecture down into a single package which will spawn multiple Linux VMs to host the various servers and handle the networking between them. As each VM requires a minimum amount of RAM and CPU bandwidth, the system requirements are much higher than an ordinary multiplayer game server.

The minimum working specifications are:

  • OS: Windows 10 64-bit Pro with Hyper-V
  • MEMORY: 20 GB RAM
  • PROCESSOR: Intel Core i5-8400 / AMD Ryzen 5 1600
  • STORAGE: 100GB SSD required

Due to the requirement of Hyper-V (Windows' Hypervisor engine), the underlying machine must be a dedicated bare-metal server, and NOT a VPS. You can either use your own hardware or rent a dedicated server from a provider such as Hetzner.

The machine used to produce this guide is an older model 'Auction Server' from Hetzner, as they usually offer steep discounts on discontinued hardware and have no traffic limitations. If you are using your own hardware at home, be advised that your Internet Service Provider (ISP) may have terms and conditions restricting traffic volume or types which might make connecting to your servers difficult.

It is important to obtain a minimum RAM of 20GB (which can support ~4 players on the same Hagga Basin instance with normal buildings). RAM is the bottleneck, so 64GB+ is recommended - however, the current market rate for RAM is extremely high.

Obtaining a separate IP and MAC address

If you are choosing to rent a dedicated server from a provider, it is important to note that the default official server setup scripts create an External vSwitch which binds to the physical interface of the machine, and when the VM is started, will be allocated a default MAC address. This would override the physical hardware address which causes significant problems for datacenters and their infrastructure integrity.

The machine **needs** at least two IP addresses (+ MAC Addresses) in order for the networking to function. One for the host machine, and another for the server VM. If you choose to rent your machine from Hetzner, see this additional guide for setting up the networking before running the initial scripts. For other server providers, check how to order additional IP's and assign MAC addresses to your machine.

Buying and Installing Windows Pro

Make sure to enable and allow Remote Desktop through the firewall during setup

Once you have acquired your machine, you need to install Windows 10/11 Pro 64-bit. It is recommended to choose 10, as it's cheaper and contains much less bloatware than Windows 11 - and without more stringent TPM chip requirements which many machines may not have.

The Pro version is not free, however some key merchants such as MrKeyShop provide far below MSRP keys at ~€40. The author can personally confirm the legitimacy of this key merchant, however there are scam storefronts - always be wary. Microsoft itself pushes consumers towards their cloud services and Windows 11 so does not provide the option to purchase from them directly.

Follow your machine provider's guide for booting and installing Windows. For Hetzner, this guide proved useful. During setup, provide your Windows key and continue to install a local account. It is inadvisable to use a Microsoft online account for your machine. Ensure that you set up Remote Desktop (RDP) so you can log into your machine remotely.

Setting up Windows

Once you have your OS installed (and up-to-date), it is recommended to optimize your server so it can provide as much computing resource as possible to your servers rather than the bloatware which Windows notoriously ships with. Fortunately, there are several tools available to make this quick and painless - this guide recommends Winhance. Install this tool and run it.

Apps and Features

Winhanced Windows Apps and Features

On the 'Software & Apps' tab, Winhance shows many pre-installed pieces of software not strictly necessary to run your OS. Many of these are designed for individual PC users rather than for servers, and as such can be safely uninstalled. See the screenshot for the recommended apps to keep installed, but none of the Windows Apps or Capabilities are required for your machine to host the game servers.

Note: Under 'Windows Optional Capabilities' be sure to enable
* Hyper-V
* Hyper-V Management Tools
* Subsystem for Linux
* Windows Hypervisor Platform
These are required features for the game servers.

Optimizations

Winhanced Optimisations - Power
Winhanced Optimisations - Update

On the 'Optimizations' tab, feel free to tinker around to improve performance by disabling unnecessary features. Winhance has good recommendations it can auto-apply for you if you are unsure. The two sections which are most pertinent to server running are Power and Updates.

  • Power - You want to select the 'Power Plan' - 'Ultimate Performance'. This keeps your machine running at high clock speeds, preventing it from sleeping or turning off PCI/USB devices. If you are using your own hardware at home, keep in mind electricity costs will increase as well as fan noise. While this does carry the risk of degrading the machine over time, server machines are quite literally built for this purpose.
  • Updates - You want to select the 'Windows Update Policy' of 'Security Updates Only (Recommended)'. Windows is notorious for constant interruptions and lacking user consent before hard-rebooting your computer to apply "important updates". For a server, this is not acceptable and this setting will prompt for important security updates only.

(Optional) Only allow your IP remote access

Allow Remote Desktop to an individual IP address

For securing your server, ideally you want to be the only person capable of accessing it. If you have a static home IP address (usually offered by your ISP for an additional cost), or Dynamic DNS (available for free via some routers), you can set Windows Defender Firewall to only allow access from your IP. See this guide for more detailed information and steps.

Optional Preparation Guides

  • For those using Hetzner set-ups, consider reading this supplementary guide for more tips and preparation steps: Hetzner Hyper-V Setup

Installing the Server Package

SteamCMD will need to be installed and utilized to download the server software. Installation guide can be found here.

The Steam AppID for the current server software on PTC is 3104830. Use command in SteamCMD app_update 3104830 validate to download and install the server package.

Subsequent instructions can be found on the official article here.