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
NotRay 
You should have a look at the documentation. It's all in there. But as I hate the "RTFM" folks, here are some pointers:

1 - Depends on what you're clicking on. If you start the drag in the void, then it's the camera angle. If you start your drag on another brush, it's the plane of the coordinate system that is most similar to the face's boundary plane.

2 - Hold Shift and move the mouse next to or on top of the face that you want to move. The face that will be moved is highlighted with a white outline. Then start dragging with the left mouse button to move that face.

3 - Vertices are only moved by fixed offsets and are not automatically snapped to the grid. If that is what you want, you must hold Shift while dragging the vertex. If you want to move the vertices vertically, you need to hold Alt while dragging. 
Than 
That sounds like an obscure feature to me. If you can muster up other people who want this, then I'll add it, otherwise I'd rather leave it out because it's something you can easily change in your batch file.

Do other editors actually support this workflow? 
Visgroups 
I thought of a simpler way this could be done than adding additional controls, although it'd only work for entities. How about hiding or not via keyvalues - say, everything with the name 'key_door' or of the class 'func_door'.

Just a series of bitflags, really, although detecting the targetnames of stuff would be more difficult. 
Tutorial Videos... 
I am in talks with a friend who makes professional videos about making a few tutorial vids. Hopefully I can get it done, might not be straight away though. 
Ijed 
That would be a use case for filtering, but groups are different. I think there are other reasons to make groups:

1. You want to be able to quickly select objects that belong together because they form an architectural feature, such as a door incl. its frame. The goal is to edit them as a group.
2. You want to be able to quickly hide stuff that forms an entire part of the level, such as a bunch of rooms with the interconnecting corridors. The goal is to unclutter the view.

I want to implement both functions using func_groups because then I can get by without extending the map format. As for additional controls, I think this could be nicely integrated with the planned map browser (tree of all objects in the map). Not sure yet. In any case, groups would have additional checkboxes for hiding and locking them individually. 
FifthElephant 
Nice! That would be very cool! 
Linux Support 
I've done a bit of debian packaging (and know people who have done a _lot_), I'll try to take a look at some point. It probably won't be until April though. so if someone beats me... 
Local Rotation? 
Hello again. I have one question about rotation. Do you think you could add the option to use local object space for brush rotation? It would be nice to rotate the object and have the gizmo update with it instead of the default world space rotation axis.

I use this a lot in normal 3d modeling when placing decoration bits. It sure would make things like fallen over pillars easier to place with the ability to adjust their spin on their local z axis after you rotate them at odd angles. 
Skiffy 
That would only work for one session with the rotation tool as brushes don't have local coordinate systems. And since you can achieve the same result be reordering your rotations, I don't think it's necessary? 
Mwh 
Oh, that would be great. I plan to change the dependencies so that you don't have to make your own build of wxWidgets on Linux anymore, maybe it will be easier then. 
Sleep 
Worldcraft only has it because it uses its own map format that is not compatible with the compilers. Because of this, I can happily work away in my .rmf map and export to .map when I want to compile without disrupting anything. It also has an option that allows me to export visible objects only, which is handy for debugging the map.

Maybe I can support it in my batch file, though the problem is that the working map file name changes based on map and version (e.g. map1_01, map1_02...) and detecting that in the batch file is fiddly perhaps, though I've never looked into it.

Adding the feature to the editor would require an export option adding to the file menu and potentially an export location adding to the preferences (always export to the same place so that exporting is a single click away).

As you said though, it might be an obscure feature, and I'm not really sure how everyone else tends to build. Since building isn't handled from TrenchBroom, and probably shouldn't be anyway, it seems like a simple feature that would be handly for streamlining the build process, that's all.

Anyway, if you think some kind of export feature would be ok but don't want to spend time implementing it, I could try perhaps? Currently I'm just getting the project set up. It might be worth getting a code::blocks project set up for windows for those who don't have VS and want to fiddle with the code. I had to install 2012 to test a friend's game, but the install process is insane and it eats up 13gb of disk space. I'm going to look into that if there isn't one already. 
Also 
I've been calling this editor Trenchboom since I first saw it... 
Thing Is 
"Export" implies a different map file format, which this is not. Maybe a "Save copy..." menu item could be added to the file menu though.

Regarding Code::Blocks, yeah, that would be cool. Not sure how easy it will be to set up the dependencies (wxWidgets mostly), though. 
I Expect That Would Definitely Help :-) 
Seems quantal only has packages of wxwidgets 2.8, I presume 2.9 is a hard requirement? Some dude has a PPA with 2.9 in:

https://launchpad.net/~sven-eckelmann/+archive/ppa-wxwidgets2.9

Does that look new enough? 
Than 
That's why I suggested a kind of on/off system, searching by entity fields - it wouldn't invalidate the .map format.

Haven't thought through the ramifcations properly though, so no idea how difficult it would be to code. 
CodeBlocks Rules 
seems that code::blocks can import the sln file without any problems. I have to get wxwidgets properly installed before I can compile, but this is a good start. Once I get it compiling I'll post a little set up guide for anyone else that wants to look at the code and fiddle with it. 
Mwh 
Yes, 2.9 is a hard requirement because I use components which are not present in 2.8. I wanted to try these:

http://www.codelite.org/LiteEditor/WxWidgets29Binaries#toc1

I have no idea how up to date they are, though. I'll try the ones you found as well. 
Than 
Look at Windows/Build.txt for exact instructions on which files to get for wxWidgets and where to put them. 
Well, It Built (following Linux/Build.txt) 
After I clicked build twice? I got some error about SIZEOF_LONG the first time... now I disappear for a month :) 
Hmm 
It should build without warnings, much less errors. 
Local Rotation? 
I would be fine with it being once a session. Or maybe add another file that sits external from the map format for this type of addition? That way you don't need to break the map format but can store info in an accompanying file. It would be lovely stuff.

Either way still cant say enough how much I love this editor. Rocks my socks off! 
Skiffy 
I have added a feature request for session-wise local coordinate systems, but I won't make them persistent. That would add too many new problems. 
32/64 Bit? 
This code in Include/freetype/config/ftconfig.h:

#if defined SIZEOF_LONG
#undef SIZEOF_LONG
#endif
#define SIZEOF_LONG 4

looks a bit suspicious on my 64 bit system :) 
ARGH! 
fucking wxwidgets!

This again! I can't figure out how to get wxWidgets to work with code blocks. It's such a horrible fucking nightmare to get it working correctly. 
I Have To Go To Bed But... 
still no luck. I got rid of the wxwidgets simply by copying setup.h from the wxwidgets lib/gcc/msw/wx folder to the include/wx folder, but now I am getting an error saying va_list has not been declared (String.h 97)

No idea what I'm doing wrong, but this is the kind of thing that always puts me off doing c++ programming. Environment setup is fucking shit and makes me very annoyed :/ 
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.