Index | Thread | Search

From:
Thomas Frohwein <tfrohwein@fastmail.com>
Subject:
Re: New: Recoil - 3D engine for Real-Time Strategy games
To:
ports@openbsd.org
Date:
Sun, 18 Feb 2024 10:37:54 -0500

Download raw body.

Thread
*ping*

Attached new tarball with a few changes:

- update to latest BAR release engine 2314-g9e0bf7d
- disable unmaintained manpages (PR #1291)
- with help from bentley@, remove some unneeded <zlib.h> and use
  <endian.h> instead of <sys/endian.h>
- fix thinko with xdgConfHome
- limit executable detection to /usr/local/bin/ path to avoid TOCTOU
  with prior approach that used access(2)

ok?

On Sun, Feb 11, 2024 at 07:04:24PM -0500, Thomas Frohwein wrote:
> Hi,
> 
> Please find attached the port of Recoil, the successor of the Spring
> engine. It goes back in lineage to Total Annihilation from the 1990's
> and allows for visually stunning, large-scale RTS battles.
> 
> From DESCR:
> 
> Recoil is a battle tested open-source RTS engine, successor of Spring. It is
> designed, in its basis, to be able to run the content of the game Total
> Annihilation and deliver a similar, but improved, gaming experience. Games can
> be intense and very large scaled, with fight of, literally, hundreds of units
> and the mods allow very wide arrays of different strategies and tactics. Some
> of the games powered by Recoil: Beyond All Reason, ZeroK, TA Prime and Metal
> Factions.
> 
> The README has details on how to install maps and the game-specific
> engines, as well as a lobby application. Not all parts of the Beyond
> ALl Reason experiences can be run (yet?), as their launcher that
> integrates with the lobby and engine is an Electron app, sadly.
> 
> A few notes on the port:
> 
> - The games that I tested (Zero-K and Beyond All Reason) require a
>   data size of at least 4-6G.
> 
> - Online multiplayer is untested, but if someone wants to try it out
>   please message me.
> 
> - Versioning is currently 0.major.minor.etc... as upstream told me of
>   their intention to switch to year-month versioning similar to what
>   Mesa does. This way, that change wouldn't require EPOCH.
> 
> - I'm hoping to keep the port mostly in sync with the versions used by
>   Beyond All Reason, as those are getting significant use and attention.
> 
> - A few OpenBSD-specific codepaths had to be implemented in patches/,
>   for example: getting data dir locations without wordexp, using
>   argv[0] for the executable location, enumeration of CPU cores (this
>   isn't accounting for SMT at this point), futex(2) instead of syscall
>   (SYS_futex...), some pthread non-portable API.
> 
> - The bundled Lua 5.1 is too customized and integrated to easily remove
>   it in favor of the lua lib from the port.
> 
> - Alignment aware memory pools patches from the GH PR have fixed a
>   couple of gnarly crashes.
> 
> - As far as I know we don't have libunwind available in a way that
>   could be used by this port, so those parts of integrated backtraces/
>   crash handling are stubbed.
> 
> Make sure to look at the README for using pr-downloader to get maps and
> engines in order to test.
> 
> ok?