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
2D Mode 
The 2D mode would be a mini map that is either overlaid on top of the 3D view or shown in a separate window. It would not be used for editing at all, only to get an overview and for navigation.

Kinn, if you drag a brush, you will see laser beams coming from its bounding box. Those beams should help you to position brushes relative to each other. They are not useful for measuring the distance to other objects, but I can add that and show the distance to the closest object hit by a laser beam. 
 
What's funny is that I thought the laser beams were just graphical sugar at first but then I started leveraging them for positioning and aligning stuff and they're just absolute GOLD now. 
Laser Beams 
yeah, I don't really find the laser beams help that much tbh.

What happens is i have to set a camera view, then move the brush so the laser beams appear to be lined up in that view. Except, chances are they won't be actually lined up, and i have to change camera view, then rinse/repeat until i've actually got them lined up.

e.g. view 1: they look kinda lined up here:
http://i.imgur.com/oaGALu6.png

move the camera a bit though and see they are actually off in all 3 axes:
http://i.imgur.com/LSijyg8.png 
 
I still think if you're going to implement 2d views you should bind the main viewport to cycle the axis using keys 1-4... hopefully this will be possible using custom key binds. I'm getting along fine right now without 2d, but it would help on the odd occasion that I need really fine-control over what I'm doing. 
Kinn & FifthElephant 
I agree that positioning brushes like this is cumbersome in 3D. It gets easier once you have more brushes, but if you're in the void, it doesn't work very well. Will have to think about that.

Cycling through 2D views - what for? The 2D view, as it is planned now, is only there for orientation. I specifically don't want to give the impression that you can use it for editing. I want to avoid that people try to click and drag objects in the 2D views. That would mean that the 3D only approach has failed.

If eventually it turns out that you really can't map without fully functional 2D views, I'll reconsider them, but only as a last resort. Or maybe this editor isn't for everyone. Let's give everyone some time to get used to it, and then we'll see what happens.

Meanwhile, if anyone has any ideas about how to improve the problems that Kinn is describing in post #273 WITHOUT falling back to 2D views, let's hear them! 
Afterthought 
So, maybe you didn't notice it yet, but the laser beams leave a mark if they hit something. So if a laser beam hits a face, there will be a red dot where the face is hit.

But I think this doesn't work well if the laser beam hits face at an edge or vertex (sometimes the mark is shown, sometimes it isn't).

If I were to improve this so that the hit mark is shown reliably, would that improve matters? I guess it will still be difficult to know where to move the brush if it isn't aligned, though.

necros suggested freely positionable grid planes at some point. That would be a possible solution. The idea is that you can tell the editor to show a grid plane (either XY, XZ, or YZ) at a specific position which you can change with the mouse. Then you could basically just drop a grid wherever you need it and disable it again later. 
2D Mode 
The oversight is the most important factor for me, the ability to edit in 2D can be missed. 
SleepwalkR 
I personally think the editor is very good, but if you were to include a 2d view then I think it'd be fairly sweet if you could use the number keys 1-4 to cycle through the various 2d grids (and 3d viewpoint) kind of how the Opera browser allows you to cycle through open tabs using the 1-4 keys.

That being said I really am doing *very* well without the 2d grid. I'm about 75% complete on the geometry of my first TB map, even managed to make some lovely curved wall templates. :) 
 
Or maybe this editor isn't for everyone

Yes, THIS. :) Software becomes bloated and awful when it tries to be everything to everyone. Focused design is key to awesomeness - even if it leaves some users behind. 
Hmmm 
I know i used to use a function in some modelling app - can't remember what it was - maybe solidworks?

Anyway - let's say you select a brush - brush A, and then ctrl-select a second brush - brush B.

I remember I then had options, something like: "Align A to B in Y-axis", or "Align A to B in Z-axis" etc etc.

It's a bit clunky though. 
Help With Tutorials 
I would like to have some tutorials available for new users. There are several options:

- Included in the documentation as text + images.
- Hosted on a wiki to be set up on my website.
- Youtube videos (Daz, I'm looking at you!)

I'm thinking that there should be a combination of these. The editor should come with simple tutorials such as "My first room" and "How to compile my shit" etc. More advanced stuff should go in a wiki so that we can keep it up to date easily.

Daz, seriously, I dig your videos, so if you are up for it and find the time, I'd love it if you were to make a video tutorial or two. Your narration is also quite good, unlike mine which sounds like a steamrolled duck. 
Kinn 
That indeed sounds a bit clunky because you have to think about which axis is which first. By I hadn't even considered alignment buttons, so I'll think about it - maybe I can find a way to make them work well. 
 
Yes, THIS. :) Software becomes bloated and awful when it tries to be everything to everyone. Focused design is key to awesomeness - even if it leaves some users behind.

That depends on what the design goal is - if the goal is "be the best quake editor that only has a 3d view", then yes, but if the goal is "be the best quake editor", then you have to consider whether 2d views are a worthwhile addition. 
SleepwalkR + Kinn 
I love that idea! Why not it snap to the face of the brush? Like the Alt + Click for textures?

So you select the face of the brush using shift + click, and then hold say M (for move) + click and it will push the faces together. 
Goddamnit! 
i was just about to post a similar suggestion - yes align to face - that would be elegant 
Fifth 
That is not the problem Kinn is trying to solve. He wants to be able to align two brushes with each other, but only in two dimensions. They should keep a certain distance to each other.

Kinn, if I'm not mistaken you want this so that you can block out your layouts. Wouldn't it be easier to start with the floors though? Once you have a floor in place, it's much easier to keep the brushes aligned. 
Now I'm Confused 
You just want to put brushes right next to each other so that they share a face? 
Nope 
so face A on brush A shares the same plane with face B on brush B

they wouldn't be pushed together, Brush A would be moved just so the faces line up on the plane of face B 
Aha 
But that would only work if the two faces have the same normal.

I'm not so sure about this. It sounds like it's only of limited use. And you'd have to do it twice to have the brushes line up in two dimensions. 
Yeah It's A Bit Messy 
the earlier idea where you can only snap to one of the ortho axes of brush A's bounds is probably better. 
 
Once the faces are next to each other it wouldn't take much more effort to to press alt/click to line the other axis together. I think it'd work. 
No 
You have to select a different face, then click on the face you want to align again. If you want to align several brushes, it gets even more cumbersome.

And it will only work if the faces have the same normal. There must be a better way. 
 
what about showing coordinates of vertices the mouse pointer hovers and allow the user to move a brush by selecting it and typing in the coordinates (autocad style, just 123,53,67)? then one could fairly easily make two brushes/selections placed similarly as needed. the problem here would be determining what base point to use. 
Spirit 
The coordinates are already shown when you hover over a vertex in vertex mode. But moving brushes by entering the deltas? I don't like that very much, I think a "align on XY / XZ / YZ" buttons would be better than that. 
But Then 
you're moving brushes around by typing numbers into boxes and suddenly it's getting a bit ugly and cumbersome. 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2025 John Fitzgibbons. All posts are copyright their respective authors.