Sauerbraten is an old game, so are its textures. However, nowadays, many upscaling models are available, some of which are specialized on certain game textures. This repository contains the code for Cube Curb, a work in progress tool that tries to support the whole upscaling pipeline for Sauerbraten, modded clients and forks of Cube/Tesseract.
- CLI upscaling. Ideally, we include the upscale process in this tool such that is automated as much as possible and the same upscaling can be done by anyone for other/new textures or for forks of the game.
- CLI packaging, uploading and downloading and unpackaging. Currently, all this must be done manually.
- Config file conversions to point to upscaled files without side effects. Currently, most conversions work, aside some formatting and lacking parsing for
lava,waterand other materials, as far as is known. - Broad client support. Sauerbraten is a game with many clients and forks, but currently only Sauerbraten and Tesseract-Sauerbraten are supported. Ideally, the tool can generate config files for clients that have slightly different structures (as part of the changes in the fork).
- External texture repository. Ideally, the tool can automatically create links to an external texture repository (outside of the mod directory) such that all clients can use the same upscaled textures, rather than duplicating that (large) folder.
- Configuration of override policy: specify which types to include and when to override or add new textures (such as normal and height maps).
Here are screenshots taken before and after applying the upscaled textures in the vanilla Sauerbraten client. In some places, the improvements are immediately very visible, elsewhere the improvements are more subtle.
Note
The textures are stored in a file transfer service, so they are currently only available until the First of June (2025)
Warning
Make sure you read all instructions and be careful with overriding files, because they will be lost. Can't hurt to read a bit ahead and make backups as proposed.
Note
You need to run a few mklinks for the non-vanilla Tesseract-Sauerbraten client; come back later for detailed instructions, but already get the textures while they are available.
- Optional: Go to a specific map (e.g.
aastha), move close to the geometry, make sure you have a few (but not only 1) close textures in sight and take a screenshot from a spot you can easily return to (like a corner). - Go to
My Games/Sauerbraten/packages, createharry, enter the folder, createupscale. You should now be atMy Games/Sauerbraten/packages/harry/upscale. - Get the Send content (see below). If you get a message "This browser might not be able to decrypt a file this big", just "Continue with this browser". The files are not encrypted. Extract the zip and you'll see two files:
README.mdand another zip containing textures. Extract the other zip which should be one of the following names. (You can move back and forth between this step and the next step for each downloaded zip.)- upscale-subfolders-set-1.zip: textures for packages
aard,aftas, ...,loopix,lunaran. - upscale-subfolders-set-2.zip: textures for packages
makke,meister, ...,tomek,trak5, excluding packagetextures. - upscale-textures-subfolders-set-1.zip: textures for folders
fatum, ...,niebin packagetextures. - upscale-textures-subfolders-set-1.zip: textures for folders
ow, ...,yves_allairein packagetextures.
- upscale-subfolders-set-1.zip: textures for packages
- Now, do the following:
- Extract the textures from
upscale-subfolders-set-1.zipto the folder.../upscale, such that you have new folders.../upscale/aard,.../upscale/aftas, ...,.../upscale/loopix,.../upscale/lunaran. - Extract the textures from
upscale-subfolders-set-2.zipto the folder.../upscale, such that you have new folders.../upscale/makke,.../upscale/meister, ...,.../upscale/tomek,.../upscale/trak5. - Extract the textures from
upscale-textures-subfolders-set-1.zipto the folder.../upscale/textures, such that you have new folders.../upscale/textures/fatum, ...,.../upscale/textures/nieb. - Extract the textures from
upscale-textures-subfolders-set-2.zipto the folder.../upscale/textures, such that you have new folders.../upscale/textures/ow, ...,.../upscale/textures/yves_allaire.
- Extract the textures from
- If you have modifications in
packagesordata(orconfig), make sure you backup your changes. - Download
packages, anddata(orconfig) folders from this repository; they contain the prebuilt config files, generated using theutil/convert_config.pyscript. The folderdatais only needed for Sauerbraten, the folderconfigis only needed for Tesseract. - Paste these folders in
My Games/Sauerbraten/and override the contents if necessary. This will add the files to the potentially already existing folders and override files whenever it already existed. - Start Sauerbraten, open a map (e.g.
aastha) and move towards a texture. Take a screenshot at the exact same location and compare outside Sauerbraten. It should look better; otherwise, ask for help.





