Unvanquished ➤ Development activity

Events from:

Daemon Engine
Daemon Engine
Thursday, 05 November 2026
@illwieckz illwieckz pushed to DaemonEngine/Daemon-vulkan · November 5, 2026 20:25
2 commits to master
@slipher slipher merged DaemonEngine/Daemon#2032 · November 5, 2026 12:19
Fix Saigo SDK-related merge mishaps #2032

Some fix-ups to get my work from #2010 to its true form.

+47 -39
1 comment
@slipher slipher pushed to Unvanquished/Unvanquished · November 5, 2026 20:18
1 commit to master
  • @slipher de2da3f
    Convert generate_gender_pot.pl to Python
@slipher slipher merged Unvanquished/Unvanquished#3567 · November 5, 2026 12:18
Convert generate_gender_pot.pl to Python #3567

Convert the script from Perl to Python via LLM. LLM conversion can be a nice way do achieve #2200 where desired, since it is highly accurate for sm…

+34 -50
3 comments
@illwieckz illwieckz pushed to DaemonEngine/Daemon · November 5, 2026 14:26
2 commits to illwieckz/no-bootstrap
  • @illwieckz 8ff2e3b
    cmake: only detect NaCl architectures on -DBUILD_GAME_NACL_TARGETS=na…
  • @illwieckz 9034ef4
    cmake: explain why the PNaCl SDK is not usable when cross-compiling
  • 4 more commits »
@illwieckz illwieckz pushed to Unvanquished/Unvanquished · November 5, 2026 14:24
1 commit to master
@illwieckz illwieckz closed an issue in DaemonEngine/Daemon · November 5, 2026 06:21
Nonsense cmake configuration messages about "NaCl architectures" #2031
Snippet from the configure output: ``` -- Detected C++ compiler: MinGW_16.2.0/GCC_16.2.0:c++.exe -- Enabling compiler intrinsics -- Enabling compil…
2 comments
@illwieckz illwieckz merged DaemonEngine/Daemon#2033 · November 5, 2026 06:21
Only detect NaCl architectures on -DBUILD_GAME_NACL_TARGETS=native #2033

cmake: only detect NaCl architectures on -DBUILD_GAME_NACL_TARGETS=native

Fixes #2031:


cmake: explain why the PNaCl SDK is not usable when…

+14 -15
4 comments
@illwieckz illwieckz pushed to DaemonEngine/Daemon · November 5, 2026 13:19
2 commits to illwieckz/nacl
  • @illwieckz 84b6a2c
    cmake: unset the nacl target list before each game iteration, also un…
  • @illwieckz bbebd1c
    cmake: use list(REMOVE_DUPLICATES NACL_TARGETS)
Daemon Engine
Daemon Engine
Wednesday, 04 November 2026
@slipher slipher opened DaemonEngine/Daemon#2034 · November 4, 2026 15:22
Store dependency package versions in one place #2034

When adding support for building the NaCl IRT in build.sh, we will need to know SAIGOSDK_VERSION in a 3rd file, so I decided it's time to store DEP…

+56 -13
8 comments
@illwieckz illwieckz opened DaemonEngine/Daemon#2033 · November 4, 2026 06:53
Only detect NaCl architectures on -DBUILD_GAME_NACL_TARGETS=native #2033

cmake: only detect NaCl architectures on -DBUILD_GAME_NACL_TARGETS=native

Fixes #2031:


cmake: explain why the PNaCl SDK is not usable when…

+14 -15
4 comments
@slipher slipher opened DaemonEngine/Daemon#2032 · November 3, 2026 23:11
Fix Saigo SDK-related merge mishaps #2032

Some fix-ups to get my work from #2010 to its true form.

+47 -39
1 comment
Unvanquished
Unvanquished
Tuesday, 03 November 2026
@slipher slipher opened Unvanquished/Unvanquished#3587 · November 3, 2026 11:17
Hide miner efficiency info in vampire mode #3587

If g_buildPointsPerMiner is not positive, do not render:

  • The miner efficiency bar above the health bar in buildable status info
  • The EFFICIENCY sta…
+26 -9
@illwieckz illwieckz opened DaemonEngine/Daemon#2030 · November 3, 2026 04:37
Remove amd64 bootstrap usage from deps #2030

This was part of:

Especially that commit:

It had been temporarily put aside when testing and merging:

In #2018 I temporar…

+0 -1
1 comment
@illwieckz illwieckz created a branch in DaemonEngine/Daemon · November 3, 2026 12:26
@illwieckz illwieckz deleted branch refs/heads/illwieckz/deps-mirrors in DaemonEngine/Daemon · November 3, 2026 12:24

Updated Nov 3

@illwieckz illwieckz deleted branch refs/heads/illwieckz/asan-clang in DaemonEngine/Daemon · November 3, 2026 12:24

Updated Nov 3

@illwieckz illwieckz deleted branch refs/heads/illwieckz/no-half-float-vertex in DaemonEngine/Daemon · November 3, 2026 12:24

Updated Nov 3

@illwieckz illwieckz deleted branch refs/heads/illwieckz/gamemodule-scope in DaemonEngine/Daemon · November 3, 2026 12:24

Updated Nov 3

@illwieckz illwieckz created a branch in DaemonEngine/Daemon · November 3, 2026 12:22
@illwieckz illwieckz pushed to DaemonEngine/Daemon · November 3, 2026 11:27
2 commits to illwieckz/deps-2
@slipher slipher opened DaemonEngine/Daemon#2029 · November 2, 2026 17:13
Remove superfluous .c_str() calls #2029

Don't call .c_str() when passing a function that is actually std::string or StringRef (not char*), or for a format insert for tinyformat-based form…

+43 -43
Daemon Engine
Daemon Engine
Monday, 02 November 2026
@slipher slipher merged DaemonEngine/Daemon#2027 · November 2, 2026 12:09
+24 -100
2 comments
Unvanquished
Unvanquished
Sunday, 01 November 2026
@illwieckz illwieckz pushed to Unvanquished/Unvanquished · November 1, 2026 16:02
1 commit to master
@slipher slipher opened Unvanquished/Unvanquished#3586 · October 31, 2026 20:51
Use slot-based numbering for unnamed players #3586

Instead of trying to assign UnnamedPlayer numbers sequentially from 1, just use the slot number like in Tremulous. The sequential method was stupid…

+16 -72
2 comments
Daemon Engine
Daemon Engine
Saturday, 31 October 2026
@illwieckz illwieckz closed DaemonEngine/Daemon#2026 · October 31, 2026 09:58
cmake,VirtualMachine: append the architecture name to loader binaries, implement box64 fallback, detect armhf multiarch support #2026

Append the architecture name to loader binaries, implement box64 fallback, detect armhf multiarch support.

First commit of:

Deep rewrite of…

+371 -156
1 comment
Unvanquished
Unvanquished
Friday, 30 October 2026
@illwieckz illwieckz commented on Unvanquished/Unvanquished#3297 · October 30, 2026 15:03
The fixed Saigo shipping the ARM fix is released: - https://github.com/DaemonEngine/saigo-nacl-sdk/releases/tag/v20261030
Unvanquished
Unvanquished
Thursday, 22 October 2026
@illwieckz illwieckz pushed to Unvanquished/validate-release · October 22, 2026 03:52
1 commit to illwieckz/bookworm
  • @illwieckz 3212322
    prepare for Debian Bookworm
NetRadiant
NetRadiant
Wednesday, 21 October 2026

Thomas Debesse (c00084bc) at 21 Oct 14:06

Rename "Find brush" to "Find Entity/Brush" in the menu and in the d...

@SpiKe thanks for the patch! Sorry for having missed the notification.

Thomas Debesse (c00084bc) at 21 Oct 14:04

Rename "Find brush" to "Find Entity/Brush" in the menu and in the d...

... and 10 more commits

Thomas Debesse (806c8fde) at 21 Oct 14:03

readme: more generic updates

... and 8 more commits

Solve host system and target system detection once for all.

Fix:

  • So many warnings, failed to fully compile, and missing GTK GL Extension #207

What was expected to be an easy task (we already build GtkGLExt as a builtin for macOS) turned into a nightmare and a 12+ hours work. 💀️

Actually this work being done means I'm able to produce Windows NetRadiant builds anew… I discovered the old Windows VM I was keeping safe for building NetRadiant (without any MSYS2 regressions) could not build build GtkGLExt. And I could not install the packages required by GtkGLExt without updating MSYS2 and then bringing other MSYS2 bugs I had to fix.

Here is me running a release-like build of NetRadiant on Windows 11, rebuilt yesterday with this branch:

♦

My workflow relies on network shares (every build machines share the same folders, with unified commands). But executing within MSYS2 a program stored on a network share on Windows 11 makes it impossible to delete that executable until the file server is restarted AND the network share is disconnected and reconnected. But then the configure-based build (used by GtkGLExt) runs all its detection tests by crafting a temporary conftest.exe binary for every test in the source directory, overwriting that conftest.exe is overwritten after each test. That temporary program path cannot be redirected to some random temporary directory, so the first test passing makes all remaining tests failing, requiring the equivalent of a reboot of both the file server and the build machine client on every configure step (one can just restart the services and reopen sessions but you get the idea) while the whole configure run has to be restarted from scratch after every test, making it impossible to finish…

So that netradiant work has been crazy as I not only had to create a special GtkGLExt branch to get it build for windows again, implemented workarounds for converting windows paths to MSYS paths in cmake for configure subprojects, but also implement out-of-source build in GtkGLExt configure and implement subproject build in temp directory in CMake to workaround the MSYS2 bug… what a mess.

If you build on network shares, the easy-builder command should instead be:

EP_BUILD_DIR=/tmp/netradiant ./easy-builder

I updated the MSYS2 package installation instructions for Windows on the README. This now recommends the UCRT64 flavour (to be built from the MSYS2 UCRT64 shell) and requires more packages to be installed (to build the GtkGLExt builtin).

Like macOS, the GtkGLExt build for Windows now relies on a special windows branch hosted there:

  • gitlab.gnome.org/illwieckz/gtkglext/-/tree/windows

Having a branch for each platform with their specific fixes likely breaking other platforms is the less costly solution. Given I'm the last people on Earth to actually maintain GtkGLExt, I will likely not spend any time to make a branch working everywhere.

This windows GtkGLExt branch may be force-pushed until this NetRadiant branch is merged.

I will likely have to fix the macOS build as well to fit the changes I did in the NetRadiant repository (I modified the build workflow…).

I added some commits to make heretic2, quake2 and quake3 tools build again. They're all the exact same fix reported to the different trees. I haven't tested that fix yet, one can verify if it works by building a map on Windows with q3map2 built from this branch.

This now uses the Yokai CMake framework. This is a framework I wrote for the Dæmon engine with future usage in NetRadiant in mind. This is meant to solve pitfals of CMake in detecting compilers, host and target systems, etc.

Work in progress documentation of Yokai can be found there: wiki.unvanquished.net/wiki/Tools/Yokai

Here are the detailed commit messages:

cmake: integrate the Yokai framework

Solve host system and target system detection once for all.

The upstream is maintained there:

  • github.com/DaemonEngine/Daemon/tree/master/cmake/Yokai

cmake: rework the GtkGLExt builtins build

  • Make possible to build GtkGLExt for Windows.
  • Make possible to configure and build GtkGLExt outside of source to workaround the MSYS2 bug making impossible to delete an executable on a network share after execution (all build tests are done by replacing the same conftest.exe binary with a new one, in the source folder…).
  • Add a EP_BUILD_DIR option to give an arbitrary build directory to let the user using network drives to build external projects (here: GtkGLExt) on a non-network directory to workaround that same MSYS2 bug.
  • Translate or reconstruct MSYS2 paths to avoid CMake passing paths like C:\msys64\usr* to configure what would then be wrongly translated to /msys64/usr/* instead of /usr/* and fail.
  • Use autoreconf instead of autogen.sh.
  • Rework the compiler flags enablement.
  • Add some compiler flags for compatibility purpose.
  • Use a specially crafted Windows branch of GtkGLExt, like macOS.

cmake: rework the GTK selection and builtins enablement

  • Only enable Radiant builtins when Radiant is built.
  • Only set GTK2 when Radiant is built.
  • Enable GtkGLExt builtin only on GTK2.
  • Enable GtkGLExt builtin for Windows, MSYS2 dropped it.

easy-builder: rework and make it more robust for GtkGLExt building on MSYS2

  • Unset MSYS2_ARG_CONV_EXCL (if set) in case the user changed the default, the paths used by CMake and Configure commands used for building GtkGLExt are very messy, but we better deal with a consistent mess.
  • Rework the jobs enablement to set it for all CMake calls once for all.
  • Rework the CMake invocations to not call Make directly.
  • Now make CMake use -S and -B for source and build directories.

heretic2: fix threads on Windows quake2: fix threads on Windows quake3: fix threads on Windows

Fix:

tools/quake3/common/threads.c:207:33: error: passing argument 6 of 'CreateThread' from incompatible pointer type [-Winc
ompatible-pointer-types]
  207 |                                 &threadid[i] );
      |                                 ^~~~~~~~~~~~
      |                                 |
      |                                 int *

This should be good enough, and if improvements may be found, that doesn't introduce regressions since it's currently broken.

Thomas Debesse (806c8fde) at 21 Oct 14:02

readme: more generic updates

... and 9 more commits

Thomas Debesse (a4b21156) at 21 Oct 14:01

radiant: display which GTK is used in About dialog

Thomas Debesse (a4b21156) at 21 Oct 14:01

radiant: display which GTK is used in About dialog

@illwieckz illwieckz opened Unvanquished/validate-release#14 · October 21, 2026 06:34
Prepare for macos-arm64 #14

Prepare for macos-arm64.

+1 -0
2 comments
Unvanquished
Unvanquished
Tuesday, 20 October 2026
@illwieckz illwieckz commented on Unvanquished/release-scripts#47 · October 20, 2026 04:07
I said Docker because surprisingly the same clone worked from the same machine outside of Docker. They may somehow detect it?
@illwieckz illwieckz deleted branch refs/heads/illwieckz/enum in Unvanquished/Unvanquished · October 20, 2026 03:22

Updated Oct 20

@illwieckz illwieckz merged Unvanquished/Unvanquished#3585 · October 19, 2026 20:22
sg_team: fix enum arithmetic warnings with C++20 #3585

Cast team enum values to int when adding them to configstring constants to fix C++20 deprecation warnings.

Fix #3584:

+21 -21
4 comments
Unvanquished
Unvanquished
Monday, 19 October 2026
@mtiusane mtiusane forked Unvanquished/Unvanquished from mtiusane/Unvanquished · October 19, 2026 07:59

Unvanquished is a free and open source FPS/RTS hybrid game powered by the Daemon game engine. Historically based on Tremulous as a continuation wit…

Updated Oct 19

Unvanquished
Unvanquished
Saturday, 17 October 2026
@illwieckz illwieckz pushed to Unvanquished/Unvanquished · October 17, 2026 05:44
1 commit to illwieckz/enum
  • @illwieckz d75b073
    ci: bump the Ubuntu image for the Linux Clang test to avoid a compile…
@illwieckz illwieckz pushed to Unvanquished/release-scripts · October 17, 2026 05:39
1 commit to illwieckz/upgrade
@illwieckz illwieckz pushed to Unvanquished/Unvanquished · October 17, 2026 05:35
1 commit to illwieckz/enum
  • @illwieckz 584137d
    sg_votes: cast team enum to int in configstring arithmetic
@illwieckz illwieckz pushed to Unvanquished/Unvanquished · October 17, 2026 05:31
1 commit to illwieckz/enum
  • @illwieckz 4b16c7d
    sg_votes: cast team enum to int in configstring arithmetic
@illwieckz illwieckz opened Unvanquished/Unvanquished#3585 · October 16, 2026 21:53
sg_team: fix enum arithmetic warnings with C++20 #3585

Cast team enum values to int when adding them to configstring constants to fix C++20 deprecation warnings.

Fix #3584:

+21 -21
4 comments
@illwieckz illwieckz pushed to Unvanquished/release-scripts · October 17, 2026 00:05
2 commits to illwieckz/upgrade
Daemon Engine
Daemon Engine
Friday, 16 October 2026
@illwieckz illwieckz closed DaemonEngine/Daemon#2010 · October 15, 2026 19:28
Auto-download Saigo SDK for any supported host platform #2010

I keep saying there should be a separate download for host-mode deps, so I took a shot at implementing it. Turned out to be pretty easy - those con…

+182 -7
29 comments
@illwieckz illwieckz opened DaemonEngine/breakpad#49 · October 15, 2026 18:27
Make sure pointers and alignments are 64-bits #49

This is very minor and similar to:

Except #46 only focused on what is built in the Dæmon engine.

This makes sure 64-bit pointers and alignmen…

+3 -2
2 comments
Daemon Engine
Daemon Engine
Thursday, 15 October 2026
@illwieckz illwieckz merged DaemonEngine/Daemon#2014 · October 15, 2026 14:01
cmake: build breakpad pe_file because it is now required on Linux #2014

Build breakpad pe_file because it is now required on Linux.

Fix #2013:

Also includes the C++20 bump because I need a reference with this tw…

+2 -0
2 comments
Unvanquished
Unvanquished
Wednesday, 14 October 2026
@slipher slipher merged Unvanquished/Unvanquished#3582 · October 14, 2026 04:49
@illwieckz illwieckz opened Unvanquished/release-scripts#46 · October 14, 2026 02:23
WIP: upgrade the release scripts #46
  • Bump Linux baseline from Bullseye to Bookworm
    • Bullseye is archived
    • Bookworm provides C++20
    • Some deps updates require a compiler Bookworm and thin…
+857 -169
3 comments
Daemon Engine
Daemon Engine
Monday, 12 October 2026
@illwieckz illwieckz closed DaemonEngine/breakpad#39 · October 12, 2026 00:13
deps: update googletest reference #39

Running ./fetch-externals (required for make check) will now clone a newer version of googletest that is now required. Breakpad requires C++20 and …

+4 -4
6 comments
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 12, 2026 04:29
1 commit to illwieckz/ci
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 12, 2026 04:03
2 commits to illwieckz/ci
@illwieckz illwieckz opened Unvanquished/Unvanquished#3583 · October 11, 2026 20:13
readme: redo the CI badges and reword things a bit #3583

Update the README with new CI badges, also rework the Weblate status and reword some things. Some wording has been unified with the engine:

+21 -8
@slipher slipher opened Unvanquished/Unvanquished#3582 · October 11, 2026 17:21
Unvanquished
Unvanquished
Sunday, 11 October 2026
@weblate weblate opened Unvanquished/Unvanquished#3580 · October 11, 2026 11:51
Translations update from Hosted Weblate for Unvanquished #3580

Translations update from Hosted Weblate for Unvanquished/Unvanquished.

Current translation status:

+4 -4
@illwieckz illwieckz created a branch in DaemonEngine/breakpad · October 11, 2026 18:09
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 11, 2026 17:45
1 commit to master
  • @illwieckz abce4a7
    ci: delete obsolete and unused appveyor and travi CI files
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 11, 2026 06:54
1 commit to illwieckz/ci
@slipher slipher merged Unvanquished/Unvanquished#3578 · October 10, 2026 23:08
Convert CI from Azure Pipelines to Github Actions #3578

Switch the CI for Linux, Mac, and NaCl from Azure Pipelines to Github Actions. Deleting CI badges for now.

Generated first draft with LLM, then cop…

+90 -89
8 comments
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 11, 2026 05:53
1 commit to illwieckz/ci
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 11, 2026 05:34
1 commit to illwieckz/ci
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 11, 2026 01:49
1 commit to illwieckz/ci
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 11, 2026 01:30
2 commits to illwieckz/ci
Daemon Engine
Daemon Engine
Saturday, 10 October 2026
@illwieckz illwieckz created a branch in DaemonEngine/breakpad · October 10, 2026 21:08
@illwieckz illwieckz opened Unvanquished/Unvanquished#3579 · October 10, 2026 13:05
tools/translation: fix pot denoising #3579

Git expects relative file path, not absolute file path.

+4 -3
5 comments
@weblate weblate merged Unvanquished/Unvanquished#3573 · October 10, 2026 11:26
Translations update from Hosted Weblate for Unvanquished #3573

Translations update from Hosted Weblate for Unvanquished/Unvanquished.

Current translation status:

+90 -78
@illwieckz illwieckz created a branch in DaemonEngine/Daemon · October 10, 2026 18:10
@slipher slipher opened Unvanquished/Unvanquished#3578 · October 10, 2026 03:03
Convert CI from Azure Pipelines to Github Actions #3578

Switch the CI for Linux, Mac, and NaCl from Azure Pipelines to Github Actions. Deleting CI badges for now.

Generated first draft with LLM, then cop…

+90 -89
8 comments
Daemon Engine
Daemon Engine
Friday, 09 October 2026
@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 9, 2026 23:53
2 commits to master
@illwieckz illwieckz closed DaemonEngine/breakpad#34 · October 9, 2026 04:00
CI: delete upstream GitHub actions, do not close pull requests #34

We definitely don't want the close-pull-request action.

The build-test-ci and coverity workflows make heavy usage of gclient, we may not do that. I…

3 comments
@slipher slipher merged DaemonEngine/Daemon#2005 · October 9, 2026 03:50
Convert CI from Azure Pipelines to Github Actions #2005

See Unvanquished/Unvanquished#357 Migrate the Linux and Mac CI from one Microsoft service to another. Converted via LLM but with many manual edits …

+152 -139
4 comments

基于 Daemon 引擎、融合竞技射击与基地建设的开源 FPS/RTS 多人游戏。

C++ Updated Oct 15

Daemon Engine
Daemon Engine
Thursday, 08 October 2026
@illwieckz illwieckz reopened DaemonEngine/breakpad#34 · October 7, 2026 17:53
CI: delete upstream GitHub actions, do not close pull requests #34

We definitely don't want the close-pull-request action.

The build-test-ci and coverity workflows make heavy usage of gclient, we may not do that. I…

3 comments
@github-actions github-actions[bot] Bot closed DaemonEngine/breakpad#34 · October 7, 2026 17:20
CI: delete upstream GitHub actions, do not close pull requests #34

We definitely don't want the close-pull-request action.

The build-test-ci and coverity workflows make heavy usage of gclient, we may not do that. I…

3 comments
@illwieckz illwieckz opened DaemonEngine/breakpad#34 · October 7, 2026 17:20
CI: delete upstream GitHub actions, do not close pull requests #34

We definitely don't want the close-pull-request action.

The build-test-ci and coverity workflows make heavy usage of gclient, we may not do that. I…

3 comments
@illwieckz illwieckz created a branch in DaemonEngine/breakpad · October 8, 2026 00:20
@illwieckz illwieckz deleted branch refs/heads/illwieckz/merge-main-9aebd3d in DaemonEngine/breakpad · October 8, 2026 00:11

Updated Oct 8

@illwieckz illwieckz pushed to DaemonEngine/breakpad · October 8, 2026 00:01
2 commits to illwieckz/merge-main-9aebd3d
Unvanquished Assets
Unvanquished Assets
Wednesday, 07 October 2026
@illwieckz illwieckz pushed to UnvanquishedAssets/res-weapons_src.dpkdir · October 7, 2026 22:10
1 commit to illwieckz/knova
  • @illwieckz 4d354a4
    sound: import hive missile (bees) by KNova
@illwieckz illwieckz pushed to UnvanquishedAssets/res-legacy_src.dpkdir · October 7, 2026 22:08
1 commit to illwieckz/knova
  • @illwieckz dcde1df
    sound: delete hive missile (bees)
sound: import hive missile (bees) by KNova #39

Converted to FLAC from:

+2 -0
1 comment
@illwieckz illwieckz pushed to UnvanquishedAssets/res-ambient_src.dpkdir · October 7, 2026 21:05
1 commit to illwieckz/knova
  • @illwieckz 7054ccb
    sound: import fan and electricspark by KNova
@illwieckz illwieckz pushed to UnvanquishedAssets/res-ambient_src.dpkdir · October 7, 2026 21:01
1 commit to illwieckz/knova
  • @illwieckz 43c43a0
    sound: import fan and electrispark by KNova
@illwieckz illwieckz pushed to DaemonEngine/native_client · October 7, 2026 15:54
1 commit to illwieckz/mingw-2
Unvanquished
Unvanquished
Saturday, 26 September 2026
@ekul6547 ekul6547 opened Unvanquished/Unvanquished#3576 · September 26, 2026 14:32
User Friendly UI changes #3576

I really like what I've seen of this game so far, and it's great fun to play.
But I have noticed a few ui issues could be made more noob friendly, …

+13,419 -12,404
10 comments
Unvanquished Assets
Unvanquished Assets
Tuesday, 22 September 2026
@illwieckz illwieckz opened UnvanquishedAssets/tex-common_src.dpkdir#11 · September 22, 2026 08:17
materials: invisible is expected to cast shadows unlike nodraw #11

Fixes Unvanquished/Unvanquished#3575:

While writing common materiall documentation as part of our mapping document…

+1 -2
3 comments
@ekul6547 ekul6547 forked Unvanquished/Unvanquished from ekul6547/Unvanquished · September 22, 2026 06:55

Unvanquished is a free and open source FPS/RTS hybrid game powered by the Daemon game engine. Historically based on Tremulous as a continuation wit…

Updated Sep 26

NetRadiant
NetRadiant
Monday, 14 September 2026

Hi,

Since I'm not knowledgeable about NetRadiant code and C in general, I asked Claude to help trace this — sorry if LLM are not your cup of tea (which I'd understand).

Anyway, Claude seems to confirm what I've observed:

RadSubdivideDiffuseLight() used to take a qboolean original parameter: qtrue only on the initial (un-subdivided) call from RadLightForTriangles()/RadLightForPatch(), and qfalse on every recursive subdivision call. The point backsplash was gated behind if ( original && si->backsplashFraction > 0 ).

Since the function subdivides before reaching that check, any surface exceeding diffuseSubdivide (256 units by default, or q3map_lightSubdivide) in some axis recursed immediately with original == qfalse, so none of its resulting fragments ever got a backsplash — only small, already-fitting surfaces did.

Commit ed4c8c20 (2017-08-02, the one introducing Jelvan's area-light backsplash) dropped this original parameter entirely from the function signature, so backsplash is now created on every subdivided fragment instead of only on the original whole surface. !210 (merged) restored the point-light algorithm but not this original gating, since that logic had been removed from the function itself, not just swapped out.

NetRadiant
NetRadiant
Wednesday, 09 September 2026

Thanks for the report!

It seems that point backsplash was once applied only to small light-emitting surfaces, but is now applied to all surfaces, even large ones.

Was there code to disable backsplash from some surface?

NetRadiant
NetRadiant
Saturday, 05 September 2026

It seems that point backsplash was once applied only to small light-emitting surfaces, but is now applied to all surfaces, even large ones.

For example, we didn't get these artefacts in old builds of Afterslime:
♦

Point light backsplash had been removed in ed4c8c20 in favour of area light backsplash, then later reintroduced in !210 (merged)

But perhaps it was the old behaviour (disabling the backsplash for large surfaces) that was considered a bug?

More examples with the following Xonotic map: test2.map

  • With NetRadiant 20220628 and backsplash: ♦
  • With current NetRadiant and the default backsplash values: ♦
  • With current NetRadiant and -backsplash 0 0 ♦