Q2PRO-XQ2PRO-X websiteContentsRUEN
II. Developing the Client

The Moon and Stars Above Quake II

18 May–early July 2026 · Q2PRO-X 1.4

The sky occupied almost the entire Q2PRO-X 1.4 development line. It appeared through courtyards, windows and openings, sometimes as no more than a narrow strip above a wall. Clouds and celestial bodies were positioned with those gaps in mind. Some maps still used the old skybox: in June, one level was found where sliders changed their values while the sky remained unchanged. The new graphics path worked, as did the settings; the map simply never reached it.

How a flat map becomes the Moon's surface. NASA Scientific Visualization Studio's illustration for its CGI Moon Kit, based on LRO data. This is explanatory NASA material, not a game screenshot.
How a flat map becomes the Moon's surface. NASA Scientific Visualization Studio's illustration for its CGI Moon Kit, based on LRO data. This is explanatory NASA material, not a game screenshot.

A Moon Worth Looking At Closely

At first, the Moon's seas and craters were invented procedurally. The pattern sufficed for a small disc. When the Moon was enlarged, there was a desire to recognise familiar features, rather than merely see relief. A NASA/LROC albedo map supplied the reflectance of the real surface. An 8K HD option followed. Details worth consulting lunar imagery for became distinguishable on the large Moon, while lighting preserved its phase and spherical form.

The large Moon developed peculiarities of its own. A clipped copy sometimes appeared elsewhere in the sky, stars shone through its dark half, and brightening the crescent could brighten the whole night. The disc's light, the surrounding background and illumination of the map had to be adjusted separately. Otherwise, improving the Moon inevitably spoiled something beside it.

Stars from a Catalogue

Stretching a handsome photograph over the sky was not enough. As scale changes, bright points on a texture become blobs, and recognisable constellations can easily end up in the wrong place. The raster-atlas approach for point stars was rejected in late May. Catalogue data was prepared instead: stars received individual coordinates, and constellation lines used real reference points. Hipparcos identifiers supported cross-checking. The Milky Way followed the orientation of the galactic plane, and planets were separated from the fixed stellar layer.

A background layer remained between the catalogue stars. It filled the sky without moving recognisable constellations or changing their pattern for decorative twinkling. Large open maps revealed a mirrored repetition below the horizon. An unfamiliar spark could escape notice; a second planet or a repeated group of familiar stars immediately exposed the error.

The data was checked outside the game renderer first. An overview was drawn, bright reference stars and constellation segments were verified, and unnecessary bulk was removed from the original catalogue. Several ways of supplying the result to the GPU were then needed. The modern graphics path held more objects; the compatible path held fewer. An expensive graphics card did not guarantee that the chosen API exposed the required feature. The client therefore reported which path it was actually using. Users could understand a limit on their installation instead of fruitlessly moving the star-count slider.

Meteors and comets moved, leaving tails, light and smoke. Clouds could obscure them, and impacts left separate marks on surfaces. Sunbeams, eclipses and coloured moonlight changed floors, water and models. Testing meant looking down as well as up: a celestial event could be correct above the walls and quite different in a puddle underfoot.

Water gained waves, foam and reflections. Old maps did not tell the new renderer how to place them: their surface and material data had been designed for the earlier game. A successful setting was therefore taken to another level, where a seam, wrong direction or unsuitable edge often appeared. Then the first map had to be revisited to make sure the correction had not spoiled it.

A Wider Range of Brightness

HDR required brightness to survive the entire frame pipeline. Intermediate images, bloom, exposure and the final transformation lay between the original light and the monitor. If one stage clamped values too soon, later processing could not restore the lost information. Higher-precision buffers and a corresponding output path were used. From outside, faults looked very different: a black screen, an excessively bright night or a bright object standing out incorrectly. Each had to be investigated stage by stage, checking what the next part of the renderer received.

A gameplay scene from the HDR testing materials: a bright Moon and luminous sky above a dark map. This ordinary screenshot shows the composition, but cannot reproduce the full brightness range of an HDR display.
A gameplay scene from the HDR testing materials: a bright Moon and luminous sky above a dark map. This ordinary screenshot shows the composition, but cannot reproduce the full brightness range of an HDR display.

One bright sky effect had to be rolled back when unwanted geometry appeared in the frame. Gamma was corrected separately in night scenes, followed by checks of the wet-lens effect, which processed the finished image. Screenshots brought another difficulty. An HDR file opened in an unsuitable program looked different from the game; the viewer had to be checked before the image could be used as evidence of a fault. JXR saving and white-level handling were added for those captures.

Local play expanded during the same weeks. Players could visit a familiar deathmatch map with monsters, practise or simply examine the scenery. Competitive configurations were kept separate from the appearance of such an outing. Otherwise, after an evening of weather and rich effects, a player might join a server with settings that made an opponent harder to see.

These developments became part of Q2PRO-X 1.4 by early July. Checking a shot now took longer than in spring: beyond the weapon itself, there was light, reflection, a wet lens and the result of switching graphics paths. The collection of familiar test maps grew without discarding the old ones. More celestial objects and materials were already being prepared for the summer release.

The sky's background, individual bodies and moving objects form separate layers. This diagram is not to scale.
The sky's background, individual bodies and moving objects form separate layers. This diagram is not to scale.

Download the book in PDF