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
Responses 
<quote>I understand the whole 'developers license' as in 'artistic license', but you could make it optional, off by default. </quote>

<quote>I agree with Ricky, make it an option (or a hotkey like holding alt does with z axis, or have it pop up like when you press R for rotation). I'm getting quite used to the workflow now, it's becoming less of an issue the more I play. </quote>

See Willem's response. That's exactly how I feel about this.

<quote>I need to figure out a good way of making curves in TB now...</quote>

<quote>Something of a more advanced feature for people that are awful at maths (like me) would be a nice brush curves tool where for example you could select a brush or combination of brushes and then select a bend angle and amount of segments and it would create a nice clean on-grid brush curve for you. Similar to how czg's curve tutorial handles things but automated. </quote>

A patch builder is on my todo list. It would basically allow you to create patches and then generate brushwork (trisoup) for them.

<quote> Also, I have noticed that the entities don't seem to have all the options available (for instance the light entity doesn't have the light, style, _color key etc). </quote>

The entity property editor is quite rudimentary as is, I agree. I plan on the following features

- Easy way to add "known" properties (from fgd or def file).
- Display additional description strings from fgd and def file.
- More smart property editors (angle, mangle, target, etc).
- Better navigation (tab to navigate row-wise, enter to navigate column-wise, create new property when leaving the last row).
- And other things I can't think of right now.

<quote>Is there a reason for doing page-up/down rather than alt+arrows? </quote>

Alt+Arrows is currently taken for the camera movement. You will be able to completely customize this in the next version though. I agree that Alt+up/down would also make sense given that Alt+Mouse will move things vertically. 
Fucking Hell. 
I understand the whole 'developers license' as in 'artistic license', but you could make it optional, off by default.

I agree with Ricky, make it an option (or a hotkey like holding alt does with z axis, or have it pop up like when you press R for rotation). I'm getting quite used to the workflow now, it's becoming less of an issue the more I play.

See Willem's response. That's exactly how I feel about this.

I need to figure out a good way of making curves in TB now...

Something of a more advanced feature for people that are awful at maths (like me) would be a nice brush curves tool where for example you could select a brush or combination of brushes and then select a bend angle and amount of segments and it would create a nice clean on-grid brush curve for you. Similar to how czg's curve tutorial handles things but automated.

A patch builder is on my todo list. It would basically allow you to create patches and then generate brushwork (trisoup) for them.

Also, I have noticed that the entities don't seem to have all the options available (for instance the light entity doesn't have the light, style, _color key etc).

The entity property editor is quite rudimentary as is, I agree. I plan on the following features

- Easy way to add "known" properties (from fgd or def file).
- Display additional description strings from fgd and def file.
- More smart property editors (angle, mangle, target, etc).
- Better navigation (tab to navigate row-wise, enter to navigate column-wise, create new property when leaving the last row).
- And other things I can't think of right now.

Is there a reason for doing page-up/down rather than alt+arrows?

Alt+Arrows is currently taken for the camera movement. You will be able to completely customize this in the next version though. I agree that Alt+up/down would also make sense given that Alt+Mouse will move things vertically. 
This May Be A Stupid Question... 
But is there a way to group together brushes? I had a look through the Help document but couldn't find anything. It would make things a hell of a lot faster.

I generally create a set of pre-fabs to work with (saves time, keeps everything looking consistent).

Also, WIP of Deck 16 remake (completely done in TB) -
http://s24.postimage.org/ov1vd2out/Quake0000.jpg
http://s7.postimage.org/jht6up70r/Quake0001.jpg 
 
I think the only way is to create a func_group entity with everything inside that you want grouped. They are added to the worldspawn at compile time... 
 
Make sure you add -group to your compiler or it will treat it like a normal brush entity. Adding -group is what makes the compiler merge those func_group entities as if they were normal brushes. 
Oh And 
those are great shots, FifthElephant. 
... 
I mean to make a kind of prefab that I can copy and paste to save time. Or is making a group entity how you do it?

Also thanks... This editor has really put the fun back into mapping! 
 
For now, yes. So select the brushes of the bits you want to be the prefab and right click and make it into a func_group (RMB -> Create Brush Entity -> Group).
This is actually a hold over for how it was done in radiant editors because they do not use a special map format.
Eventually, I think the plan is to create prefabs in external map files that you can then load into your actual map and then rotate, move, etc... (ie: they are not just pasted in, if you edited the original, then all the instances of that prefab would be updated). 
Buhhhh 
should be:
RMB -> Create Brush Entity -> Func -> Group 
FifthElephant 
Seeing Deck16 in Quake base textures fills me with joy :] 
Doh... 
I'm using Necros's compiling tool and it doesn't have a -group checkbox (I tried adding it manually in the folder setup but it said unknown option 'group') :P
I might just persevere with clicking on brushes like a maniac than having to

Thanks Spiney, it's smaller than the original but it will tighten up the gameplay a lot more. 
 
Because all compilers have their own switches, I left the creation of the buttons up to the user. Right click in an empty space to create a new button. :)

Which compiler are you using? 
 
I'm using the BJP tools that just came out -
http://celephais.net/board/view_thread.php?id=60909 
 
That's odd, the tool reports that it has -group support.

You added -group into the command line arguments textbox in my compiler UI, it said unknown option in the dos box that pops up when you try to compile? 
Gizmo Argument 
i totally agree with herr sleep. gizmo is good for 3d modeling editors, but even there, there's possibility to move objects not clicking on gizmo. (in maya it's middlemousebutton, but you have to fucking ctrl-click on an axis first to set the plane of movement). personally i'm trying to avoid using gizmo in maya, but it reigns there and forces me to click on it sometimes. and modeling in maya is more precise and complex by nature than messing with simple brushes, so gizmo there is indeed more useful.

and trenchbroom totally dropped this precise clicking on gizmo which rocks. you rly don't need it because there're hotkeys (soon to be customized). 
 
Sorry, but TB requires shaders. I'll add minimum system requirements to the website.

Yeah. I kinda figured that which is why I mentioned it. No big deal, it's my fault that I was using such an old platform. I'm glad to hear that you're putting up minimum system requirements so someone else doesn't run into the same issue. 
Necros 
That's exactly right. It's no big deal really. 
Gizmos 
Were never a nice solution, after reading everything I'm relieved to see you've gone with the 'anything but' option.

Locking to an axis by a key press is much neater.

As to entity management, it'd be nice to have (another) worldcraft feature - the entity report.

https://photos-2.dropbox.com/t/0/AADr1aw1PnyNNTcQbVdVTPZvzwH4c0BYjA9KT_eZ5vy38g/12/88336058/png/32x32/2/1362405600/0/2/entity_report.PNG/St_OZhlgoCUFcMtWEWSx_lEQjwHovC2jfFUXKswUTUg?size=1280x960&size_mode=2

( Sorry for the retarded link - Dropbox decided to 'upgrade' their previously working frontend, apparently. )

Basically the entity report allows searching of entities by keyflags / type / spawnflags in an additional text window.

Lower priority than the fixed texture projection, but would be good.

I can see it becoming a more evolved system, that doesn't depend on a load of floating boxes pointing to level logic.

May be wishful thinking, but if you apply the same approach to entity mangement as you have to brushes then it'd be just as awesome.

As per your earlier comment, I don't want the WC entity report, my request is for 'a nice way to work with entities...'

And Congrats, Trenchboom is famous! 
Entity Report 
Well, that looks like an extension to the search and filter feature from the View inspector. I was thinking of improving the search syntax to allow stuff like "spawnflags = 1 AND classname = "monster_ijed", would that be a good replacement for that functionality?

What do you mean, famous? Carmack's tweet? Yeah, that felt quite nice! 
Hah 
Yeah the tweet - and this morning in the office someone (who isn't involved in Quake) started talking to me about a "the new Quake editor" :)

They actually arrived here and recognised my handle in the comments - which was weird.

I admit I haven't gone into the entity implementation properly yet, my earlier comments were just based on the brush editing.

Improving the search functionality would be ok, but I can imagine something more revolutionary. Like not visualising any pure-logic entities in the level, only physical entities. But also showing physical entities in the 'edit entity pane' - which would support all the current and suggested functionality.

That would be a ton of work though.

I'll have some more useful feedback over the coming week, as I try to get my current project converted over. 
Ijed 
That is mighty cool, it seems that a lot of people saw that (yet I didn't hear from anyone but the people on the forums I posted it on).

I'm not quite sure I understand what you mean about the entity functionality you are proposing. By "not visualizing" you mean hiding them from the view? That would be easy if there was a way to identify "pure logic" entities. Not sure that there is, but it could be added to the FGD / Def files.

"Showing physical entities in the edit entity pane" - By "edit entity pane" you mean the entity inspector (second tab on the right)? But what do you mean by "showing physical entities" there?

Sorry if I'm being daft, maybe it's a language thing. Could you elaborate a bit? 
It's Not You 
I tend to explain ideas elliptically / badly.

you mean hiding them from the view? Yes, but this would mean making the entity inspector powerful enough so that it wouldn't be necessary. The complex logic systems usually needed for set pieces in a map aren't helped by having the various entities visible in 3D space. There are much nicer systems that logic tree front ends but that'd be a lot of work to include.

More than anything this would be a new layer of interface.

By "edit entity pane" you mean the entity inspector?
Yes.

what do you mean by "showing physical entities" there?

Anything that is only logic wouldn't be visible, but other entities, for example "monster_thing" would be visible as well.

So a setup of:

monster_thing
monster_thing
monster_thing
+
trigger_counter
=
func_door

would have the door and monsters visible in 3D but not the trigger counter. All however would be shown in the entity inspector.

All of this is kind of dancing around the feature I'm suggesting though, which is referred to as a Visual Scripting Editor.

There are many different implementations of this, from very simple to extremely complex. Having a Quake version would be yet another evolutionary leap.

Ideas like the WC Entity Report or even the original id1 path system eventually evolved into Visual Scripting Editors.

Which are just more intuitive or user friendly ways of setting up level logic.

What I've written here is so open ended it could take years of work, whereas a more elegant and direct solution could provide the same functionality and take half a day. I need to get into the guts of the editor more to make more feasible suggestions. Converting over my current stuff should provide that though :) 
Ijed 
Now I understand what you want. We should discuss this more when the other, more essential features have been implemented. 
Of Course 
Lower priority. 
My Issue With Gizmo Vs Non-gizmo 
If it can be done without, that's great. However I find myself using the arrow keys more and more. The question to me is whether a slower and more calculated approach will save time in the end over a loose approach that requires more moves to complete. The current approach requires to switch the view constantly to get into a decent position to move stuff. I used to do sub-d modeling in Silo where pressing crtl will let you move vertices around parallel to the viewport. That's highly intuitive, but over time I found myself evolving to the 'slower' method of doing per axis movement since I didn't need to rotate the view constantly in order to get precise tweaks. So, I personally often prefer to take the ugly and slow 'long shortcut'... mileage might vary 
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.