News | Forum | People | FAQ | Links | Search | Register | Log in
The TrenchBroom Level Editor
Today I am releasing TrenchBroom 1.0 for Windows and Mac OS X. TrenchBroom is a modern cross-platform level editor for Quake.

Features
- True 3D editing, no 2D views required
- High performance renderer with support for huge maps
- Vertex editing with edge and face splitting
- Manipulation of multiple vertices at once (great for trisoup editing)
- Smart clip tool
- Move, rotate and flip brushes and entities
- Precise texture lock for all operations
- Smart entity property editors
- Graphical entity browser with drag and drop support
- Comprehensive texture application and manipulation tools
- Search and filter functions
- Unlimited undo and redo
- Point file support
- Automatic backup
- Support for .def and .fdg files, mods and multiple wad files
- Free (as in beer) and open source (GPLv3)
- Cross platform (Windows, Mac OS X and Linux supported)

Check out a video of TrenchBroom in action here.

You can download the editor here.

If you would like to give feedback, please do that in this thread. If you find a bug or have a feature suggestion, please submit them at the issue tracker.

If you are wondering where the Linux binaries are then sorry, but currently there are none. The Linux version has a few problems which I could not fix before this release. I will get working on those right away so that the Linux version should be available in a couple of weeks, too.

Finally, I would like to thank necros for all his work over the past year. Without his tireless efforts, TrenchBroom would simply not exist. Or it would suck.

Alright, enough of this. Have fun with the editor!

Update: 2.1 here:
https://github.com/kduske/TrenchBroom/releases/tag/v2.1.0-RC1
Features "cool shit".
First | Previous | Next | Last
Ooops 
Forgot to mention the brush measurements: This is currently missing and will be implemented soon. Probably even tonight.

The fact that the measurements disappear in TB1 is in fact a bug, but then TB1 never worked well under Linux anyway. 
 
Probably even tonight

Yay, thank you! Am looking forward to it. Not sure how far I'll get for the time being without being able to clip, but I can't wait to start using TB2 more and more and being able to move on from TB1 altogether (which, as you said, doesn't really work as it should on Linux).

And thanks for devoting your time to the Linux version of TB2; it is much appreciated. 
More Weirdness 
Two more issues:

1) Ok, opened a brand new map (or "document", as per TB2's terminology) with both a 3d and 2 pane. For some reason I could only draw a brush in the 2d pane, and not in the 3d pane (the programme would not let me). (By the way, is TB2 supposed to start with no brushes, unlike TB1, which starts up with a basic block already drawn?)

2) Then I wondered why no grid was visible, except on the brush itself in the 3d pane. So I went to View > Grid > Show Grid, and saw that it was already checked. When I unchecked it, I got this psychedelic effect. Note that the TV-type noise in the 2d pane moves and changes when you move the cursor about. It even changed colour when I took another screenshot.

Errr... 
Brush Drawing In 3D 
Only works on other brushes. You have to create some initial brushes as references. And yes, TB2 will come with a simple room map by default, but that's still to be done.

The grid issue is probably a shader bug. I'll create a new issue for it. 
Thanks For Responding So Quickly 
 
Just Did Git Pull And Cmake -- Build . Again 
to see if the measurements have been implemented. Don't know if this was the wrong time to do so, but I got this error message right at the end:

[ 16%] Building CXX object CMakeFiles/TrenchBroom.dir/common/src/Assets/EntityModelManager.cpp.o
Linking CXX executable TrenchBroom
CMakeFiles/TrenchBroom.dir/common/src/View/MapView3D.cpp.o: In function `TrenchBroom::View::MapView3D::doRenderMap(TrenchBroom::Renderer::MapRenderer&, TrenchBroom::Renderer::RenderContext&, TrenchBroom::Renderer::RenderBatch&)':
MapView3D.cpp:(.text+0xf01): undefined reference to `TrenchBroom::Renderer::SelectionBoundsRenderer::SelectionBoundsRenderer(BBox<double, 3u> const&)'
MapView3D.cpp:(.text+0xf0e): undefined reference to `TrenchBroom::Renderer::SelectionBoundsRenderer::render(TrenchBroom::Renderer::RenderContext&, TrenchBroom::Renderer::RenderBatch&)'
CMakeFiles/TrenchBroom.dir/common/src/View/MapView2D.cpp.o: In function `TrenchBroom::View::MapView2D::doRenderMap(TrenchBroom::Renderer::MapRenderer&, TrenchBroom::Renderer::RenderContext&, TrenchBroom::Renderer::RenderBatch&)':
MapView2D.cpp:(.text+0x78b): undefined reference to `TrenchBroom::Renderer::SelectionBoundsRenderer::SelectionBoundsRenderer(BBox<double, 3u> const&)'
MapView2D.cpp:(.text+0x798): undefined reference to `TrenchBroom::Renderer::SelectionBoundsRenderer::render(TrenchBroom::Renderer::RenderContext&, TrenchBroom::Renderer::RenderBatch&)'
collect2: error: ld returned 1 exit status
make[2]: *** [TrenchBroom] Error 1
make[1]: *** [CMakeFiles/TrenchBroom.dir/all] Error 2
make: *** [all] Error 2
 
Probably A Missing File. 
I'll check it out tonight. 
Nope. 
You have to refresh your build files. Before you do build, issue this command when inside your build directory:

cmake ..

You should always do this when you update your sources. 
Thank You 
I did not know that. So I always have to do
git pull
then
cmake ..
and then
cmake --build .?

Anyway, that is what I did now, and it worked.

I have another question/sort of bug report:

I was working on a map (which I had started a long time ago) in TB1 earlier today, and actually making some progress, but then when I closed the programme and tried to save my map, something went wrong. I got some sort of error message, which sadly I cannot remember, and I did not think to take a screenshot of it. Anyway, when I now try to open the saved map file with TB1, it opens, but I just get a blank screen, as if it were an empty map with no brushes or anything. When I try to open it with TB2, I get this error message:

Line 14013, column 3 - Expected integer or decimal, but got string

As an aside, weird things were happening in TB1 earlier too. There's this arch I had built (similar to the arches in Honey or in the Honey Map Jam) made up of 5 brushes and which I am using a few times in the map -- yet today when I copied and pasted it in place to drag elsewhere (Ctrl+C; Ctrl+Shift+V), the brushes in the copy of the arch were all slightly (like ~ one grid unit) bigger than the original. It was a very subtle change that I did not notice at first; I only noticed it when I could not line the arch up correctly once I had dragged it somewhere else in the map.

It was after fiddling with the arches to get them back to their original shape that TB1 refused to save my map correctly, after which neither TB1 nor TB2 seem able to open it.

I know you're no longer working on TB1 for Linux, but I thought this information might be relevant.

(By the way: as far as I can tell, all my brushes were on grid, but TB1 seemed to shift things off grid when I copied and pasted. I could be wrong, but that's they way things looked to me.) 
...continued: 
Just tried to copy and paste the same arch (from an earlier save of the map) in TB2, and even weirder things happened: although I had selected all 5 brushes, only 3 were copied and the programme warped all of the brushes in bizarre ways -- some were slightly shorter and some slightly longer, including the ones that were not copied (as in, the originals are now different). 
Total_newbie 
It sounds like line 14013 of your map got corrupted somehow. Try going to that line in a text editor. With any luck, you can just delete that one corrupted brush - the brush is the sequence of lines surrounded in curly braces: { } - and it will fix the problem. It would be interesting to see what was on line 14013 that was causing the problem.

TB 1.1.4 released this January fixed a bunch of "vertex drift" bugs, including one affecting copy/paste. Since you'll be building from source, these fixes are in the "master" branch. I'd suggest the least error-prone thing to do is just make another git checkout for TB1.x, e.g. to checkout into a directory called tb1, do:
git clone https://github.com/kduske/TrenchBroom.git tb1 
Thanks For The Response, Ericw! 
Do you mean that I should open a terminal in the directory where I have TB1 installed and type git clone https://github.com/kduske/TrenchBroom.git tb1?

This was on line 14013:

( 16,46453094482421875 -71,0805511474609375 -7,2267894744873046875 ) ( 16,46453094482421875 -94,0805511474609375 203,7732086181640625 ) ( 657,46453857421875 106,9194488525390625 -327,226776123046875 ) city2_6 21 -17 150 1 -1

I deleted the brush in a text editor as you advised, but still have the exact same problem -- I get the exact same error message in TB2... 
I Don't Know Anything, But 
I am guessing those long decimals are not healthy. Just looked in a text editor at a saved map file from before I played around with TB today, and none of my brushes ever looked like that... 
FWIW 
I went back to the presumably corrupted file and there were several similar brushes with long decimals. I am guessing this means brushes that are off grid? That is bizarre, because I never drew my brushes off grid, and my old saved .map files only contain integers.

Anyway, I tried finding all the wonky brushes in the text editor and deleting them, but still no luck... 
Ah 
regarding tb1, I meant to run that command in your home directory, or wherever you prefer to keep source code, to get a fresh copy of the latest TB1 source. Then you can follow the instructions in Linux/Build.txt to build it.

line 14013: ah, that looks like a classic bug. Was that file last saved with TB1? I guess your OS is set to a locale that uses comma as the decimal separator, and TB1 was incorrectly using that in its .map output. All of those commas should be periods. It should be safe to just find and replace all commas with periods using the text editor. 
Btw 
For TB1, the long decimal coordinates are normal if "Force integer plane points" is unchecked in map properties. 
Thanks For The Follow-up, Ericw 
Yes, it was saved in TB1. Thanks, I'll do a find&replace of the commas and then proceed with "Force integer plane points" checked from here onwards.

I still find it weird that TB (both TB1 and TB2) would just randomly shift my brushes around and reshape them. Surely that is a bug, right?

Anyway, thanks again for your help. I'll report back, but need to sleep in the mean time... :) 
C&p Comment From My Tb Video On Yt 
1. Try to place entity; clicks it, Unhandled Exception. (Also another unhandled exception when trying to scroll menu)
2. On trying to use Vertex Tool, another group of 15+ Unhandled Exception errors
4. Upon trying to add texture wad, freezes and doesn't respond at all, forcing me to Task Manager and End Process


Removed stupid insults and general idiotness from the quote :P

This is TB 1 ofc but I've never had any of these unhandled exception errors. 
Thanks 
 
Re: Ericw, Building TB 1.1.4 
Sorry, I'm a little confused...

So there are these presumably outdated instructions on building TB1 http://andyp123.blogspot.de/2013/03/running-trenchbroom-quake-editor-on.html. I've followed them before, and that leaves me with TB1.2.0, build 460.

Then there are the instructions SleepwalkR posted above for installing TB2, which worked (after I stopped being an idiot and followed the instructions more closely), but they're completely different from the instructions for TB1.2.0 on Andy's Blog.

Now in the build.txt for TB1.1.4, it seems there is a different process again, and I'm not sure I understand exactly... The instructions in this build.txt end with

3. Code::Blocks
- Get the latest version of the Code::Blocks IDE using the package manager.
- Create a global variable named "WXWIN" in Code::Blocks.
- Click Menu > Settings > Global Variables...
- Click on the second "New" button (in the "Current Variable" row).
- Enter "WXWIN" (without quotes) as the name for the new variable.
- In the "Builtin fields" column, click the ".." button next to the first text field (labeled "base").
- In the Open file dialog, select the directory where you extracted the wxWidgets sources.
- Optional: Go to Settings -> Compiler and Debugger... search for the Other settings tab: Set the number of processes for parallel builds to the number you'd like to use.


Is that it? Isn't there something else I need to do? Do I switch to the guide on Andy's Blog at this stage? Or will that give me TB1.2.0 again, or break something?

Sorry if these are stupid questions. 
No Worries 
I guess the TB1.x Linux/Build.txt is missing the step where you actually build it. The instructions on that blog under "Build the TrenchBroom project in Code::Blocks" should work fine. I glanced over the blog instructions and it looks like they should still work. Back in January I tested the Linux/Build.txt instructions from scratch and they work, though they may gloss over some details.

1.1.4 was the version number of the release, the code in master has version 1.2.0, I think, but the code is the same so you can ignore the version number difference. The important thing is to just have the master branch up to date by doing a fresh repository clone. 
Total_newbie 
I have fixed two bugs now: You can set the game path and it will be saved, and the same goes for other preferences, too. 
Texture Lock 
doesn't appear to be working for me in the latest build of TB 2...

Also, how do I change the pivot to rotate brushes? Like in the pics I've seen of other mappers? 
Fifth 
Texture lock is currently broken in standard Quake maps.

You can change the pivot by dragging the center of the rotate handle. There's a little white ball that you can grab. 
How To Make A New Brush In Blank Map? 
Any clue how to do this? Since it needs a brush to start with right in TB2? 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.