avatar
scuti
prefers Darkzone over Aerowalk.
https://scuti.neocities.org/

reflex2q3 retrospect

2023 Feb 22 (E: 2026 Jan 18)

reflex2q3 is a video game map converter for Reflex Arena to Radiant map editors (Quake Engine).

Sample usage:

reflex2q3 was originally at teknik: https://git.teknik.io/scuti/reflex2q3.

Sample Result

Here is a basic map (view/download, text, 17.1 kB).

And here is “DNA stairs”.

A few notes about the output

The output might not be sealed from the void

Skyboxes are not automatically drawn for the user. The output from the converter is as-is.

An open-roof map like the basic map in sample result is valid in Reflex Arena but will leak and therefore fail to compile in Radiant. For users unfamiliar with Quake mapping, a leak can be described as a hole in the skybox or a containment breach (imagine an airlock).1

No changes to texture names

References to textures from Reflex Arena such as structural/dev/dev_black are left as-is. Thus, Radiant will render “Texture Not Found” placeholders for a freshly converted map that has no project directory.

Brush vertices are not snapped to grid

The output may look fine in Radiant. All brushes appear to have their edges aligned, but once the map compiles, there are small rips, seams or other discontinuities between brushes.

Decide on a grid size in Radiant, and use the Snap To Grid tool to snap brush vertices to grid.

Testing Output

Testing output requires Radiant and a game installation with mapping support. Both can be acquired through free and open source games that use variations of Quake Engine.

Examples:

Radiant typically needs the OpenGL extension to GTK (GtkGLExt).

Dependencies (Artix or Arch-based)

sudo pacman -S yaourtix gcc make patch autoconf automake pkgconf 
yaourt -S gtkglext

Story

reflex2q3 was adopted from GitHub/chronokun/ReflexToQ3 and adds…

Also used to create:


  1. https://ws.q3df.org/level_design/errors/#Miscleaked↩︎

  2. Originally only supported: https://quakewiki.org/wiki/Quake_Map_Format↩︎

  3. To test an older version before the bug was fixed: git checkout be1833950234ca7c97d1518e6f56ed56f249fd31↩︎