|
FireAmbient
#19055 posted by Nemesis on 2017/10/20 03:52:58
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
#19056 posted by Nemesis on 2017/10/20 03:54:07
Source Code
#19057 posted by Qmaster on 2017/10/20 04:11:07
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.
#19058 posted by Nemesis on 2017/10/20 05:19:04
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?
#19059 posted by Nemesis on 2017/10/20 10:43:43
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?
#19060 posted by Nemesis on 2017/10/20 10:50:40
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()
#19061 posted by Nemesis on 2017/10/20 13:49:11
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
#19062 posted by Qmaster on 2017/10/20 14:04:51
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.
#19063 posted by Nemesis on 2017/10/20 14:52:55
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.
#19065 posted by Nemesis on 2017/10/20 20:22:31
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
#19066 posted by Redfield on 2017/10/21 06:36:08
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.
#19067 posted by PRITCHARD on 2017/10/21 07:39:29
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
#19068 posted by Spike on 2017/10/21 19:00:40
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...
#19069 posted by Redfield on 2017/10/21 19:20:12
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...
#19070 posted by muk on 2017/10/21 20:56:50
Those stairs are insane. Good stuff Redfield.
Merge Wads?
#19071 posted by Nemesis on 2017/10/22 10:51:46
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.
#19072 posted by Nemesis on 2017/10/22 14:44:22
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
#19073 posted by muk on 2017/10/22 14:53:00
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.
#19075 posted by Nemesis on 2017/10/22 16:01:56
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...
#19076 posted by hakkarin on 2017/10/23 23:53:38
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
#19077 posted by Winkyjuice on 2017/10/24 00:41:05
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
#19078 posted by Redfield on 2017/10/24 04:13:48
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.
#19079 posted by muk on 2017/10/24 04:55:36
Basic intro to arches I made last year:
https://imgur.com/a/tmtmz
|
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|