<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.0.1">Jekyll</generator><link href="https://download.armagetronad.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://download.armagetronad.org/" rel="alternate" type="text/html" /><updated>2026-10-12T06:38:27+02:00</updated><id>https://download.armagetronad.org/feed.xml</id><title type="html">AA Downloads</title><subtitle>Find the most recent downloads of Armagetron Advanced here.</subtitle><entry><title type="html">Build 0.2.9.3_alpha_z3574 available</title><link href="https://download.armagetronad.org/blog/2026/10/12/build-alpha-0.2.9.3_alpha_z3574/" rel="alternate" type="text/html" title="Build 0.2.9.3_alpha_z3574 available" /><published>2026-10-12T06:36:55+02:00</published><updated>2026-10-12T06:36:55+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/12/build-alpha-0.2.9.3_alpha_z3574</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/12/build-alpha-0.2.9.3_alpha_z3574/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/bf25f958223a5eb09a5f6bbf1ffd802f7e067d69&quot;&gt;legacy_0.2.9&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/armagetronad-alpha-0.2.9.3_alpha_z3574.win32.exe&quot;&gt;armagetronad-alpha-0.2.9.3_alpha_z3574.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/ArmagetronAlpha.AppImage&quot;&gt;ArmagetronAlpha.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/ArmagetronAlpha-32bit.AppImage&quot;&gt;ArmagetronAlpha-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/armagetronad-alpha-0.2.9.3_alpha_z3574.dmg&quot;&gt;armagetronad-alpha-0.2.9.3_alpha_z3574.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/armagetronad-alpha-dedicated-0.2.9.3_alpha_z3574.win32.exe&quot;&gt;armagetronad-alpha-dedicated-0.2.9.3_alpha_z3574.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/ArmagetronAlphaDedicated.AppImage&quot;&gt;ArmagetronAlphaDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/ArmagetronAlphaDedicated-32bit.AppImage&quot;&gt;ArmagetronAlphaDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/armagetronad-alpha-dedicated-0.2.9.3_alpha_z3574.dmg&quot;&gt;armagetronad-alpha-dedicated-0.2.9.3_alpha_z3574.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/armagetronad-alpha-0.2.9.3_alpha_z3574.tbz&quot;&gt;armagetronad-alpha-0.2.9.3_alpha_z3574.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3574/armagetronad-alpha-source-0.2.9.3_alpha_z3574.zip&quot;&gt;armagetronad-alpha-source-0.2.9.3_alpha_z3574.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an &lt;a href=&quot;/docs/branches/#alphas&quot;&gt;ALPHA&lt;/a&gt; build, please report any problems you find.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02930&quot;&gt;Changes since 0.2.9.3.0:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Display lists + Simple Walls -&amp;gt; Gaps (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/167&quot;&gt;#167&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;other-changes&quot;&gt;Other Changes&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;No owner check in net_destroy_handler (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/169&quot;&gt;#169&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Balló György, Manuel Moos, Sauss-Ente, Thomas Karpiniec&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from legacy_0.2.9 Game Client Downloads Windows: armagetronad-alpha-0.2.9.3_alpha_z3574.win32.exe Linux 64 Bit: ArmagetronAlpha.AppImage Linux 32 Bit: ArmagetronAlpha-32bit.AppImage macOS: armagetronad-alpha-0.2.9.3_alpha_z3574.dmg Game Server Downloads Windows: armagetronad-alpha-dedicated-0.2.9.3_alpha_z3574.win32.exe Linux 64 Bit: ArmagetronAlphaDedicated.AppImage Linux 32 Bit: ArmagetronAlphaDedicated-32bit.AppImage macOS: armagetronad-alpha-dedicated-0.2.9.3_alpha_z3574.dmg Source Downloads Tarball: armagetronad-alpha-0.2.9.3_alpha_z3574.tbz ZIP for Windows Builds: armagetronad-alpha-source-0.2.9.3_alpha_z3574.zip This is an ALPHA build, please report any problems you find.</summary></entry><entry><title type="html">0.2.9.3.1 released</title><link href="https://download.armagetronad.org/blog/2026/10/08/build-stable-0.2.9.3.1/" rel="alternate" type="text/html" title="0.2.9.3.1 released" /><published>2026-10-08T18:58:56+02:00</published><updated>2026-10-08T18:58:56+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/08/build-stable-0.2.9.3.1</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/08/build-stable-0.2.9.3.1/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/c8489cf5cf43316ec04b55cddb2cfe5165e02ba3&quot;&gt;v0.2.9.3.1&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/armagetronad-0.2.9.3.1.win32.exe&quot;&gt;armagetronad-0.2.9.3.1.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/ArmagetronAdvanced.AppImage&quot;&gt;ArmagetronAdvanced.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/ArmagetronAdvanced-32bit.AppImage&quot;&gt;ArmagetronAdvanced-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/armagetronad-0.2.9.3.1.dmg&quot;&gt;armagetronad-0.2.9.3.1.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/armagetronad-dedicated-0.2.9.3.1.win32.exe&quot;&gt;armagetronad-dedicated-0.2.9.3.1.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/ArmagetronAdvancedDedicated.AppImage&quot;&gt;ArmagetronAdvancedDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/ArmagetronAdvancedDedicated-32bit.AppImage&quot;&gt;ArmagetronAdvancedDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/armagetronad-dedicated-0.2.9.3.1.dmg&quot;&gt;armagetronad-dedicated-0.2.9.3.1.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/armagetronad-0.2.9.3.1.tbz&quot;&gt;armagetronad-0.2.9.3.1.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://launchpad.net/armagetronad/0.2.9/0.2.9.3.1/+download/armagetronad-source-0.2.9.3.1.zip&quot;&gt;armagetronad-source-0.2.9.3.1.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a proper &lt;a href=&quot;/docs/branches#releases&quot;&gt;Release&lt;/a&gt; and should be safe for everyone to use.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02925&quot;&gt;Changes since 0.2.9.2.5:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;FPS display inaccurate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/143&quot;&gt;#143&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Ping Charity: If the lowest ping player sets it to PING_CHARITY to 0, PING_CHARITY_SERVER should be 0. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/153&quot;&gt;#153&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Private messages sent by a user should not go to the receiver as a console out. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/155&quot;&gt;#155&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;No owner check in net_destroy_handler (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/169&quot;&gt;#169&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;MAX_FPS: Setting to limit framerate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/154&quot;&gt;#154&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Add MAX_FPS menu entry (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/164&quot;&gt;#164&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Alex Bagnall, Armanelgtron, AsciiWolf, Bernhard M. Wiedemann, Manuel Moos, Thomas Karpiniec&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from v0.2.9.3.1 Game Client Downloads Windows: armagetronad-0.2.9.3.1.win32.exe Linux 64 Bit: ArmagetronAdvanced.AppImage Linux 32 Bit: ArmagetronAdvanced-32bit.AppImage macOS: armagetronad-0.2.9.3.1.dmg Game Server Downloads Windows: armagetronad-dedicated-0.2.9.3.1.win32.exe Linux 64 Bit: ArmagetronAdvancedDedicated.AppImage Linux 32 Bit: ArmagetronAdvancedDedicated-32bit.AppImage macOS: armagetronad-dedicated-0.2.9.3.1.dmg Source Downloads Tarball: armagetronad-0.2.9.3.1.tbz ZIP for Windows Builds: armagetronad-source-0.2.9.3.1.zip This is a proper Release and should be safe for everyone to use.</summary></entry><entry><title type="html">New Tools on the Block</title><link href="https://download.armagetronad.org/blog/2026/10/08/new-tools/" rel="alternate" type="text/html" title="New Tools on the Block" /><published>2026-10-08T18:00:00+02:00</published><updated>2026-10-08T18:00:00+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/08/new-tools</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/08/new-tools/">&lt;p&gt;We have some new utilities in the source tree! The motivation of these additions was
to make AI aided development safer, but of course, they have the &lt;em&gt;side effect&lt;/em&gt; of being
pretty useful for humans as well.&lt;/p&gt;

&lt;h3 id=&quot;unit-tests-using-doctest&quot;&gt;Unit Tests using doctest&lt;/h3&gt;

&lt;p&gt;In the directory &lt;code class=&quot;highlighter-rouge&quot;&gt;src/test&lt;/code&gt;, we now have a couple of unit tests for base classes and even integration style tests. They use the &lt;strong&gt;doctest&lt;/strong&gt; framework, a single header library included in &lt;code class=&quot;highlighter-rouge&quot;&gt;src/thirdparty/doctest/doctest.h&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Tests get compiled into the standalone executable &lt;code class=&quot;highlighter-rouge&quot;&gt;src/unit_tests&lt;/code&gt;. Run it without parameters to run all tests, check out &lt;code class=&quot;highlighter-rouge&quot;&gt;-h&lt;/code&gt; to learn how to list tests and run single tests should you be interested in that. IDE integrations make use of these options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;doctest&lt;/strong&gt; uses macros to structure tests, because there is basically no other sane way. A test can be a simple sequence of instructions with some assertions &lt;code class=&quot;highlighter-rouge&quot;&gt;CHECK(...)&lt;/code&gt;, but a very
cool thing is that you can define sub-cases with a common setup section on top:&lt;/p&gt;
&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;TEST_CASE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ePlayer basics&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;GIVEN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;existsing ePlayer&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// fetch player 0&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;ePlayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;player&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ePlayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PlayerConfig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

        &lt;span class=&quot;n&quot;&gt;THEN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;player has a name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;CHECK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;strlen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;player&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()));&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

        &lt;span class=&quot;n&quot;&gt;THEN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;there are at least four players&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;CHECK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;uMAX_PLAYERS&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

        &lt;span class=&quot;n&quot;&gt;THEN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ids assigned&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uMAX_PLAYERS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;CHECK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ePlayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PlayerConfig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This will run the test case three times, each time executing the fetch call, then one of the &lt;code class=&quot;highlighter-rouge&quot;&gt;THEN&lt;/code&gt; blocks. Then sadly exit, you cannot define common tear down code. That will have to happen in destructors; check out the new header &lt;code class=&quot;highlighter-rouge&quot;&gt;tools/tDefer.h&lt;/code&gt; and its existing uses in tests, that helps a little.&lt;/p&gt;

&lt;p&gt;There are two very neat things about this:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;If you run your debugger the right way, you can debug a single sub-case, and you won’t be bothered with breakpoint hits from parts of the test you are not interested in.&lt;/li&gt;
  &lt;li&gt;Strip out the code and only leave the macros, what do you get? You get a human readable specification. They suggest you use the macros &lt;code class=&quot;highlighter-rouge&quot;&gt;GIVEN&lt;/code&gt; for setup, &lt;code class=&quot;highlighter-rouge&quot;&gt;WHEN&lt;/code&gt; for an action, and &lt;code class=&quot;highlighter-rouge&quot;&gt;THEN&lt;/code&gt; for the checks, and call that Behavior Driven Development (BDD).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What MAY work, I have not tested it, but will: For a new feature, you just write the part with the macros. Then you let the AI fill in the blanks of the test, then you let the AI build the implementation.&lt;/p&gt;

&lt;p&gt;What was a bit surprising to me: We do have a lot of static data, lists that only can exist once, lists that objects automatically insert themselves to, and global functions. You’d think such things make code untestable, but that is not true; it makes it impossible to run tests in multi-threaded mode, that is all. As long as your test cleans up and leaves the system in the state it started in, there is no problem at all. Even the static timer function is not an obstacle; there is now simply a function to advance time a bit. (It still is shoddy design, mind.)&lt;/p&gt;

&lt;h3 id=&quot;friendly-build-script&quot;&gt;Friendly Build Script&lt;/h3&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;batch/test_builds.sh&lt;/code&gt; can configure and build several different configurations inside &lt;code class=&quot;highlighter-rouge&quot;&gt;build&lt;/code&gt;, directly in the source folder. &lt;code class=&quot;highlighter-rouge&quot;&gt;build&lt;/code&gt; is of course in &lt;code class=&quot;highlighter-rouge&quot;&gt;.gitignore&lt;/code&gt;. What is built is controlled by command line arguments, how it is built by environment variables. It makes
an effort to keep builds for different configurations apart. It defaults to moderately strict
compiler flags, with warnings as errors, very little output if there are no errors, and building and running the tests.&lt;/p&gt;

&lt;p&gt;Possible command line arguments:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;client_debug&lt;/code&gt;: client in debug mode with code coverage&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;server_debug&lt;/code&gt;: server in debug mode with code coverage&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;debug&lt;/code&gt;: both of the above&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;client&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;server&lt;/code&gt;: same in optimized mode&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;minimal&lt;/code&gt;: client with optional (but by default active) things disabled&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;all&lt;/code&gt;: all of the above&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;full&lt;/code&gt;: all of the above, but if you have both installed, for gcc and clang.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;clean&lt;/code&gt;: clear all build directories&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most important environment variables, run with &lt;code class=&quot;highlighter-rouge&quot;&gt;-h&lt;/code&gt; for the rest:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;CXX&lt;/code&gt;: The C++ compiler to use&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;VERBOSE=1&lt;/code&gt;: Full output&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;COVERAGE=1&lt;/code&gt;: Builds human readable code coverage report&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;FORCE_RECONFIGURE=1&lt;/code&gt;: Runs &lt;code class=&quot;highlighter-rouge&quot;&gt;configure&lt;/code&gt; again (automatic in most cases)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea behind the script is to provide a simple and definitive command to do development builds with. It should be easy to wire it into all kinds of workflows.
No matter what the actual configuration is, the two debug builds get linked to the shorter &lt;code class=&quot;highlighter-rouge&quot;&gt;build/test_vs_server_debug&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;build/test_vs_client_debug&lt;/code&gt;, so IDE configurations can work with hardcoded paths to those.&lt;/p&gt;

&lt;h3 id=&quot;code-coverage&quot;&gt;Code Coverage&lt;/h3&gt;

&lt;p&gt;As already mentioned above, we now support building with code coverage collection. It defaults to off, the configure parameter &lt;code class=&quot;highlighter-rouge&quot;&gt;--enable-coverage&lt;/code&gt; enables it. We use &lt;code class=&quot;highlighter-rouge&quot;&gt;gcov&lt;/code&gt; style output and the &lt;code class=&quot;highlighter-rouge&quot;&gt;lcov&lt;/code&gt; tool to generate HTML reports. For clang, &lt;code class=&quot;highlighter-rouge&quot;&gt;llvm-gcov&lt;/code&gt; is used for conversion.&lt;/p&gt;

&lt;p&gt;We do not blindly chase high code coverage. That would be silly. &lt;code class=&quot;highlighter-rouge&quot;&gt;lcov&lt;/code&gt; does not even count entire source files that are not covered at all. You can increase coverage by deleting non-covered code. You can write tests that cover a lot of code, but don’t do any testing; one could, for example, just play back a debug recording.&lt;/p&gt;

&lt;p&gt;Instead, just use the coverage results to check whether your tests do indeed cover the code you want to test.&lt;/p&gt;

&lt;h3 id=&quot;codiumvisual-studio-code&quot;&gt;Codium/Visual Studio Code&lt;/h3&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;.vscode&lt;/code&gt; has been added to &lt;code class=&quot;highlighter-rouge&quot;&gt;.gitignore&lt;/code&gt;, so you can now put your configuration there without having to constantly take care to not commit it. A sample configuration, making use of the build script, is provided in &lt;code class=&quot;highlighter-rouge&quot;&gt;.vscode.example&lt;/code&gt;. Link it and leave it, or copy it and modify to your needs.&lt;/p&gt;

&lt;p&gt;What the sample configuration provides:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Include specifications, so code completion works&lt;/li&gt;
  &lt;li&gt;Build and debug configuration&lt;/li&gt;
  &lt;li&gt;Code coverage and test runner configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For all this to work, you need some extensions, they are in the suggested extensions configuration of the sample. The official C++ extension is in there, obviously. Additionally:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;TestMate C++: Has adapters for the doctest based tests. You can run all tests to see which failed, see those failures integrated into the source code editor, and you can run and debug individual test cases. You can have the test executable monitored for changes so tests get rerun in the background every time you build.&lt;/li&gt;
  &lt;li&gt;Coverage Gutters: I have not used it as much so far… on demand, you can let it show on the left-hand margin which code lines are covered and which are not. This requires that you run the build script with &lt;code class=&quot;highlighter-rouge&quot;&gt;COVERAGE=1&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;doxygen&quot;&gt;Doxygen&lt;/h3&gt;

&lt;p&gt;We had this the whole time, but new now, thanks to newly discovered capabilities and filters, we generate a Main Page and classes are sorted into Topics, which makes navigation much easier. Building the documentation and uploading it somewhere using the build pipeline is a job for the future.&lt;/p&gt;

&lt;h3 id=&quot;ai-guidance-files&quot;&gt;AI Guidance Files&lt;/h3&gt;

&lt;p&gt;Littered throughout the project, there are now &lt;code class=&quot;highlighter-rouge&quot;&gt;AGENTS.md&lt;/code&gt; files, giving AI coding tools a short overview of the directory contents so they do not have to re-scan them every time, wasting tokens. The top level and &lt;code class=&quot;highlighter-rouge&quot;&gt;src/test&lt;/code&gt; ones contain some human written instructions so they stick to the rules.&lt;/p&gt;

&lt;p&gt;For your own fun side projects, use them as you see fit. If you want to contribute to the main repository, however, keep in mind that human developer enjoyment still very much is something we value. Anything you cook up with AI will be read by a human and checked whether it can be maintained by a human, so don’t even think about submitting 5000 line vibe coded diffs. We don’t have any hard limit… think about it like that, do you understand what your AI generated code does? Enough so you could change it yourself if requirements change? Then it is probably fine.&lt;/p&gt;

&lt;p&gt;In case that scares you off: On the bright side, AI already has proven itself useful. Writing many of the automated tests, it uncovered a couple of bugs (diligently writing the tests around them, of course, because it was instructed to write tests that document the Status Quo). And 0.2.9.3.1 is an AI generated security fix against an (unpublished!) AI generated exploit, submitted by arcsinx.&lt;/p&gt;

&lt;p&gt;In case you are curious, the &lt;code class=&quot;highlighter-rouge&quot;&gt;AGENTS.md&lt;/code&gt; files were generated with a depth search by my COMPLETELY SELF DEVELOPED skill collection “Mossy Slop” (&lt;a href=&quot;https://github.com/MossySlackAI/mossy-slop&quot;&gt;GitHub&lt;/a&gt;/&lt;a href=&quot;https://gitlab.com/mossy-ai/mossy-slop&quot;&gt;GitLab&lt;/a&gt;), the &lt;code class=&quot;highlighter-rouge&quot;&gt;mossy-scan&lt;/code&gt; skill.&lt;/p&gt;

&lt;p&gt;Ok, the real origin story is that at work, we got a day of AI instructions from some consultant, and were told to use his framework. However, it burned through so many tokens that I told my AI to clone it, with token conservation in mind. And it did. And it worked, sort of. Most of the skills I actually used so far, I really have rewritten by hand.&lt;/p&gt;

&lt;h3 id=&quot;devcontainers&quot;&gt;Devcontainers&lt;/h3&gt;

&lt;p&gt;Not strictly part of any big change in the source, apart from adding &lt;code class=&quot;highlighter-rouge&quot;&gt;.devcontainers&lt;/code&gt; to &lt;code class=&quot;highlighter-rouge&quot;&gt;.gitignore&lt;/code&gt;: It is very much recommended to run your AI agents in a docker container without access to any important credentials. &lt;a href=&quot;https://gitlab.com/zmanuel/armagetron-advanced-devcontainer&quot;&gt;Here is my configuration&lt;/a&gt;, likely in heavy flux.&lt;/p&gt;

&lt;p&gt;Some small adaptions in the source do cater to devcontainer users: The build script tries to detect if it is running in a container and if so, chooses different directory names. Container builds are likely incompatible with host builds.&lt;/p&gt;

&lt;p&gt;Have fun,&lt;/p&gt;

&lt;p&gt;Z-Man&lt;/p&gt;</content><author><name></name></author><summary type="html"></summary></entry><entry><title type="html">Build 0.2.9.3_beta_z3199 available</title><link href="https://download.armagetronad.org/blog/2026/10/08/build-beta-0.2.9.3_beta_z3199/" rel="alternate" type="text/html" title="Build 0.2.9.3_beta_z3199 available" /><published>2026-10-08T11:04:38+02:00</published><updated>2026-10-08T11:04:38+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/08/build-beta-0.2.9.3_beta_z3199</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/08/build-beta-0.2.9.3_beta_z3199/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/c8489cf5cf43316ec04b55cddb2cfe5165e02ba3&quot;&gt;beta_0.2.9&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/armagetronad-beta-0.2.9.3_beta_z3199.win32.exe&quot;&gt;armagetronad-beta-0.2.9.3_beta_z3199.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/ArmagetronBeta.AppImage&quot;&gt;ArmagetronBeta.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/ArmagetronBeta-32bit.AppImage&quot;&gt;ArmagetronBeta-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/armagetronad-beta-0.2.9.3_beta_z3199.dmg&quot;&gt;armagetronad-beta-0.2.9.3_beta_z3199.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/armagetronad-beta-dedicated-0.2.9.3_beta_z3199.win32.exe&quot;&gt;armagetronad-beta-dedicated-0.2.9.3_beta_z3199.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/ArmagetronBetaDedicated.AppImage&quot;&gt;ArmagetronBetaDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/ArmagetronBetaDedicated-32bit.AppImage&quot;&gt;ArmagetronBetaDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/armagetronad-beta-dedicated-0.2.9.3_beta_z3199.dmg&quot;&gt;armagetronad-beta-dedicated-0.2.9.3_beta_z3199.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/armagetronad-beta-0.2.9.3_beta_z3199.tbz&quot;&gt;armagetronad-beta-0.2.9.3_beta_z3199.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3199/armagetronad-beta-source-0.2.9.3_beta_z3199.zip&quot;&gt;armagetronad-beta-source-0.2.9.3_beta_z3199.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;a href=&quot;/docs/branches/#betas&quot;&gt;BETA&lt;/a&gt; build, please report any problems you find.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02925&quot;&gt;Changes since 0.2.9.2.5:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;FPS display inaccurate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/143&quot;&gt;#143&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Ping Charity: If the lowest ping player sets it to PING_CHARITY to 0, PING_CHARITY_SERVER should be 0. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/153&quot;&gt;#153&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Private messages sent by a user should not go to the receiver as a console out. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/155&quot;&gt;#155&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;MAX_FPS: Setting to limit framerate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/154&quot;&gt;#154&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Add MAX_FPS menu entry (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/164&quot;&gt;#164&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Alex Bagnall, Armanelgtron, AsciiWolf, Bernhard M. Wiedemann, Manuel Moos&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from beta_0.2.9 Game Client Downloads Windows: armagetronad-beta-0.2.9.3_beta_z3199.win32.exe Linux 64 Bit: ArmagetronBeta.AppImage Linux 32 Bit: ArmagetronBeta-32bit.AppImage macOS: armagetronad-beta-0.2.9.3_beta_z3199.dmg Game Server Downloads Windows: armagetronad-beta-dedicated-0.2.9.3_beta_z3199.win32.exe Linux 64 Bit: ArmagetronBetaDedicated.AppImage Linux 32 Bit: ArmagetronBetaDedicated-32bit.AppImage macOS: armagetronad-beta-dedicated-0.2.9.3_beta_z3199.dmg Source Downloads Tarball: armagetronad-beta-0.2.9.3_beta_z3199.tbz ZIP for Windows Builds: armagetronad-beta-source-0.2.9.3_beta_z3199.zip This is a BETA build, please report any problems you find.</summary></entry><entry><title type="html">Build 0.2.8.3.7_alpha_z1898 available</title><link href="https://download.armagetronad.org/blog/2026/10/08/build-alpha-0.2.8.3.7_alpha_z1898/" rel="alternate" type="text/html" title="Build 0.2.8.3.7_alpha_z1898 available" /><published>2026-10-08T10:45:23+02:00</published><updated>2026-10-08T10:45:23+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/08/build-alpha-0.2.8.3.7_alpha_z1898</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/08/build-alpha-0.2.8.3.7_alpha_z1898/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/5ac351157ac5a63c21748dbad4cf554d67153c43&quot;&gt;legacy_0.2.8.3&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/armagetronad-alpha-0.2.8.3.7_alpha_z1898.win32.exe&quot;&gt;armagetronad-alpha-0.2.8.3.7_alpha_z1898.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/ArmagetronAlpha-0.2.8.3.7_alpha_z1898.AppImage&quot;&gt;ArmagetronAlpha-0.2.8.3.7_alpha_z1898.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/ArmagetronAlpha-32bit-0.2.8.3.7_alpha_z1898.AppImage&quot;&gt;ArmagetronAlpha-32bit-0.2.8.3.7_alpha_z1898.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/armagetronad-alpha-0.2.8.3.7_alpha_z1898.dmg&quot;&gt;armagetronad-alpha-0.2.8.3.7_alpha_z1898.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/armagetronad-alpha-dedicated-0.2.8.3.7_alpha_z1898.win32.exe&quot;&gt;armagetronad-alpha-dedicated-0.2.8.3.7_alpha_z1898.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/ArmagetronAlphaDedicated-0.2.8.3.7_alpha_z1898.AppImage&quot;&gt;ArmagetronAlphaDedicated-0.2.8.3.7_alpha_z1898.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/ArmagetronAlphaDedicated-32bit-0.2.8.3.7_alpha_z1898.AppImage&quot;&gt;ArmagetronAlphaDedicated-32bit-0.2.8.3.7_alpha_z1898.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/armagetronad-alpha-dedicated-0.2.8.3.7_alpha_z1898.dmg&quot;&gt;armagetronad-alpha-dedicated-0.2.8.3.7_alpha_z1898.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/armagetronad-alpha-0.2.8.3.7_alpha_z1898.tbz&quot;&gt;armagetronad-alpha-0.2.8.3.7_alpha_z1898.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.8.3.7_alpha_z1898/armagetronad-alpha-source-0.2.8.3.7_alpha_z1898.zip&quot;&gt;armagetronad-alpha-source-0.2.8.3.7_alpha_z1898.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an &lt;a href=&quot;/docs/branches/#alphas&quot;&gt;ALPHA&lt;/a&gt; build, please report any problems you find.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.8.3 branch of development. 
It is the most recent LTS (Long Term Support) branch.
While it is the most recent LTS branch, 
it will receive security fixes, adaptions to new
compilers and Linux versions and some less important bugfixes.&lt;/p&gt;

&lt;p&gt;Target audience for this series are mostly Linux distributors who do not want 
to upgrade to 0.2.9 just yet.
If you are in that camp and need help integrating the changes into your build, 
contact us.&lt;/p&gt;

&lt;p&gt;We started to integrate builds for &lt;a href=&quot;https://wiki.armagetronad.org/index.php?title=MacOS&quot;&gt;macOS&lt;/a&gt;.
Consider them alpha for now, testing and patches very welcome. The current macOS specific issues
can be viewed &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/issues?label_name%5B%5D=macOS&quot;&gt;on our tracker&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02836&quot;&gt;Changes since 0.2.8.3.6:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Sound trouble deja entendu (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/130&quot;&gt;#130&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Online play suddenly stopped working. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/145&quot;&gt;#145&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Ubuntu versions contain ~ppa1~ppa1 (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/70&quot;&gt;#70&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Website update waits for launchpad uploads that do not happen (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/71&quot;&gt;#71&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Versioning script incorrectly takes current tag into account (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/72&quot;&gt;#72&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Retina display not working correctly (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/88&quot;&gt;#88&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;0.2.9 clients lose connection on 0.4 server (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/98&quot;&gt;#98&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Client sends quickly typed chat message with last character missing (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/106&quot;&gt;#106&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Backslashes not escaped when saving to user.cfg (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/110&quot;&gt;#110&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Fix invulnerability bug handling (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/111&quot;&gt;#111&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;macOS DMG Build problems when building inside the source tree (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/119&quot;&gt;#119&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;User data saved in the wrong place on macOS (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/125&quot;&gt;#125&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Add macOS dmg bundling (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/86&quot;&gt;#86&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Integrate macOS build into pipeline (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/87&quot;&gt;#87&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Sign the application bundle (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/89&quot;&gt;#89&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;other-changes&quot;&gt;Other Changes&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Improve deployment cancellation (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/80&quot;&gt;#80&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;macOS Build (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/82&quot;&gt;#82&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Armanelgtron, Manuel Moos, Thomas Karpiniec&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from legacy_0.2.8.3 Game Client Downloads Windows: armagetronad-alpha-0.2.8.3.7_alpha_z1898.win32.exe Linux 64 Bit: ArmagetronAlpha-0.2.8.3.7_alpha_z1898.AppImage Linux 32 Bit: ArmagetronAlpha-32bit-0.2.8.3.7_alpha_z1898.AppImage macOS: armagetronad-alpha-0.2.8.3.7_alpha_z1898.dmg Game Server Downloads Windows: armagetronad-alpha-dedicated-0.2.8.3.7_alpha_z1898.win32.exe Linux 64 Bit: ArmagetronAlphaDedicated-0.2.8.3.7_alpha_z1898.AppImage Linux 32 Bit: ArmagetronAlphaDedicated-32bit-0.2.8.3.7_alpha_z1898.AppImage macOS: armagetronad-alpha-dedicated-0.2.8.3.7_alpha_z1898.dmg Source Downloads Tarball: armagetronad-alpha-0.2.8.3.7_alpha_z1898.tbz ZIP for Windows Builds: armagetronad-alpha-source-0.2.8.3.7_alpha_z1898.zip This is an ALPHA build, please report any problems you find.</summary></entry><entry><title type="html">Build 0.2.9.3_rc_z3199 available</title><link href="https://download.armagetronad.org/blog/2026/10/07/build-rc-0.2.9.3_rc_z3199/" rel="alternate" type="text/html" title="Build 0.2.9.3_rc_z3199 available" /><published>2026-10-07T23:45:50+02:00</published><updated>2026-10-07T23:45:50+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/07/build-rc-0.2.9.3_rc_z3199</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/07/build-rc-0.2.9.3_rc_z3199/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/c8489cf5cf43316ec04b55cddb2cfe5165e02ba3&quot;&gt;release_0.2.9&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/armagetronad-0.2.9.3_rc_z3199.win32.exe&quot;&gt;armagetronad-0.2.9.3_rc_z3199.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/ArmagetronAdvanced.AppImage&quot;&gt;ArmagetronAdvanced.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/ArmagetronAdvanced-32bit.AppImage&quot;&gt;ArmagetronAdvanced-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/armagetronad-0.2.9.3_rc_z3199.dmg&quot;&gt;armagetronad-0.2.9.3_rc_z3199.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/armagetronad-dedicated-0.2.9.3_rc_z3199.win32.exe&quot;&gt;armagetronad-dedicated-0.2.9.3_rc_z3199.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/ArmagetronAdvancedDedicated.AppImage&quot;&gt;ArmagetronAdvancedDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/ArmagetronAdvancedDedicated-32bit.AppImage&quot;&gt;ArmagetronAdvancedDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/armagetronad-dedicated-0.2.9.3_rc_z3199.dmg&quot;&gt;armagetronad-dedicated-0.2.9.3_rc_z3199.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/armagetronad-0.2.9.3_rc_z3199.tbz&quot;&gt;armagetronad-0.2.9.3_rc_z3199.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3199/armagetronad-source-0.2.9.3_rc_z3199.zip&quot;&gt;armagetronad-source-0.2.9.3_rc_z3199.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;a href=&quot;/docs/branches/#release-candidates&quot;&gt;Release Candidate&lt;/a&gt; for ironing out the last breaking changes before an actual release.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02925&quot;&gt;Changes since 0.2.9.2.5:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;FPS display inaccurate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/143&quot;&gt;#143&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Ping Charity: If the lowest ping player sets it to PING_CHARITY to 0, PING_CHARITY_SERVER should be 0. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/153&quot;&gt;#153&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Private messages sent by a user should not go to the receiver as a console out. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/155&quot;&gt;#155&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;MAX_FPS: Setting to limit framerate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/154&quot;&gt;#154&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Add MAX_FPS menu entry (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/164&quot;&gt;#164&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Alex Bagnall, Armanelgtron, AsciiWolf, Bernhard M. Wiedemann, Manuel Moos&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from release_0.2.9 Game Client Downloads Windows: armagetronad-0.2.9.3_rc_z3199.win32.exe Linux 64 Bit: ArmagetronAdvanced.AppImage Linux 32 Bit: ArmagetronAdvanced-32bit.AppImage macOS: armagetronad-0.2.9.3_rc_z3199.dmg Game Server Downloads Windows: armagetronad-dedicated-0.2.9.3_rc_z3199.win32.exe Linux 64 Bit: ArmagetronAdvancedDedicated.AppImage Linux 32 Bit: ArmagetronAdvancedDedicated-32bit.AppImage macOS: armagetronad-dedicated-0.2.9.3_rc_z3199.dmg Source Downloads Tarball: armagetronad-0.2.9.3_rc_z3199.tbz ZIP for Windows Builds: armagetronad-source-0.2.9.3_rc_z3199.zip This is a Release Candidate for ironing out the last breaking changes before an actual release.</summary></entry><entry><title type="html">Build 0.2.9.3_rc_z3198 available</title><link href="https://download.armagetronad.org/blog/2026/10/07/build-rc-0.2.9.3_rc_z3198/" rel="alternate" type="text/html" title="Build 0.2.9.3_rc_z3198 available" /><published>2026-10-07T10:01:12+02:00</published><updated>2026-10-07T10:01:12+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/07/build-rc-0.2.9.3_rc_z3198</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/07/build-rc-0.2.9.3_rc_z3198/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/13d8f333cb9a873676d5039ab3d2cce30fc083b7&quot;&gt;release_0.2.9&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/armagetronad-0.2.9.3_rc_z3198.win32.exe&quot;&gt;armagetronad-0.2.9.3_rc_z3198.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/ArmagetronAdvanced.AppImage&quot;&gt;ArmagetronAdvanced.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/ArmagetronAdvanced-32bit.AppImage&quot;&gt;ArmagetronAdvanced-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/armagetronad-0.2.9.3_rc_z3198.dmg&quot;&gt;armagetronad-0.2.9.3_rc_z3198.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/armagetronad-dedicated-0.2.9.3_rc_z3198.win32.exe&quot;&gt;armagetronad-dedicated-0.2.9.3_rc_z3198.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/ArmagetronAdvancedDedicated.AppImage&quot;&gt;ArmagetronAdvancedDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/ArmagetronAdvancedDedicated-32bit.AppImage&quot;&gt;ArmagetronAdvancedDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/armagetronad-dedicated-0.2.9.3_rc_z3198.dmg&quot;&gt;armagetronad-dedicated-0.2.9.3_rc_z3198.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/armagetronad-0.2.9.3_rc_z3198.tbz&quot;&gt;armagetronad-0.2.9.3_rc_z3198.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/rc/2026/0.2.9.3_rc_z3198/armagetronad-source-0.2.9.3_rc_z3198.zip&quot;&gt;armagetronad-source-0.2.9.3_rc_z3198.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;a href=&quot;/docs/branches/#release-candidates&quot;&gt;Release Candidate&lt;/a&gt; for ironing out the last breaking changes before an actual release.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02925&quot;&gt;Changes since 0.2.9.2.5:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;FPS display inaccurate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/143&quot;&gt;#143&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Ping Charity: If the lowest ping player sets it to PING_CHARITY to 0, PING_CHARITY_SERVER should be 0. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/153&quot;&gt;#153&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Private messages sent by a user should not go to the receiver as a console out. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/155&quot;&gt;#155&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;MAX_FPS: Setting to limit framerate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/154&quot;&gt;#154&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Add MAX_FPS menu entry (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/164&quot;&gt;#164&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Alex Bagnall, Armanelgtron, AsciiWolf, Bernhard M. Wiedemann, Manuel Moos&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from release_0.2.9 Game Client Downloads Windows: armagetronad-0.2.9.3_rc_z3198.win32.exe Linux 64 Bit: ArmagetronAdvanced.AppImage Linux 32 Bit: ArmagetronAdvanced-32bit.AppImage macOS: armagetronad-0.2.9.3_rc_z3198.dmg Game Server Downloads Windows: armagetronad-dedicated-0.2.9.3_rc_z3198.win32.exe Linux 64 Bit: ArmagetronAdvancedDedicated.AppImage Linux 32 Bit: ArmagetronAdvancedDedicated-32bit.AppImage macOS: armagetronad-dedicated-0.2.9.3_rc_z3198.dmg Source Downloads Tarball: armagetronad-0.2.9.3_rc_z3198.tbz ZIP for Windows Builds: armagetronad-source-0.2.9.3_rc_z3198.zip This is a Release Candidate for ironing out the last breaking changes before an actual release.</summary></entry><entry><title type="html">Build 0.2.9.3_alpha_z3570 available</title><link href="https://download.armagetronad.org/blog/2026/10/07/build-alpha-0.2.9.3_alpha_z3570/" rel="alternate" type="text/html" title="Build 0.2.9.3_alpha_z3570 available" /><published>2026-10-07T09:32:03+02:00</published><updated>2026-10-07T09:32:03+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/07/build-alpha-0.2.9.3_alpha_z3570</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/07/build-alpha-0.2.9.3_alpha_z3570/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/e82fe5079f2952059dd4bb907ef796faab8c7185&quot;&gt;legacy_0.2.9&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/armagetronad-alpha-0.2.9.3_alpha_z3570.win32.exe&quot;&gt;armagetronad-alpha-0.2.9.3_alpha_z3570.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/ArmagetronAlpha.AppImage&quot;&gt;ArmagetronAlpha.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/ArmagetronAlpha-32bit.AppImage&quot;&gt;ArmagetronAlpha-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/armagetronad-alpha-0.2.9.3_alpha_z3570.dmg&quot;&gt;armagetronad-alpha-0.2.9.3_alpha_z3570.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/armagetronad-alpha-dedicated-0.2.9.3_alpha_z3570.win32.exe&quot;&gt;armagetronad-alpha-dedicated-0.2.9.3_alpha_z3570.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/ArmagetronAlphaDedicated.AppImage&quot;&gt;ArmagetronAlphaDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/ArmagetronAlphaDedicated-32bit.AppImage&quot;&gt;ArmagetronAlphaDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/armagetronad-alpha-dedicated-0.2.9.3_alpha_z3570.dmg&quot;&gt;armagetronad-alpha-dedicated-0.2.9.3_alpha_z3570.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/armagetronad-alpha-0.2.9.3_alpha_z3570.tbz&quot;&gt;armagetronad-alpha-0.2.9.3_alpha_z3570.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/alpha/2026/0.2.9.3_alpha_z3570/armagetronad-alpha-source-0.2.9.3_alpha_z3570.zip&quot;&gt;armagetronad-alpha-source-0.2.9.3_alpha_z3570.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an &lt;a href=&quot;/docs/branches/#alphas&quot;&gt;ALPHA&lt;/a&gt; build, please report any problems you find.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02930&quot;&gt;Changes since 0.2.9.3.0:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Display lists + Simple Walls -&amp;gt; Gaps (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/167&quot;&gt;#167&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Balló György, Manuel Moos, Sauss-Ente, Thomas Karpiniec&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from legacy_0.2.9 Game Client Downloads Windows: armagetronad-alpha-0.2.9.3_alpha_z3570.win32.exe Linux 64 Bit: ArmagetronAlpha.AppImage Linux 32 Bit: ArmagetronAlpha-32bit.AppImage macOS: armagetronad-alpha-0.2.9.3_alpha_z3570.dmg Game Server Downloads Windows: armagetronad-alpha-dedicated-0.2.9.3_alpha_z3570.win32.exe Linux 64 Bit: ArmagetronAlphaDedicated.AppImage Linux 32 Bit: ArmagetronAlphaDedicated-32bit.AppImage macOS: armagetronad-alpha-dedicated-0.2.9.3_alpha_z3570.dmg Source Downloads Tarball: armagetronad-alpha-0.2.9.3_alpha_z3570.tbz ZIP for Windows Builds: armagetronad-alpha-source-0.2.9.3_alpha_z3570.zip This is an ALPHA build, please report any problems you find.</summary></entry><entry><title type="html">Build 0.2.9.3_beta_z3198 available</title><link href="https://download.armagetronad.org/blog/2026/10/07/build-beta-0.2.9.3_beta_z3198/" rel="alternate" type="text/html" title="Build 0.2.9.3_beta_z3198 available" /><published>2026-10-07T09:04:07+02:00</published><updated>2026-10-07T09:04:07+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/07/build-beta-0.2.9.3_beta_z3198</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/07/build-beta-0.2.9.3_beta_z3198/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/13d8f333cb9a873676d5039ab3d2cce30fc083b7&quot;&gt;beta_0.2.9&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/armagetronad-beta-0.2.9.3_beta_z3198.win32.exe&quot;&gt;armagetronad-beta-0.2.9.3_beta_z3198.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/ArmagetronBeta.AppImage&quot;&gt;ArmagetronBeta.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/ArmagetronBeta-32bit.AppImage&quot;&gt;ArmagetronBeta-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/armagetronad-beta-0.2.9.3_beta_z3198.dmg&quot;&gt;armagetronad-beta-0.2.9.3_beta_z3198.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/armagetronad-beta-dedicated-0.2.9.3_beta_z3198.win32.exe&quot;&gt;armagetronad-beta-dedicated-0.2.9.3_beta_z3198.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/ArmagetronBetaDedicated.AppImage&quot;&gt;ArmagetronBetaDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/ArmagetronBetaDedicated-32bit.AppImage&quot;&gt;ArmagetronBetaDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/armagetronad-beta-dedicated-0.2.9.3_beta_z3198.dmg&quot;&gt;armagetronad-beta-dedicated-0.2.9.3_beta_z3198.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/armagetronad-beta-0.2.9.3_beta_z3198.tbz&quot;&gt;armagetronad-beta-0.2.9.3_beta_z3198.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/beta/2026/0.2.9.3_beta_z3198/armagetronad-beta-source-0.2.9.3_beta_z3198.zip&quot;&gt;armagetronad-beta-source-0.2.9.3_beta_z3198.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;a href=&quot;/docs/branches/#betas&quot;&gt;BETA&lt;/a&gt; build, please report any problems you find.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.2.9 branch of development. Our current releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;p&gt;0.2.9.3.1 has a security fix, users were able to delete objects owned by other
clients. Thank arcsinx (Thomas Karpiniec) for that fix!&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02925&quot;&gt;Changes since 0.2.9.2.5:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;FPS display inaccurate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/143&quot;&gt;#143&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Ping Charity: If the lowest ping player sets it to PING_CHARITY to 0, PING_CHARITY_SERVER should be 0. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/153&quot;&gt;#153&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Private messages sent by a user should not go to the receiver as a console out. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/155&quot;&gt;#155&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;MAX_FPS: Setting to limit framerate (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/154&quot;&gt;#154&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Add MAX_FPS menu entry (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/164&quot;&gt;#164&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Alex Bagnall, Armanelgtron, AsciiWolf, Bernhard M. Wiedemann, Manuel Moos&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from beta_0.2.9 Game Client Downloads Windows: armagetronad-beta-0.2.9.3_beta_z3198.win32.exe Linux 64 Bit: ArmagetronBeta.AppImage Linux 32 Bit: ArmagetronBeta-32bit.AppImage macOS: armagetronad-beta-0.2.9.3_beta_z3198.dmg Game Server Downloads Windows: armagetronad-beta-dedicated-0.2.9.3_beta_z3198.win32.exe Linux 64 Bit: ArmagetronBetaDedicated.AppImage Linux 32 Bit: ArmagetronBetaDedicated-32bit.AppImage macOS: armagetronad-beta-dedicated-0.2.9.3_beta_z3198.dmg Source Downloads Tarball: armagetronad-beta-0.2.9.3_beta_z3198.tbz ZIP for Windows Builds: armagetronad-beta-source-0.2.9.3_beta_z3198.zip This is a BETA build, please report any problems you find.</summary></entry><entry><title type="html">Build 0.4.0_alpha_z6401 available</title><link href="https://download.armagetronad.org/blog/2026/10/07/build-experimental-0.4.0_alpha_z6401/" rel="alternate" type="text/html" title="Build 0.4.0_alpha_z6401 available" /><published>2026-10-07T08:29:05+02:00</published><updated>2026-10-07T08:29:05+02:00</updated><id>https://download.armagetronad.org/blog/2026/10/07/build-experimental-0.4.0_alpha_z6401</id><content type="html" xml:base="https://download.armagetronad.org/blog/2026/10/07/build-experimental-0.4.0_alpha_z6401/">&lt;p&gt;Built from &lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/commit/9f56ef96a013d2e965db554917fb53c55e015129&quot;&gt;trunk&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-client-downloads&quot;&gt;Game Client Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/armagetronad-experimental-0.4.0_alpha_z6401.win32.exe&quot;&gt;armagetronad-experimental-0.4.0_alpha_z6401.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/ArmagetronExperimental.AppImage&quot;&gt;ArmagetronExperimental.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/ArmagetronExperimental-32bit.AppImage&quot;&gt;ArmagetronExperimental-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/armagetronad-experimental-0.4.0_alpha_z6401.dmg&quot;&gt;armagetronad-experimental-0.4.0_alpha_z6401.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;game-server-downloads&quot;&gt;Game Server Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/armagetronad-experimental-dedicated-0.4.0_alpha_z6401.win32.exe&quot;&gt;armagetronad-experimental-dedicated-0.4.0_alpha_z6401.win32.exe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 64 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/ArmagetronExperimentalDedicated.AppImage&quot;&gt;ArmagetronExperimentalDedicated.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux 32 Bit&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/ArmagetronExperimentalDedicated-32bit.AppImage&quot;&gt;ArmagetronExperimentalDedicated-32bit.AppImage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/armagetronad-experimental-dedicated-0.4.0_alpha_z6401.dmg&quot;&gt;armagetronad-experimental-dedicated-0.4.0_alpha_z6401.dmg&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;source-downloads&quot;&gt;Source Downloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tarball&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/armagetronad-experimental-0.4.0_alpha_z6401.tbz&quot;&gt;armagetronad-experimental-0.4.0_alpha_z6401.tbz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZIP for Windows Builds&lt;/strong&gt;: &lt;a href=&quot;https://download.armagetronad.org/staging/snapshots/2026/0.4.0_alpha_z6401/armagetronad-experimental-source-0.4.0_alpha_z6401.zip&quot;&gt;armagetronad-experimental-source-0.4.0_alpha_z6401.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an &lt;a href=&quot;/docs/branches/#experimentals&quot;&gt;EXPERIMENTAL&lt;/a&gt; build, the cautious should stay away. The daring should please report any problems they find.&lt;/p&gt;

&lt;h3 id=&quot;release-notes&quot;&gt;Release Notes&lt;/h3&gt;

&lt;p&gt;This is from the 0.4 branch of development. Our experimental releases are derived from here.&lt;/p&gt;

&lt;h2 id=&quot;its-all-libxmls-fault&quot;&gt;It’s all libxml’s fault&lt;/h2&gt;

&lt;p&gt;The main reason for this release is that the default installation of libxml
removed http fetch functions we were using, and that starts appearing in 
mainstream Linux distributions now, such as Ubuntu 26.10. On such systems,
we now use libcurl as a replacement. Binary builds are unchanged, they still
use the old libxml.&lt;/p&gt;

&lt;p&gt;But hey, you also get a better framerate indicator. And it seems the bugs 
Alex Bagnall fixed made the bots a little more competent.&lt;/p&gt;

&lt;p&gt;There is a new framerate limiter option in 
System Setup/Display Settings/Screen Mode. We decided to default it to 360 FPS, 
which should be inoffensive. &lt;a href=&quot;/blog/2026/04/18/framerate-limit&quot;&gt;This article&lt;/a&gt; 
describes how you can set it up to benefit you even more. And of course, you 
can completely disable it.&lt;/p&gt;

&lt;h3 id=&quot;patch-notes&quot;&gt;Patch Notes&lt;/h3&gt;

&lt;h4 id=&quot;changes-since-02930&quot;&gt;Changes since 0.2.9.3.0:&lt;/h4&gt;

&lt;h5 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Ubuntu PPA release candidate builds would overwrite previous stable releases (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/15&quot;&gt;#15&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Bad video mode error recovery (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/23&quot;&gt;#23&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Crash when entering any game on client on OpenBSD+clang (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/30&quot;&gt;#30&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;mathexpr.cpp: exp10 not available on OpenBSD (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/31&quot;&gt;#31&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Global keyboard actions, like fullscreen toggle, triggered while entering text in text input fields (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/32&quot;&gt;#32&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Windows: DPI scaling behavior wrong (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/33&quot;&gt;#33&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;AppRun script uses ~/.armagetronad as cache directory, should use ${XDG_CACHE_HOME:-~/.cache}/armagetronad (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/43&quot;&gt;#43&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Music does not work on SDL_Mixer &amp;gt; 2.0.1 (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/64&quot;&gt;#64&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;“xdg-icon-resource: command not found” on macOS (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/83&quot;&gt;#83&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Retina display not working correctly (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/88&quot;&gt;#88&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;0.4 macOS build crashes on startup (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/94&quot;&gt;#94&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Fullscreen mode: flickering startup (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/95&quot;&gt;#95&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;0.2.9 clients lose connection on 0.4 server (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/98&quot;&gt;#98&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Docker Image: Increase thread stack size (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/104&quot;&gt;#104&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;“Redo first setup”: Color says “Blue”, result is black. Should show “Leave alone” and do just that. (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/113&quot;&gt;#113&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Fix login prompt not accepting input immediately (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/123&quot;&gt;#123&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Display lists keep rim wall lowered (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/141&quot;&gt;#141&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Display lists + Simple Walls -&amp;gt; Gaps (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/167&quot;&gt;#167&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;new-features&quot;&gt;New Features&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Add tSettingItemLine (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/3&quot;&gt;#3&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;user.cfg fine grained upgrade system (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/61&quot;&gt;#61&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Add option for low DPI rendering (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/96&quot;&gt;#96&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Make window resizable (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/97&quot;&gt;#97&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;other-changes&quot;&gt;Other Changes&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Improve sound (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/45&quot;&gt;#45&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Pasting does not properly handle unicode input (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/51&quot;&gt;#51&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Improve deployment cancellation (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/80&quot;&gt;#80&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Crash when votes are issued (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/84&quot;&gt;#84&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Better detection for boost-thread (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/85&quot;&gt;#85&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Windows debug build crashes on startup (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/91&quot;&gt;#91&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Internal error in boost::thread::thread(const T &amp;amp;) [T = tMemberFunctionRunnerTemplate&lt;nDNSResolver&gt;] ([#115](https://gitlab.com/armagetronad/armagetronad/-/work_items/115))&lt;/nDNSResolver&gt;&lt;/li&gt;
  &lt;li&gt;Window size sometimes not set (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/116&quot;&gt;#116&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Window drifts when toggling to fullscreen and back (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/117&quot;&gt;#117&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;fadeout name improvements (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/121&quot;&gt;#121&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Crash on dedicated server startup (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/122&quot;&gt;#122&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Disable low latency mode if not waiting for vsync (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/124&quot;&gt;#124&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Trunk Windows builds fail with “random_device::random_device(const std::string%)” messagebox (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/140&quot;&gt;#140&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;BSD: Crash on master server list load (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/151&quot;&gt;#151&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Protobuf v30 compatibility (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/157&quot;&gt;#157&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Cockpit Map background should not default to white (&lt;a href=&quot;https://gitlab.com/armagetronad/armagetronad/-/work_items/166&quot;&gt;#166&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;contributors&quot;&gt;Contributors&lt;/h5&gt;

&lt;p&gt;Alex Bagnall, Armanelgtron, AsciiWolf, Balló György, Bernhard M. Wiedemann, Dan Church, Daniel Harple, Dave Fancella, Foster McLane, Frost Flores, Hugh McMaster, Jip, Luke-Jr, Manuel Moos, Matias Pino, Niklas Karbaum (ai.tron), Sauss-Ente, Thomas Karpiniec, Viorel-Cătălin Răpițeanu, Vitty, Voodoo, Yann Kaiser, armagetron at ensemble-fnm.de, epsy, guru3, madmax, ninjum, philippeqc, pnoexz at gmail.com, wrtlprnft, yarrt&lt;/p&gt;</content><author><name></name></author><summary type="html">Built from trunk Game Client Downloads Windows: armagetronad-experimental-0.4.0_alpha_z6401.win32.exe Linux 64 Bit: ArmagetronExperimental.AppImage Linux 32 Bit: ArmagetronExperimental-32bit.AppImage macOS: armagetronad-experimental-0.4.0_alpha_z6401.dmg Game Server Downloads Windows: armagetronad-experimental-dedicated-0.4.0_alpha_z6401.win32.exe Linux 64 Bit: ArmagetronExperimentalDedicated.AppImage Linux 32 Bit: ArmagetronExperimentalDedicated-32bit.AppImage macOS: armagetronad-experimental-dedicated-0.4.0_alpha_z6401.dmg Source Downloads Tarball: armagetronad-experimental-0.4.0_alpha_z6401.tbz ZIP for Windows Builds: armagetronad-experimental-source-0.4.0_alpha_z6401.zip This is an EXPERIMENTAL build, the cautious should stay away. The daring should please report any problems they find.</summary></entry></feed>