|
Hello Again Everyone, I'm Back From The Dead, And I Got Questions
It's been awhile!
I remember coming here when I was just getting back into Quake, and was trying to learn to map.
Anyway, I need some serious help. I've been working on a dm6 remake with modern geometry, and some extra tricks to do for ease of movement. I had to come up with a way to make circular polygons, which turned out great (map features 16 sided polygons for some rooms).
This map is meant for competitive play in ezquake, and so far people have thought I've done a pretty good job. However, there is a problem with it, and it's the performance stability. After a bit of digging and talking to Spike, we identified the issue was overdraw with the entities. This can be proven by going to the worst spot in the map, disabling entities, and watching your fps go way up (tested in ezquake).
When talking to Spike, he told me of Hint brushes. He tried explaining how I would use them to make my map more efficient, but he arguably did a horrible job, and I'm still lost in what I am supposed to do with them, and where to put them.
So, as a final call to help, how the hell do I use hint brushes?
My map: http://www.mediafire.com/file/kod7fj4yod745wv/dm6_pro.map
Ignore the texturing, no one ever uses them anyway in the competitive scene. I used a self discovered way to make circular polygons in trenchbroom, but I'm sure many know how to do it. If not, I will be happy to share how I did it.
Continued:
You could also just post a map that uses them effectively, and I can try to figure it out by example. I have some knowledge in how vis portals work, but I obviously don't know enough.
Can You Post A Top Down Layout Of Your Map
#19282 posted by Qmaster on 2017/12/22 18:29:38
#19283 posted by Joel B on 2017/12/22 18:41:23
Hint brushes force a new cut when the compiler is creating vis portals. It won't magically hide stuff at point A from a player at point B, if point A really is visible from point B. However if point A is actually hidden from point B and the default vis portal creation is not recognizing that, then adding hint brushes can help.
In addition to Qmaster's link, here's another:
http://omnicide.razorwind.ru/wiki/index.php/Tutorials:Understanding_a_VIS_and_Hint_brushes
My little summary (and that link) is going from what I remember about Quake 3... if Quake 1 hints differ in some way then hopefully someone else can elaborate.
#19284 posted by ericw on 2017/12/22 19:33:13
IMO, don't bother with hint brushes until you have established that qbsp is making a bad decision in a particular spot. I guess you could just preemptively apply them and hope it works, but I doubt it will do anything.
First run in Quakespasm with "r_showtris 1" and post a screenshot from the slowest position. Maybe post your fully compiled (qbsp + vis + light) bsp as well.
Also check Darkplaces with "r_drawportals 1" - this will draw the actual BSP portals (the boundaries between leafs), which are what you would be trying to influence with hint brushes.
Uh
#19285 posted by bal on 2017/12/22 21:04:16
I just looked at the map, compiled it, it shouldn't be any slower than the original DM6, the e-poly seem really close to DM6, and the visibility is fine. I'm really surprised anyone would have performance (and stability?!) probs with it, and I doubt hints will help so much (could probably optimize some of the hallways a tad, having the main arena appear a bit later but it really wouldn't change much).
Some Mapping Questions
#19286 posted by SavageX on 2017/12/23 12:07:57
I aggregated some questions regarding how to pull off certain effects. I'd like to use unmodified id1 progs.dat, which makes certain things difficult or impossible, I guess, but perhaps I'm just not aware of some nifty tricks.
- some maps nowadays have transparent grates. I guess this is a new-ish engine feature (QS? FTE? DP?). I haven't had luck googling around on how this works - can somebody point me to some documentation?
- there doesn't seem to be a straighforward way to embed a .mdl in a map with id1 progs.dat - but is there a hackish way?
-I'd like to do an arena fight with a pentagram on the floor (that's the simple part). As the fight progresses, I'd like flames to ignite at the corners of the pentagram. When all five corners are ignited, the player is transported to a demonic realm (teleport or changelevel). As far as I know, light_flame* can not be toggled on/off. Of course, I can put standard light entities there an toggle then on, but then the question remains on how to make the flames appear. Ideas? (if this cannot be done, I can still change the concept to, e.g., have pillars with demonic symbols raise instead at the corners)
#19286
#19287 posted by Spud on 2017/12/23 13:29:45
- some maps nowadays have transparent grates. I guess this is a new-ish engine feature (QS? FTE? DP?). I haven't had luck googling around on how this works - can somebody point me to some documentation?
The last color of the Quake palette- that's the kind of funky pale pink one at the end of the last row- is defined as transparent when used in 2D UI/HUD elements, i.e. the main menu or the (in)famous light_globe entity. In engines that support the feature (alpha masking, fence textures, whatever you want to call it), that same transparency is applied to 3D stuff as well- entities and world geometry. It's as simple as using that color in the areas of the texture you want to be see-through, and adding a left curly brace- that's the pointy parenthesis, {- at the start of the texture's name to tell the engine it has transparent bits, similar to * for water or + for animation.
Two things to keep in mind, though- one, textures can only have one leading character so you can't have a curly brace and a plus sign, meaning no animated-textures-with-transparency (probably possible through a really complex set of cycling doors or something, but generally not worth it), and two, the texture has to be used on a brush entity like a func_wall or func_door or else you'll get unsightly grey or hall-of-mirror-effect areas where parts of the world are cut away from compiling and you can see through them into the void. ericw's tools include multiple entities specifically for this purpose ( func_detail_illusionary and func_detail_fence), as well as a handy entity field called _mirrorinside that makes those two types of entities automatically have their textures mirrored to the insides of the brush, meaning an infinitely flat, two-sided fence texture (i.e. Doom style fences) is done by just making a func_detail_fence, adding the mirror field, and applying the skip texture to every outside face except the one you put your fence/grate/whatever texture on.
Transparency
#19288 posted by Qmaster on 2017/12/23 23:45:59
And in case you mean glass, just add key of "alpha" and a value between "0.0" and "1.0". No quotes of course.
@ericw:
alright, I will try that. Darkplaces actually runs the map fairly stably, which is another reason why the ezquake renderer needs to be redone. There are plans to do that.
Introducing `-forcegoodtree` helped the performance by quite a bit, but those slow spots are still apparent. I don't feel or mind them, but apparently other players will, and will cause my map to be depreciated.
I can't exactly give data right now, I'm on a trip. However, I will get back to you through email when I do. I will post my fully compiled map here as well.
It does seem to be caused by entities. When disabling them in the renderer, I get a stable 1300 fps around the map in ezquake (AMD card on linux, which is why my performance is lower than usual, others get way into the 3000s and are affected a lot less than me). With them on, I get the slow spots in ezquake.
@Bal
That is true that the performance is similar between dm6, but one of the things I wanted dm6pro to be is better than the original dm6 in every aspect, including performance. If I'm able to improve it, I will. Also keep in mind that there are people in the competitive community that do notice this stuff, but I honestly think it's a buncha bs most of the time. They all play aerowalk, which has similar "slow spots."
This is also an issue with ezquake, so that's introduced as a problem. Since that's the current engine that competitive players use, I will have to design the map around it. I think it actually may have to somehow do with how inefficient ezquake is at rendering entities, but that's only a theory. It's definitely correlated by my tests.
@Qmaster
Again, I will try to get back to you on that.
-----
Thanks for the great initial support, never got that here before.
On the side, do any of you actually like it? I've been trying to get opinions before I hand it up to the higher players.
@spud
Now that's how to answer a question in mapping help. I've used fence textures once before but I just learned how to do it properly. Cheers.
@Spud And @Qmaster
#19291 posted by SavageX on 2017/12/24 10:44:55
Thanks for your comments, this is very helpful!
Took a peek at that valve documentation, really helped me understand how I actually need to use hint brushes. I doubt they will help, but they might do something.
#19293 posted by Joel B on 2017/12/24 21:34:41
When you say that people are complaining about your map's performance, is it "bad performance" in the sense of "only a thousand frames per second instead of ten thousand"? Or is it a performance problem that could actually be noticed without watching an FPS counter?
#19294 posted by anonymous user on 2017/12/25 06:40:33
newbie question: how do I get so you have to kill/press 2 or more enemies/buttons to trigger something and get it to say "x more to go"
#19295 posted by anonymous user on 2017/12/25 06:49:51
o nvm I figured out button, through trigger_counter. trying to figure out monsters though
#19296 posted by anonymous user on 2017/12/25 06:52:34
no wait I'm dumb that's not right
#19297 posted by anonymous user on 2017/12/25 06:54:25
no wait I'm smart that's actually right
#19298 posted by anonymous user on 2017/12/25 06:58:59
but I have no idea how to make it work still
Trigger_count
#19299 posted by madfox on 2017/12/25 09:59:04
Add a new monster:
"classname" "monster_army"
"target" "t1"
Add another one:
"classname" "monster_army"
"target" "t1"
And another one:
"classname" "monster_army"
"target" "t1"
Then add a trigger_counter:
"classname" "trigger_counter"
"target" "t2"
"targetname""t1"
"count" "3"
Now when you kill the three grunts, the target "t2" will be charched for use, ie a door, a teleporting monster, a light, etc.
Charched?
#19300 posted by Qmaster on 2017/12/25 16:14:36
It will be searched for, added to a list, and then all entities on the name will be targeted.
So ya charched I guess, or searchargeted.
Johnny Law:
So, it was initially discovered by going around and looking at the FPS counter, however, I was told others would notice it, as well as it being in a key area of the map.
What Fps?
#19302 posted by Qmaster on 2017/12/25 21:04:06
Min? Max? Average? 1st quartile?
If your min is 65 I wouldn't worry about it. If your min is 50, meh.
If 40, yeesh no good.
#19303 posted by skizzlepuss on 2017/12/25 21:56:06
how can I set a command to activate whenever I boot up the game? I'm using quakespasm and it has z-fighting by default but "gl_zfix 1" doesn't save the property when I close out of the game. I don't want to have to type the command every time I test my map.
|
|
1 post not shown on this page because it was spam |
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|