News | Forum | People | FAQ | Links | Search | Register | Log in
Jackhammer 1.1.855 Public Beta Is Out!
Hi all!
We are glad to present the new version with another bunch of bugfixes and improvements. ^^
Thanks to everyone who helped us with suggestions and bug reports!

New version highlights:

* Dynamic Sky Rendition: Jackhammer renders skyboxes in the same way games do. In addition, there are layered clouds in Quake, rotating skybox in Quake II, and shader effects in Quake III supported. To facilitate the choice of a certain sky in map properties, a drop-down combo with icons was added.
* Improved Arch Tool: arch creation instrument got new abilities. Now it allows triangulation upon creation, fitting arches to selection box, estimation of proportions using a grid. Also it is possible to create smooth ramps.
* Keep Internal Connections: option to preserve internal connections (targetname-target links) in entities during copypaste and cloning (i.e. dragging with Shift pressed) operations.
* Snap to Grid Revised: subsequent calls to it change anchor point, looping through all eight bounding box points (previously only the lower bounding box point was used as an anchor). In Vertex Manipulation mode this instrument snaps using selected vertices, thus enabling alignment of the whole object that ensures the certain vertex on the grid. In addition, VHE-style snapping to grid during movement of the selection was added.
* Texture Repeats: added special mode to draw borders of repeating (tiling) textures in a 3D-View.
* New Curve Types: now it is possible to create for Quake3 such primitives as Exact Cone, Exact Cylinder, Exact Sphere - correct round variants of cones, columns and spheres.
* Additional Instruments: ability to connect logically two entities using their target and targetname fields using Ctrl+K, separate tie to entities function. Upon automatic creation of the default room, the editor now can paint invisible faces with NULL or caulk texture. Improved Paste function - now it preserves an original third coordinate in a 2D-view.
* Multilingual Support: switch to your native language when using the editor! Now there is no need to consult a dictionary to find out what either menu command does, or to understand a reason for an error. Presently there are English, Russian and Ukrainian languages supported. Languages can even be switched dynamically without restarting the editor.
* Lots of improvements: the new version traditionally contains lots of bugfixes and improvements in comparison with the previous release. The editor became much more stable and functional, and now it is a beta. Please view a changelog for the details.

This version supports Quake, Quake II, Quake III, Half-Life, Gunman Chronicles and their modifications.
Supported operating systems: Windows, Linux.
Supported architectures: x86 (32-bit), amd64 (64-bit).

Web page
Feature list
Changelog of version 1.1.855


Again, thanks for the feedback, some features were added because of your requests.
Merry Christmas and a Happy New Year!
Please correct the "presend" typo in the second sentence. There should be "present" of course, but it seems that I can't edit the post anymore. 
but the one issue that hasn't been fixed yet is a texture shift when moving a brush with UV-lock modified texture scale, while texture lock is enabled. 
Xaerox, May I 
start asking for stuff? It's Christmas...

In Tools/Options/General/Window Setup, a checkbox "mouse hover activates window" (enabled when "Use independent window configurations" is checked).

When using independent window config, just passing the mouse over a window would be enough to make it the active MDI child. You already detect which window is under the mouse when we press arrow keys, right? So, just give focus to the window under the mouse.

This way I could use an independent 3 windows setup exactly like the standard single window divided in four. That would free the user from the standard single window setup.

I tried to ask for it before, but it's hard to explain, even worse in English.

P.S.: still looking forward for Volatile Engine :)) 
And still hoping for that sweet, sweet tablet support. Maybe next version. :)

But the sky rendering is bitchin'... 
Dynamic Sky Rendition 
I have:

- worldspawn "sky" property set to "interstellar_";
- C:/dev/quake/work/markv/id1 is my Base Game Directory (at Tools / Options / Game Profiles / Configuration Settings)
- At C:/dev/quake/work/markv/id1/gfx/env there is interstellar_bk.tga, interstellar_dn.tga, etc., all six 512x512 images;

The skybox doesn't render. I see the scrolling sky texture only. What am I missing? 
Thanks For Comments! 
Sorry, I forgot about that. Will be fixed in the next release.

Same thing, will work on tablet support a bit later. Most likely it will appear in the next version.

1) Ok, I've added your request to my todo list. Sounds not too complicated.
2) Skyboxes are currently supported only in Quake2 and Half-Life, where they come out of the box. Quake instead uses a special 2-image texture, and JH uses it to draw cloud layer. If you tell me which custom engine supports skyboxes (and which is the most common), I'll be able to test them and then add to the Quake profile. Additionally, a FGD should also be modified: sky(string) should be replaced with sky(skybox). This means that a FGD for that custom engine should also be included to JH installation. 
1) Yay! Thanks!

2) Sorry, you're right. I misunderstood the description.

I believe that engine would be Quakespasm, the one recommended for the map jams. 
Curve Tool Additions 
This stuff alone makes this update fantastic. There were a lot of weird bugs and size/positioning problems with the standard hammer curve tool that seem to be fixed here, so yay!

Will test thoroughly over the next few weeks :) 
Is there any documentation for Jackhammer? I can't seem to find it. 
It's basically hammer. So find some hammer docs if you're totally new to this editor. 
Fantastic Update 
For adib - You can try this small utility which I believe has the functionality that you are after. Of course it also works in any other Windows program.

The sky rendering is a big plus for this version. I haven't tried out all the new features yet, but I must say you have done excellent work. 
Absolutely Fantastic 
This is great. Only thing I really want now is light preview, would save a huge amount of time for compile, tweak, compile again when testing lighting. 
Light Depends On The Compiler� 
and the light compiler needs a compiled BSP file, so it's not possible to preview the actual results.

Iterating is fun! 
Installed It Today 
Thanks for the F hotkey!

The sky rendering is great, but skies shouldn't be shaded. Also, they move too fast, and that's distracting � since JH is just an editor, there's no need to make them move as fast as in Quake; a subtle slow speed is enough.

Fun fact: Before figuring out how to create the molten mapping, I was thinking of rendering liquid surfaces in a similar way to your sky rendering. 
1) Skys shouldn't be shaded. May I take a look at a screenshot?
2) Shy speed is taken from Quake to satisfy a WYSIWYG paradigm.
3) Liquid surfaces can't be actually rendered as in the game because JH doesn't do polygon subdivision (to keep things simple). This also applies to Q3 shaders with "tesssize" + "deformvertexes". 
Typos again... Please read "skys" as "skies" and "Shy" as "sky". Sorry, we're celebrating xmas today. :) 
Ok, I'll take a screenshot when I get home. But switching between textured with shading and textured without shading is enough to notice the difference on the skies.

WYSIWYG is not necessary in this case, IMO. And what I like about the way you're rendering the skies is that its projection follows the shapes of the brushes, and this helps us to keep in mind the actual size of the area we're building. If it was exactly like Quake, it would be harder to tell each sky brush apart in the 3D view.

No problem, there's no need to animate liquid surfaces. Though making them translucent could help. 
If Sky Is Shaded, There Must Be A Bug 
It should look like this:

You are right, sky rendition in JH is not exactly same as in Quake, and that's also because of lack for face subdivisions.

It's easy to make water textures translucent, but there will be a confusion, because they'll become solid in the game. 
Most current Quake engines supports translucent water nowadays, even via software rendering.

My current approach is to hide the water brushes when I want to see through them. 
Showing the sky brushes' shape in the editor is very important. That's how JH does now. Animating the texture is important to see how a sky texture work in engine. Not hurting my eyes atm. An option to make liquid textures translucent would be nice. And what about rendering "{" transparency? 
IMO, WYSIWYG features for sky and water and such are less important than usability stuff like proper tablet support. Just my 2 cents. :) 
2adib: I'm not well familiar with modified Quake engines, sorry. I've made an editor for vanilla Quake actually, and there are no transparency. "{" textures are supported in Half-Life profile. I'll think of adding their support to Quake, if you tell me which color index is transparent (in Half-Life, this is the a color index 255 in a palette, but Quake shares the same palette between all the textures).

2WarrenM: I remember that, it's already in a todo list for the next version. 
Sorry, you're right. Transparency of "fence" textures is implemented by an alpha-channel TGA external texture, outside BSP file. It's an agreement between ports like Quakespasm, Fitzquake and Darkplaces, definately not a vanilla feature. Maybe when you make a Quakespasm profile it would make sense. 
"I remember that, it's already in a todo list for the next version. "

Oh, I know ... I just like banging my little drum. :) 
Retroquad and Super8 uses the color 255, and I bet the hardware-rendered engines with "fence" texture support also supports it.

Retroquad even goes a step above and doesn't require the "{" naming convention. This allowed for animated alphamasked textures. 
Really great update, love the fixes and new features. Thanks for correcting the texture alignment issue that had been giving me trouble before, I've now made the complete switch over to Jackhammer! 
Can I Submit Translation? 
I'd like to try and do a translation into a new language but cannot find any text files with captions. How can I contribute to that? 
I can give you necessary files, please email me: support at hlfx dot ru. What language do you want to translate into? 
Can't Send Email To Provided Address 
Can't send email to the provided address. Are you sure it's correct? Is it just "support" or maybe something more?

I've tried to find a different address on the jackhammer website but couldn't see any. 
It Is Correct Actually 
Just tested it from another email address.
Ok, then PM me on ModDB:
or on Steam: 
OK, Message Sent Through Moddb 
OK, message sent through moddb.
Also one potential bugreport (not sure yet if it's a bug or I'm doing something wrong). 
Customize Allowed Texture Formats? 
I'm using a modified quake2 that can use both TGA and WAL textures. Is there a way to add TGA as an allowed texture format? Maybe in config?

I've learned that md3 models can be shown along with md2 and now would like to do the same with textures. 
...ok, I read in another thread that modification ability would come when SDK is released. 
So Why Is This A Thing?

Latest JH
Ubuntu 15.10, using opensource radeon drivers

Something to do with the extraction process? Cheers. 
Looks Like Palette Wasn't Hooked Up 
Do you have a correct palette file set in the options? 
I Can't Even Click The Button :( 
I Fixed It. 
the button is still borked, but I was able to manually enter the quake.pal into the config file.

thanks :) 
If the button is disabled, then you definitely use a wrong game profile. Map type must be "Quake" for Quake. And you set either Half-Life or Quake3, that don't use palettes. 
Hmm, Some Requests Or Something 
1) In the FGD format you can specify the studio("progs/whatever.mdl") header property on an entity, which will render that entity using that model in the editor. If you leave the model string empty it will use whatever you put in the "model"-key for that entity.
Unfortunately in Quake (and AD especially) the model key is rarely used straight off, since it is treated specially by the engine, and it's instead set using "mdl" or something similar.
It would be great if you in the studio() header you could specify the property name that controls the rendermodel. Some of the other header properties allow you to specify property names already (like sphere), so I'd imagine some functionality for parsing it already exists? Like, if the contents between the parenthesis is quoted, treat it like a model string, else as a property name, fall back on the "model" key if that fails.
This, combined with using the studio datatype for the actual keys would make Jackhammer a much more WYSIWYG editor.
My current workaround is to make a duplicate "model"-key and make sure I remember to set both keys on the entity, and that I remember to remove it before compile.

2) I would really love it if there was a way to snap an entity's origin to grid. As it is now the snap to grid command only snaps the corners of the bounding box, which can be fairly useless on a single entity if the bounding box is weird.
My workaround at the moment is to open preferences, check the "Snap selection to grid when dragging" box, nudge the entity so it snaps, open preferences and disable the snapping again.
Alternatively, if there was an option to have a single entity selection be exempt from the standard snapping rules, that would be great as well.

Other than that I'm really enjoying working with this editor! Thanks for doing good work! 
Please consider, if you're going to add more flexible model support, to use TrenchBroom's simple expression syntax, or let's work together on a better one. It's described in detail here: 
1) Property name is specified in the following way. Add a key named whatever you like, to a FGD class description, of a type "studio". Then add the "studio()" token. JH will take model name from a value of that key. And if the key is not set or missing, it falls back to a "model" key.

@PointClass studio() = custom_model : "Model"
mdl(studio) : "Model File"

The same applies to other keys: there are special key types in JH to override defaults. E.g. "scale" type for as a custom scale key, "flags" type for a custom spawnflags key, and so on.

2) I've changed a behavior of a "Snap to Grid Individually" command, so it snaps point entities using origins instead of bboxes. This will be exactly what you need. :)

Your expression syntax is very good and one day I'll definitely will add support for it!
The only thing I don't understand is a need for colons. In Qt framework, it is used to tell Qt what a file should be looked for in resources instead of a disk filesystem. But what's the purpose of the colon in TB? 
UPD: read "And if the key is not set or missing" as "And if the key is missing from FGD". The presence in a particular entity doesn't matter, key handlers are set up for gamedata classes, not entities. 
1) I swear I tried that exact setup and it didn't work, but I'll try again on Monday. Maybe I missed that permutation of the keywords.

2) The snap to grid change sounds perfect, thanks! 
The colon is legacy from the DEF file syntax, and in TB2 it has become optional. I'm going to leave it out in the docs for TB2, as it is ignored now anyway. 
A Nice Side Effect 
If TB2 and Jackhammer were to support the same syntax extensions in FGD files, we could share our FGDs. TB2 can already read JH FGD files, but it ignores some of your additions (such as the @Main class). 
You mean "@WorldClass"?
Well, it was added just in case in some engines worldspawn class will be named something different.
It will be nice, if not support FGD extensions of each other, at least parse without errors, silently ignoring them. 
No, I mean "@Main". I can't find it right now, but there was an FGD file that had such a class and I assumed that was a JH addition. I suppose I was wrong. I haven't come across an FGD containing "@WorldClass" yet, but it sounds like a good idea provided there are such engines. 
Memory Issues 
It seems that Jackhammer isn't freeing memory resources for the current mod when closing the file. When I have my quake map loaded, it uses 277MB but when I close it it doesnt free up that memory. FYI. 
Of course it doesn't free memory. Why should it?
Most of the memory is eaten by textures, and no one wants them to be unloaded and then precached again for each map opened. Instead, JH doesn't unload them until the editor itself is closed. As for the map geometry it is certainly freed upon closing a map. 
freed memory often isn't returned straight to the OS, either - applications just hold the pages until they need them again. 
Ok, I just tried and I can confirm this setup does NOT work:
@PointClass base(Appearflags, Targetname) studio() size(-16 -16 -16, 16 16 16)
= misc_model : "Custom Model" [
mdl(studio) : "Model to load"

It just displays a bounding box.
Replacing "mdl" with "model" works, but that's not an option.

This is in Jackhammer 1.1.855 64-bit 
Very Interesting 
Have just tried exactly what you wrote. And it worked! O.o.

Are you sure you don't have another misc_model defined in other FGD or earlier? In the case of duplicates JH will use the first definition. Please rename the entity to misc_model2 and check whether it helped. 
Ah, I Figured It Out. 
It must be that the .jmf format stores the rendermodel and doesn't bother refreshing it when the fgd is updated.
All my old misc_models had the bounding boxes, but then I noticed any new ones I made correctly showed their models. I selected all my old ones, changed them to some other type, changed them back, and now they all work.
So yes, the fgd entity studio() setup you posted works correctly. 
Oh yes, specific key overrides are stored in JMF, I forgot that, sorry. 
Check For Problems Issue 
When checking for map problems, if I use an entity not defined in the fgd and give it a targetname, any entities targeting it will give an error: "Unmatched 'target' field ('name')" Would be nice if the editor would check all key|value's for the 'targetname'. 
Unfortunately it is not possible after I've got rid of hardcoded keys. Editor doesn't know what is it - "targetname". It searches for matches between target_source and target_destination FGD fiels. If an entity is not defined - it is assumed it has no targetname, target, model, scale, rendermode etc. 
I have a request that will enable some Quake hacks but doesn't harm the editor.

In the Entity Report window, entities should be sorted by the user. The grid is sorted by entity class today, but it should also be sorted by name and target if the user clicks columns titles.

And best of all: there should be Up and Down buttons, so the user sort the entities manually. What for? The Quake MAP exporter would write the entities in the order they appear at Entity Report window. Then some Quake hacks would be possible and better controlled (ask Preach).

The entity list order should be saved in the JMF file, so the customized order don't get lost. When you open a map (JMF or MAP), the Entity Report window would be populated following the order the entities appear on it. So, the entity order only changes on user command.

This functionality wouldn't harm other games and would be useful for ones where entity order is important.

See? It's so easy! I just have to write all this down and keep bugging you about it. 
Bug Report 
The latest version of JH sometimes messes the texture information on faces after rotation. That causes light (latest ericw's) tool to interrupt. This issue can be fixed by finding such faces (they look like the texture is overextended there) and selecting world or face checkbox there. 
That's not really a bug report. They can't do anything with that. Are there repro steps they can use to see the bug happen reliably? 
Hm Let Me Try One More Time 
I can't say there's a 100% way to reproduce that, but the most often ii happens if you have a brush with a non-rectangular shape that has a face with UV-lock aligned texture (the latter is not nesessary). Then I clone such brush using shift+drag and rotate it 90 degrees using handles (fixed 15-degree rotation). Then I repeat these steps with each cloned and rotated brush.
Texture lock is on, scale lock is off, UV lock is usually off.

This is also the WTR that Y-scale of UV-lock aligned textures somehow changes when cloning and rotating brushes that probably causes all other problems. 
If you check for problems those faces should be listed as having bad texture coordinates or something. 
What Happens Is 
You set the texture to be projected directly onto this face first, then you rotate the face but not the texture projection, which leads to the texture coordinates being co-linear, which leads to light not being able to create a lightmap page for it. 
There Is A Button In The Toolbar Somewhere 
That I think toggles between if it uses world or face projection by default. Try pushing it?
I think that's what it does anyway? 
I Wonder 
If that button works when rotating brushes and not only when creating them. Need to check it.
I often see that cloned rotated brushes loose both world and face checkboxes on its faces. 
For the record, I've seen this error as well but never had enough info to report it. I generally run the map check and auto-correct them all. 

Please make it so brushes don't lose their grouping if I clip them. 
Nice Name Color Gradient Lads 
The Next Oned 
More Cool Shades 
But also body text!

I have a couple of requests related to the grid in Jackhammer, if I may be so bold:

1.) Is it possible to allow the 2D viewports to pan beyond the edges of the grid? Working at the extremes of the world isn't common, certainly, but on occasion I have reason to be out there, and having the edge of the grid locked to the edge of the viewport is awkward. I'd like something like Hammer 3.4, where you're allowed to pan a viewport as far as having a grid edge right in the center, or Hammer 4.x where you can pan even further. Having to work with my eyes staring at an extreme edge of the interface is a bit uncomfortable.

2.) The recent release of Sven Co-op 5.0 included an update to the max world extents, from +/- 4,096 (total 8,192) units to +/- 131,072 (total 262,144) units. It's an insane amount of space that most people will never use, and there seem to be some issues with it at the moment (which I brought up on their forums here), but I believe they are being looked into, and in the event the bugs are addressed it'd be nice if JH was updated to allow access to that space. Currently the grid setting maxes out at 32,768, would you be willing to raise that limit? 
"It's an insane amount of space that most people will never use,"

Somewhere deep and terrible, mfx rises from his slumber... 
I'm afraid what will happen if you give that kind of power, especially when people like Tronyn create such giant maps... 
have fun vising a level that uses a +/- 131,072 world space.

RIP all pc's forever. 
Huge Map Extents 
are pretty useless unless you plan on whopping terrain vistas, and without a special way to efficiently handle terrain in the compilers and engine, it's just gonna end in tears.

AFAIK the quake 3 engine supports terrain and (in theory) +/-128K map extents. 
Hee Hee 
This stuff is fun to fantasize about, but before anyone gets the idea that I'm a bigger goddamn idiot than I actually am: to be clear, the goal is not to let people build gigantic open rooms, or extend a Tronyn-style map to 128k world bounds at the same level of detail. I'm assuming, at least, that the purpose is to let people spread their architecture thinner, so to speak. Less detailed worlds, but built over a larger distance, could be appropriate for some designs.

But I really don't know what the goals were for this update, I just noticed it in the changelog and wanted to play around, only to find Jackhammer wouldn't let me get out as far as I wanted to, which meant sticking with their version of Hammer 3.4, which is currently a little behind Jackhammer in features.

It's XaeroX's editor, and if he doesn't want to do it I won't be a pest, I only thought it worth seeing if the Sven flavor of Goldsource is something he was interested in. 
While 8192 Is Nice.. 
The more I refine my largest map, the smaller and more concise it becomes. I find more and more that the most enjoyable areas of the level are actually the ones that use space better and reuse areas in clever and logical ways. I've shrank down a couple massive setpieces simply because they were oversized for the level layout. But sure go ahead and make a ridiculously large would let us pan out far enough to...oh wait...itendswithtens already has a fix for that. 
Cool, I can finish my e2 mix-up map now. 
why just e2?

put every id map into one mega map. For science. 
With Jackhammer 
@Kinn, you now can without worry of running out of texture memory. Also...the maps loop back on doesn't work. I tried. 
Surface Properties Hot Keys 
I'd love some hot keys that are specific to when the "Surface Properties" window is open.

You can't do any brush editing in this mode, so I would love to be able to do things:

1) Use the cursor keys to nudge textures along their U/V axis
2) Use CTRL+R to rotate selected faces by 90 degrees, like it does with brushes normally
3) The flip hotkeys, same deal

This would make texturing faster and more fluid. 
Ctrl+keys to scale up/down x/y 
You mentioned earlier that the source would be available under GPL license, when will this happen?

I'd like to see support for OS X, as this would be the only tool to do so except for GtkRadiant�which, to be honest, isn't my ideal editor. 
Don't Forget About TrenchBroom 
Sorry for plugging my own tool in this thread, XaeroX ;-) 
I think TrenchBroom is the best choice.
Case closed. 
I need my 2D. Jackhammer rocks. 
netradiant, bisnitches. Just seems to take less button presses to do what you want. 
Oh Wait 
This supports brush validity restriction in vert manip mode...lack of that was what what stopped me using hammer before...I might try this again then. 
Eh, it's all muscle memory. 
I Think He Meant For OS X 
Solid Render Problem 
So i was trying to work with the blue background textures

I converted them to func_wall/func_illusionary and i have put rendering to solid and 255 FX

The blue part of the texture is still visible, i tried and other methods...

Any chance of getting a download link with the previous version until this gets fixed? 
I noticed a reproducible crash in linux when loading a map from the recent map list, before the check for updates has completed. 
Post A Reply:
Website copyright © 2002-2018 John Fitzgibbons. All posts are copyright their respective authors.