Our preferred BSP compiler
Find a file
2023-10-08 23:24:17 -07:00
.github/workflows Readme: add Usage section that covers the basics 2023-10-08 23:24:17 -07:00
common Separate from WorldSpawn 2023-10-08 20:39:20 -07:00
docs Add docs/patchDefWS.md 2023-01-05 13:48:11 -08:00
include Add support for WAD2/WAD3 loading, as well as fixed PAK support. 2022-01-23 12:11:44 -08:00
libs Separate from WorldSpawn 2023-10-08 20:39:20 -07:00
src Separate from WorldSpawn 2023-10-08 20:39:20 -07:00
Makefile Separate from WorldSpawn 2023-10-08 20:39:20 -07:00
README.md Readme: add Usage section that covers the basics 2023-10-08 23:24:17 -07:00

vmap

A fork of q3map2, now available as a stand-alone compiler targetting FTEQW

Compiler Changes

  • Improved High-Dynamic-Range lightmaps
  • Support for our patchDef2WS and patchDef3WS curved surfaces in the BSP compiler, allowing for 4-way texture blended patches.
  • Reads individual material scripts (.mat) instead of large .shader files
  • Surfaces are aware which env_cubemap ents they belong to
  • light_surface entity support, so you don't have to write map specific materials to override texture light properties
  • Handles Half-Life styled point lights, including zhlt_lightflags
  • Handles Half-Life styled light_environment entities
  • New material keys: vmap_lightLinear, vmap_lightLinearFade
  • Support for target-less spotlights
  • Explicit support for func_detail, func_detail_illusionary
  • Support for misc_prefab (including other .map files)
  • vmap_remapMaterial/q3map_remapShader can carry over surface flags now
  • Support for entity key: _entsurfaceflags, so surfaces can override their surfaceflags
  • Support for entity key: _entcontentflags, so brushes can override their contentflags

Usage

BSP: ./vmap [options] dm_foobar
VIS: ./vmap [options] -vis dm_foobar
LIGHT: ./vmap [options] -light dm_foobar

You want to pass -fs_basepath /path/to/game/root and -game arguments to specify where to read textures from. If you wanted to, for example, compile a map included within Nuclide's 'base' directory you'd end up with a command-line like this:

./vmap -fs_basepath /home/user/nuclide-sdk/ -game platform -game base test_sun

Compiling

To compile on a standard GNU/Linux system: make

On BSD you should probably use GNU make right now. Clang should also be supported, pass CC=clang if you want to use it.

On NT you'll have to jump through a lot more hoops, here's the gist:

  1. MSYS2: https://www.msys2.org/
  2. in the msys2 shell, enter pacman -S --needed base-devel git unzip mingw-w64-$(uname -m)-{toolchain,make,minizip-git}
  3. boot into the Mingw64 shell, don't use the stock MSYS2 shell
  4. run make and it should build everything, in theory

Please don't contact us about helping you build it on Windows. This is a development tool. This is provided AS-IS.

Dependencies

  • GNU make
  • gcc-core
  • gcc-c++
  • glib2-devel
  • libxml2-devel
  • libjpeg8-devel
  • libpng-devel
  • minizip-devel

Support

As mentioned before, if you need help with this: you're on your own.

Special Thanks

The original q3map/2 developers:

  • id Software
  • Splash Damage
  • ydnar
  • GtkRadiant team and contributors
  • NetRadiant team and contributors

vmap developers:

  • Vera Visions, L.L.C.
  • Spike
  • Joshua Ashton
  • Slartibarty