News | Forum | People | FAQ | Links | Search | Register | Log in
Mapping Help
This is the place to ask about mapping problems, techniques, and bug fixing, and pretty much anything else you want to do in the level editor.

For questions about coding, check out the Coding Help thread: https://www.celephais.net/board/view_thread.php?id=60097
First | Previous | Next | Last
FireAmbient 
Also, the "FireAmbient" entity way worked, however, I thought it might be better to use the method you suggested first, to give the actual torch soundtype: 0 and noise1: raven/flame1.wav

That way (with the raven/flame1.wav) didn't seem to work though, is there maybe another field that it needs to play the sound, like a sound_radius or something?

Also, is there any way you could suggest that I learn about all these hidden variables? It seems to me that it's important to know how to modify values beyond what the editor 'wants' you to see.

Thanks again for the help : ) 
BSP 
Source Code 
I've never actually played Hexen II (looks interesting tho), but the hcc source code contains all "entities".

Each entity is actually just a function name in the code. When a level is loaded, all entities are found and their corresponding function is ran. You probably won't find FireAmbient on any fgd or entity definition file because it was really only intended as a way to quickly add the ambient in the code fotr all the fire lights without as much copynpaste.

Source can be found here: http://www.insideqc.com/h2tut/h2started.htm

sound.hc has the code for sound_ambient. 
 
No joke Hexen 2 is one of my all-time favorite old games. I liked Hexen 1, but I actually have a lot more fun playing Hexen 2. I think it has to do with that in Hexen 1, a lot of the levels/worlds start to feel like abstract ideas rather than actual, physical places. In Hexen 2, you have physical "real" landmarks, like a castle with a drawbridge, a mill, a pasture with trees, a medieval butcher's shop with a meat cellar, etc.

Some levels (like Winnowing Hall) in Hexen 1 had seemingly "real" locations too, but once you get to the HUB in H1, it's like: "This is the ice world" "This is the fire world". They just seemed a little abstract.

Furthermore, in the Quake engine, you can sprint around really fast (at admittedly ridiculous and unfair speeds if you exploit it - there is no stamina bar) and jump and dodge projectiles and stuff.

Most Hexen 2 levels have the format of: Bring you past a locked door, or puzzle that you can't solve yet, and also give you another pathway. The puzzle piece/key being down that pathway, which means you have to backtrack to the locked door after you find it.

Apparently, (I read some reviews) some people hated the backtracking and puzzles aspect of H2. They got frustrated, and either gave up and stopped playing, or cheated to skip past. I never had such problems. I think the first time I beat Hexen 2, I was like 12 and I did it without guides. Some puzzles I never understood the logic for, (there is one puzzle in the Egypt world where you have to align two wheels to constellations or something) but can be solved by guessing and checking.

i.e. A+A no, A+B no, A+C no ..... D+E no, D+F no, D+G "sequence complete!"

And personally I love the art style and enemies of H2. They all look awesome. And just like in Hexen 1, you feel very "alone". There's no NPCs or shops, just you, and a bunch of demons and weird puzzles in creepy locations. 
Core Function Calls? 
So I loaded up all of the .hc files in Visual Studio so that I can easily ctrl+F through all of them at once -

The definition of FireAmbient is :

void ()FireAmbient =
{
precache_sound ( "raven/flame1.wav");
ambientsound ( self.origin, "raven/flame1.wav", 0.50000, ATTN_STATIC);
};

Well, I know that I already have "origin" defined in my wall torch (it's automatically there), and I know that that second field is "sound1" which I've added too. I don't know what the 3rd field (0.50000 value) is, but I assume it's either something that controls the radius or volume (or both), and I assume ATTN_STATIC is for sounds that just constantly repeat (not sure), but I know the value for it is "3", but I don't know the field name that it goes to.

So I figured I would just look up the function definition for ambientsound() but it's just like... not in any of the files? And neither is sound(). There are plenty of CALLs to those functions, and the DECLARATIONs are there:

void (vector a, string b, float c, float d)ambientsound = #74;

-- but no definitions.

Btw, placing the separate FireAmbient entities works just fine, but I was hoping to get the ambient sound to work by coming straight from the torch entities instead -- really this is mostly for learning. Now that I know I can look at the code, things are much clearer, and if not for these core function defs missing, I assume I could've found out what those missing fields were. Any ideas? 
 
Also, just to avoid confusion:

sound_ambient() IS defined in sound.hc. But sound_ambient() calls something called ambientsound(), which is the one I can't find the definition for anywhere. 
Ambientsound() 
After googling a lot I finally found this piece of code in some Quake dev forum post:

ambientsound (self.origin, self.soundpath, self.vol, self.attn);

This would imply that those missing fields (3 and 4) I was looking for were simply "vol" and "attn". Unfortunately when I tried them -- I added "vol" "0.5" and "attn" "3", which are the same values that FireAmbient would use -- I got "VOL is not a field" "ATTN is not a field" in the Hexen 2 console upon loading the map.

Hmm.. 
Builtin Functions 
They refer to #78, #65, etc. Those are predefined by the engine.

Ah, no, you can't add sound1 to the torch. The torch already has its own function. If you make a FireAmbient entity you'll have to put it next to your torch. 
 
Darn, well that's just as well, it works nicely that way, but was curious as to how flexible things can get with the custom fields, etc

Thanks once again, I've already learned a great deal in the past few days. I guess I should probably register here by now.

Hopefully this will all result in a new custom mission for H2, but we'll see. I've mapped for a lot of older games before, but mostly I made multiplayer DM/TDM maps, which are admittedly a lot easier to make since you don't need to worry about scripted events, puzzles, AI etc, and are always limited to one single map. 
@Nemesis 
Some trivia. The guy who created BSP was hired by Valve and has been there for 19 years. So BSP most likely landed him his job there. And I assume he worked on Hammer as he's a tools programmer for Valve.

I've used BSP a little bit here and there. The primitive shapes are very handy. 
 
That is pretty awesome. I haven't used the primitives much yet. I find the vertex-drag mechanic and clipping plane feature pretty cool.

Vertex-dragging in UnrealEd 1.0 (and even in UED 2.0) is pretty horrid and painful. :) 
Help With Transparencies 
So I've got the Frozen fever...

https://i.imgur.com/jwl7mPa.jpg

I'm having trouble with using the alpha key on the blocks of ice in Elsa's castle. For one its really difficult to light them with any consistency. Second problem is much worse, when one transparent brush is in the player's line of sight in front of another transparent brush, the brush behind will "bleed through" the first brush making it invisible.

Look at this image, the ice bridge is transparent, and the crystals behind it bleed through:
https://i.imgur.com/mct0Xa8.jpg

It seems like something from the Sega Saturn that couldn't deal with multiple transparenices... This is Quakespams v0.92.2. Any ideas?

Not too happy with how Frozen looks in Quake, but wanted to release this in the Christmas jam. 
 
Transparency depth is a problem that games can struggle with today even.

https://www.khronos.org/opengl/wiki/Transparency_Sorting

Most quake engines don't really handle it very well. 
Transparencies 
transparency depends upon the engine, the qbsp, lightmap/surface sizes, texture order, view direction, entity order, etc

if you take the stance that overlapping is bad then an engine could draw transparencies as depth-only, followed by proper alpha blending with depthfunc(equal). This avoids all the above issues(except engine, obviously). FTE uses it for viewmodels and q2 powerups both of which its awesome for, but it'll look much worse where overlapping is actually intended.

you might want to try using separate func_walls for the different parts, as that should be a little more deterministic (instead of only one wall appearing infront, the entire thing will, yay).
Ultimately transparency sucks and you'll get different results in every single engine, so good luck with that.

the other option is to increase the (vertical) distance between the spire and the stairs, avoiding noticeable overlaps that way. 
Elsa's Not So Transparent Castle... 
I didn't realize how cumbersome and complex transparency effects were. Thanks for the info Pritchard and Spike. I do think increasing the vertical distance between the bridge and spire is a good option. Although I don't think an entirely transparent castle is feasible anymore, the bleeding is just too jarring.

I've already started making some new different coloured ice textures as an alternative, and I think it will make the lighting better, with the castle non-transparent, and perhaps only a few bits here and there semi-transparent for effect. Aagh, and it only took a few seconds to make the castle in the film... 
 
Those stairs are insane. Good stuff Redfield. 
Merge Wads? 
What is the best tool for merging a few wads into a single wad?

I extracted a wad from all of the medieval-themed BSPs in Hexen 2. And since there are some textures shared across those levels, I'd need to overwrite any duplicates. 
 
I've tried "SLADE3" but it seems to crash when loading the 5th wad, and I could maybe get around that by combining them one at a time and saving the combined wad as I go, but it also doesn't seem to have a feature to remove duplicates. It has a feature to DETECT duplicates, one by texture name, and one by reading the data, but the "Remove duplicate textures" command from the drop-down doesn't seem to work.

Is there a simpler CMD tool that can merge WADs? (and also properly deal with duplicate textures)

I also tried something called SlumpED but it doesn't support H2 WADs 
Re: 19071/merge Wads 
Wally 
Re: 19071/merge Wads 
Alternative answer: TexMex

1) Open wad (or bsp, automatically converted to wad)
2) File --> Import --> select next bsp/wad
3) Repeat as necessary
4) Profit!

Works great on Wine too. 
 
Thank you :) I had a little trouble with Wally and being left with duplicate textures still, that's most likely my own fault, but was able to merge wads with TexMex

In case anyone uses this in the future for Hexen 2, the textures will display all muddy inside the tool (palette difference with Hexen2-Quake), but the actual textures are actually fine.

Thanks guys 
Compiling Quake 2 Maps... 
I learned how to compile Quake 1 maps by dragging and dropping the map file into the various different types of compilers. And yet this doesn't seem to work with the Quake 2 compiler tools I found after doing a bit of googling for them. How exactly do I compile Quake 2 maps? Is the process different than for Quake 1 maps? 
Making Complex Shapes In Trenchbroom 
hey guys i was wondering if there are ways to copy geometry from other levels and put them in your level. For example,I wanted to make a arch (like the one from e1m2) and i ended up making a shitty one _here's a pic) https://gyazo.com/fcf78a8b2384b9e6598127d8f34fff2b
but i can't get any of the arch textures to align to it very well. also does anyone know of any guides on how to make complex shapes with brushes? 
@19077 Trenchbroom Help 
In order to make more than just simple shapes in Trenchbroom it will take a lot of practice and good understanding of both clipping tools and vertex/edge manipulation. Make sure you read and understanding all the keyboard shortcuts for these in the Help Manual.

If you want to see an example of how to make a good arch, I suggest you download this Knave prefab set, which includes the Knave WAD.
https://www.quaddicted.com/webarchive/kell.quaddicted.com/knave.zip

Look at the .map to see how the arch is made. I strongly advise you to re-create this arch on your own, using clips, or edge manipulation. Recreate the arch, and then create it again on a different size scale for practice. Make sure you can create this arch on your own, so you can make your own complex geometry.

Aligning the textures depends on if you are using a texture meant to wrap around the curve and/or if you use a texture with bricks on the same scale as each cut in your arch. You need to think and plan mathematically: What is the size of the texture? If it is a 32x32 brick, each cut in the arch should be at least 32 in length so you can fit a brick in appropriately, or each cut should be 64 so 2 bricks can fit, etc. Again, you need to understand the texture allignment tools in TB to play around with wrapping the textures.

Take a look at the .map in the file and practice more. Also you can find .maps in many Quake maps on Quaddicted. 
 
Basic intro to arches I made last year:

https://imgur.com/a/tmtmz 
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.