Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Request] Ironwail: High-performance QuakeSpasm fork #3392

Open
spinktvis opened this issue Nov 25, 2024 · 1 comment
Open

[Request] Ironwail: High-performance QuakeSpasm fork #3392

spinktvis opened this issue Nov 25, 2024 · 1 comment
Labels
interfere required Needs patching the PKGBUILD. request:new-pkg New package requested.

Comments

@spinktvis
Copy link

spinktvis commented Nov 25, 2024

Package:

https://aur.archlinux.org/packages/ironwail

Purpose:

What's this?

A fork of the popular GLQuake descendant QuakeSpasm with a focus on high performance instead of maximum compatibility, with a few extra features sprinkled on top.

Benefits:

Does performance still matter, though? I'm getting 1000 fps in QS on e1m1

On most maps performance is indeed not much of a concern on a modern system. In recent years, however, some mappers have tried more ambitious/unconventional designs with poly counts far exceeding those of the original id Software levels from 25 years ago. It's also not uncommon for players of such an old game to be using hardware that is maybe not the latest and greatest, struggling on complex maps when using traditional renderers. By moving work from the CPU to the GPU (culling, lightmap updates) and taking advantage of more modern OpenGL features (instancing, compute shaders, persistent buffer mapping, indirect multi-draw, bindless textures), this fork is capable of handling even the most demanding maps at very high framerates. To avoid physics issues the renderer is also decoupled from the server (using code from QSS, via vkQuake).

Bonus features

  • ability to play the 2021 release content with zero setup: if you have Quake on Steam, you can unzip the latest Ironwail release in any folder (that doesn't already contain a valid Quake installation) and simply run the executable to play the game, including any add-ons you have already downloaded
  • new Mods menu, for quick access to any add-ons you've already installed
  • ability to change weapon key bindings using the UI, not just the console
  • ability to use the mouse to control the UI
  • alternative HUD styles based on the Q64 layout (classic one is still available, of course)
  • real-time palettization (with optional dithering) for a more authentic look
  • classic underwater warp effect
  • more options exposed in the UI, most of them taking effect instantly (no vid_restart needed)
  • support for lightmapped liquid surfaces
  • lightstyle interpolation (e.g. smoothly pulsating lighting in ad_tears)
  • reduced heap usage (e.g. you can play tershib/shib1_drake and peril/tavistock without using -heapsize on the command line)
  • reduced loading time for jumbo maps
  • slightly higher color/depth buffer precision to avoid banding/z-fighting artifacts
  • a more precise hackwork-around for the z-fighting issues present in the original levels
  • capped framerate when no map is loaded
  • ability to run the game from a folder containing Unicode characters

Building:

makepkg

Copyright:

GPL-2.0 license

Expected Interest:

Some

Already available?

No

Unique request?

Yes

Banned package?

No

More information:

https://github.com/andrei-drexler/ironwail

Benchmark QuakeSpasm vs Ironwail:
https://twitter.com/andrei_drexler/status/1457410987011756041

@spinktvis spinktvis added the request:new-pkg New package requested. label Nov 25, 2024
@xiota
Copy link
Contributor

xiota commented Nov 27, 2024

The AUR package is not satisfactory. Will consider adding git variant or custom package.

@xiota xiota added the interfere required Needs patching the PKGBUILD. label Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
interfere required Needs patching the PKGBUILD. request:new-pkg New package requested.
Development

No branches or pull requests

2 participants