An open API service indexing awesome lists of open source software.

https://github.com/robertbeckebans/trenchbroombfg

TrenchBroom for DOOM 3 (BFG)
https://github.com/robertbeckebans/trenchbroombfg

doom3 leveldesign mapping rbdoom3bfg

Last synced: 5 months ago
JSON representation

TrenchBroom for DOOM 3 (BFG)

Awesome Lists containing this project

README

          

# TrenchBroomBFG for DOOM-3-BFG

***The goal of TrenchBroomBFG is to make mapping for Doom 3 (BFG) as easy as it is for Quake.***

Doom 3 also requires some extensions in order to work with TrenchBroom. The Quake 1/2/3 communities already adopted the Valve 220 .map format in the BSP compilers and I did the same with dmap in RBDOOM-3-BFG.
I usually develop these things for RBDOOM-3-BFG but I created a separated branch for vanilla Doom 3 so everybody can adopt TrenchBroom and the new Doom 3 (Valve) .map support. You can find all relevant code snippets by looking for `TrenchBroom` in the comments

https://github.com/RobertBeckebans/DOOM-3/tree/506-TrenchBroom-interop

TrenchBroomBFG's abilities for Doom 3 are still limited at the moment and it works best with RBDOOM-3-BFG.

RBDOOM-3-BFG >= 1.6 also has the console command `convertMaptoValve220 ` which lets you easily convert any original Doom 3 (and BFG) .map and saves it with the _valve220.map suffix.
This command prepares Doom 3 maps for editing in TrenchBroomBFG and solves most issues listed below.

TrenchBroomBFG is in sync with the stable release of ***TrenchBroom 2023.1***.

Here is an overview of the changes made to TrenchBroom:

## New
* Doom 3 .map parser with brushDef3, patchDef2, patchDef3 primitives
* Doom 3 Valve .map configuration
* Quake 3 .shader parser adopted to support .mtr materials and RBDOOM-3-BFG specific extensions. It includes support for Doom 3 diffuse/basecolormap stages and the lookup for them is like in idMaterial::GetEditorImage()
* New Doom 3 OBJ parser. RBDOOM-3-BFG automatically creates OBJ files to work with TB and it also allows seamless interop with Blender 2.8x - 4.x without the need of additional model formats
* RBDOOM-3-BFG >= 1.4 ships with TB specific helper entities like misc_model or func_rotating_model to reflect TrenchBroom's clean architecture and differentiation between Brush Entities and Point Entities
* Game FGDs for Doom 3 and Doom 3 BFG
* Custom PNG icons for special entities like lights, speakers, particle emitters, info_location, target_* and so on
* After loading a map TrenchBroomBFG generates unique entity names and also fixes missing or bad "model" keys for brush based entitites
* Creating new entities like a light will automatically receive unique names like light_2
* Changed Rotation Tool behaviour to use "angles" by default
* Translucent materials that might cause BSP leaks have a purple rectangle border in the Texture Browser
* Changed OBJ exporter so exported models can be easier reimported by RBDOOM-3-BFG
* Changed Assimp glTF 2 importer so it will look for Doom 3 materials instead of trying to load embedded textures
* Bezier patches can be copy pasted and copied out of other maps
* Replaced ray traced model picker code using TinyBVH which allows to load bigger glTF 2 maps almost instantly instead of minutes

## Issues
* TrenchBroomBFG doesn't support brush primitives like in D3Radiant or DarkRadiant. Use the Valve 220 .map format instead
* TrenchBroom has a very clear architecture. An entity can be either a Brush Entity or a Point Entity which has no brushes or patches. This is a conflict with Doom 3's design where each entity can have optional models. Therefore mapping with TrenchBroomBFG requires a different workflow and RBDOOM-3-BFG ships with helper entities for these cases like `func_door_model` instead od `func_door`.
* It has no support for BFG .resource files and .bimage files. You need to call `exportImagesToTrenchBroom` in RBDoom's console once to have all images available in base/_tb/textures/ as PNG format.
* Many entities work differently in Doom 3 if they have an origin. Brush work in D3 is usually stored in entity space and not world space. However as a workaround you can use the convertMapToValve220 engine command to prepare a Doom 3 map for the TrenchBroom Doom 3 (Valve) configuration which also creates origin brushes for each entity.
* Doom 3's primary model formats are LWO and ASE. Assimp has problems to convert them into the Quake/Doom coordinates. (not an issue with the Doom 3 BFG edition)
* Some ASE models can't be loaded and materials are usually all wrong if loaded (not an issue with the Doom 3 BFG edition)
* TrenchBroomBFG doesn't support the "rotation" keyword and many models have the wrong orientation (not an issue with the Doom 3 BFG edition)
* TrenchBroomBFG breaks compatibility for other id Tech engines, e.g. entity links work between "target[num]" and "name" and not "targetname"

## Releases
- Binary builds are bundled with RBDOOM-3-BFG available from Mod DB [releases](https://www.moddb.com/mods/rbdoom-3-bfg).
You can find this customized version under tools/trenchbroom/.

For feedback, questions and support join the id Tech 4 Discord: https://discord.gg/Q3E9rUFnnP , #rbdoom3bfg

You can also find weekly or monthly snapshots of this TrenchBroom version in the pinned messages of #rbdoom3bfg