This tutorial is a very early work in progress. It will get filled in over time.
Complementary to this guide, it would be a good idea to write a dedicated article which tracks and documents progress in TB's GoldSrc support. That way, some of the contents in this guide can get moved to that article, so this can focus more on what it takes to switch from J.A.C.K. to TB.
This guide outlines some basic differences between Hammer-style editors like
J.A.C.K., and
TrenchBroom. TrenchBroom initially had rather barebones
GoldSrc support, however over time it has been getting better.
This caused an influx of TrenchBroom Half-Life mappers, and some J.A.C.K. users even considered switching. In hopes of making that process easier and clearer, this guide was written to help People switch the Editors, and compare some of the important Aspects.
Another purpose of this guide is a means to track TrenchBroom's GoldSrc support. As new versions come out, the guide will be updated and, where applicable, mention the new/old behaviours. With that said, this guide is written with TrenchBroom v2023.1 in mind, and it is very likely that some of the differences here are already incorrect in the latest development commit, since TrenchBroom is very actively updated.
This guide was written for people with existing mapping experience. If you are entirely new to the field, there is no need to read this guide. Instead, you may begin by reading these:
If you would like to set up TrenchBroom, there is:
Making the switch
Transitioning to a new map editor, especially after years of using one and the same, can be a little difficult. All of that muscle memory is now potentially in the way, and keyboard shortcuts are different. Everything seems to be different. It is a bit like moving into a new city.
There is a certain amount of time that is needed for you to reach the same level of proficiency in the new editor as in the old one. For some people, this is just a couple of months, for others it may be a year. Depending on how much free time you have, for this reason alone, it is probably not worth switching.
Another thing that can be said is it's less about the tool, more about how you use it. Ultimately, the choice of tooling boils down to what you're most comfortable with. So if you're already comfortable with one, then:
Why even bother?
Sometimes it may be a new, attractive workflow. Other times it may just be better quality-of-life features. If you are reading this article, chances are you may already have a reason of your own. Definitely, in that case, keep on reading.
The core differences
J.A.C.K. and TrenchBroom have a fair bit in common:
- They support GoldSrc and Quake 1/2/3, among other platforms.
- They are brush-based editors.
- They use FGD files for entity descriptions.
- They can both work with .map files: open them, save/export them, send them to map compilers of your choice(AKA ZHLT for HL1).
- They have active communities of users, meaning there is a fair amount of knowledge out there about using them.
- They both do not support Worldcraft prefabs(J.A.C.K. partially Supports prefabs by using a Prefab World).
In the context of Half-Life mapping, their major differences however, are:
Area |
J.A.C.K. |
TrenchBroom |
Meaning |
General brushwork |
Done in 2D views, several tools for brush manipulation such as Select, Clipping, Vertex Manipulation etc. |
Done mainly in the 3D view, occasionally in a 2D topdown view. Several editing modes like the default mode, face mode, edge mode and vertex mode. Does not have any builtin shapes other than a cuboid. |
Overall it is a very different workflow, must get used to it. The lack of a cylinder primitive is not a showstopper, as there are established workarounds. |
Working with entities |
User-friendly keyvalue names, file browsers for different types of paths... |
Raw keyvalue editing for paths, smart editor widgets for a few certain keyvalue types, like a colour editor. No audio preview. |
Substantial difference. Will be less comfortable when working with ambient_generic and similar entities. However, basic trigger-target stuff is on par. |
Files and formats |
Full support of GoldSrc formats. |
Lacks sprites, animations on models (+skins, bodygroups). Full Valve220 and WAD3 support, however. |
Lack of animations can be troublesome when working with scripted sequences. |
Map compiling |
Simplified compile dialogue and expert dialogue with existing compile presets. |
Only "expert mode" without any presets. |
Possibly one of the greatest obstacles in switching to TrenchBroom, now covered in the TB setup guide. |
System requirements |
Supports very old machines and OSes. v1.1.1064 has been tested successfully on a 2005 Windows XP machine. |
Requires hardware capable of OpenGL 2.1, minimum Windows 10. |
This is insignificant to most mappers, but if you are using a 2007 laptop or Windows 7, you will not be able to use TrenchBroom. |
Development |
Closed-source, seemingly inactive. |
Open-source, relatively active, mostly based on feedback and community contributions. |
TB has considerably healthier signs of development and more Developer Updates than J.A.C.K. |
Concrete examples
The table above won't exactly give you a clear idea of what it's like to work with TrenchBroom, so let's cover some common scenarios:
- Creating rooms
- Button activating a moving platform
- Beams and zaps
- Zombie scripted sequence
- Creating terrain
In these scenarios, we will get to see all the small details, such as how textures are aligned, quirks when editing entities and such - and workarounds in case something is not available in TrenchBroom or J.A.C.K.
Scenario 1: Creating rooms
TODO: write this section.
TODO: write this section.
Scenario 3: Beams and zaps
TODO: write this section.
Scenario 4: Zombie scripted sequence
TODO: write this section.
Scenario 5: Creating terrain
TODO: write this section.
Conclusion
TODO: write this section after all above is done.
groups
do not carry over to J.A.C.K., nor do J.A.C.K.'svisgroups
carry over to TrenchBroom. To keep brushes together between editors, they have to be tied to a brush entity likefunc_group
.