Linux

Linux is our labour of love.

Starting with build 114220 we have upgraded our Ubuntu based toolchain to gcc-9 with LTO which is available in the default repositories or backports of most distributions.

gcc-9 is available for all Ubuntu releases back to Ubuntu 12 Precise and derivatives via https://wiki.ubuntu.com/ToolChain

gcc-9 for Debian 10 buster can be pulled from Debian 11 Bullseye.

https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html

Local servers will see performance improvements from the move to gcc-9 with LTO and c++17.

https://www.phoronix.com/scan.php?page=news_item&px=GCC-9.1-Compiler-Released

Linux Dependencies

  • libstdc++6 >= gcc-9 GLIBCXX_3.4.26 (native)
  • libcurl4-gnutls or libcurl-compat (native on non Ubuntu / Debian)
  • libsdl2 (provided by steam)
  • libgl1 (provided by steam)
  • libudev0 (provided by steam)
  • libuuid (provided by steam)

There are some known issues for Linux distributions not based on Ubuntu / Debian.

As a last resort if packages are not available for libudev0 or libcurl4-gnutls you might be able to use a hacky symlink (not recommended).

Stops on launch splash

Downloads are stalled due to missing certs on some non Debian / Ubuntu distributions like Fedora or NixOS.

Use the OpenSSL SSL_CERT_FILE environment variable when launching PA from a shell script:

SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt

For steam command line arguments use:

SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt %command%

Black screen or fails to start

Check your logs for missing dependencies:

  • libcurl4-gnutls
  • libstdc++6 from gcc-9 or newer

Some non Ubuntu / Debian distributions provide a libcurl-compat package for compatibility with libcurl-gnutls from Ubuntu based builds.

Mesa Coherent UI Panel Corruption

The following added to /etc/drirc or ~/.drirc in the <device driver="radeonsi"> section may help:

<application name="CoherentUI_Host"executable="CoherentUI_Host">
    <option name="radeonsi_zerovram" value="true" />
</application>

Sim Performance, Time Dilation and RAM Usage

Planetary Annihilation is a cross platform client / server networked OpenGL application. Any software that interferes with network connections or OpenGL can cause issues.

When playing you are connecting to a local server or hosted server over the internet. Avoid playing via Wi-Fi.

System level crashes or mouse / keyboard freezes during live games are almost always a hardware / driver issue with your system. PA can really push your hardware to the max.

A high spec dedicated server with multi-threading enabled will always out perform a public shared server: https://planetaryannihilation.com/guides/hosting-a-local-server/

Client Performance Does Not Impact Server Performance or Other Clients

The performance of individual clients has no impact on servers or other clients. ie a player with a low spec computer has no impact on the server or other players.

Sim Performance and Time Dilation

When the sim is under pressure the sim rate will slow down causing time dilation.

ie the sim time is slower than real time (this is not lag).

Sim performance depends on:

  • map
    • number of planets (sweet spot is under 8 unless they are tiny with MAX_PLANETS = 16 defined in media/server-script/sim_utils.js)
    • radius (recommended maximum size is 800 – 1000)
    • CSG (more CSG = more complex pathing and navigation)
  • number of armies
  • number of AIs
    • increase the difficulty before adding more
    • increase their eco modifier before adding more
  • number of units
  • number of unit interactions
  • number of projectiles
  • play style
    • hoarding units
    • area patrolling a large group of units
  • CPU
  • network usage (see below)

Games with large systems containing many big planets with lots of CSG and many players that horde thousands of units are not going to perform well on any server.

Each shared team is considered to be a single army in the sim so a 5v5 shared is only two armies and will impact the sim less than a 5v5 unshared or 10 FFA.

Moving large groups of units will impact the sim with planet wide area patrol having the most impact.

Sim Network Throttles

The sim currently throttles to maintain each history viewpoint at a maximum of 4 Mbps (megabits per second).

Each PIP is a separate viewpoint connection multiplexed into a single TCP connection.

The maximum bandwidth per client TCP connection or socket is 16 Mbps (megabits per second).

32 players might use up to 512 Mbps (megabits per second) of outgoing bandwidth on a server.

Server RAM Usage

Server RAM usage depends on:

  • system (see sim performance above)
  • history
    • game time
    • number of units created / killed
    • number of unit interactions
    • number of projectiles

Large systems containing many big planets with lots of CSG will require more initial RAM during loading on both the server and clients.

RAM usage will continue to grow over time based on the number of units created / killed and unit interactions.

History is very compressible so memory compression in latest macOS, Windows 10 and Linux will help to limit RAM usage as the history grows.

THE GALAXY WON'T CONQUER ITSELF Get it now on Steam!
Get It on Steam

90% off for classic PA owners