Compiler Wars? No, We've Got Compiler UI Wars Now...
All I want for
christmas new years is for the TB2 compiler UI to be able to launch engines ;-;
Damage Riding Func_door Downwards
I'm currently working on a small set piece with a descending floor, with the floor being a slow-moving func_door.
In Quakespasm I can easily receive damage in certain spots, sometimes being squished withing fractions of a second ("player was squished") despite the func_door having a dmg of 0. There is no obvious obstacle. Same in Mark V.
In Darkplaces everything is fine, but then again DP's collision system works differently.
Is there something a mapper can do to create safe door rides?
Is your host_maxfps bigger than 72?
You have to enter the paths to compilers manually in rc4. The "..." Buttons don't work. There was a Git report on this quite a while ago.
I'd.linknto it but I am on my phone and can barely read this text right now.
I don't use OS X any longer. I just bring a pc laptop to work when I can map there on slow days.
host_maxfps is 72.
Tested also in WinQuake. Same problem, so this is "vanilla".
I'm using ericw-tools (qbsp / TyrUtils ericw-v0.15.11) to compile things. Using hmap2's BSP stage doesn't change anything.
I zipped up .map and .bsp at https://maikmerten.de/stickylift.zip - can somebody have a look? Just push the button and keep standing there, that's one spot that seems troublesome for no apparent reason.
tried turning the descending floor into a train. Doesn't change the getting-squished problem. Hmmm.
so, I decreased host_maxfps to 36 and the problems seem to go away. Of course, this is not a solution.
Instead, increasing the movement speed from 25 to 35 qu/s seems to fix/alleviate the problem as well. I guess that the platform has to travel a minimum distance between physics tics to avoid problems. This can be done by lowering fps (host_maxfps) or by increasing the speed.
Darkplaces has the physics decoupled from the rendering fps, so that may explain why DP had no problems.
Does this make any sense to engine devs?
how do I get a trigger_push (wind tunnel) to push up or down?
J.A.C.K Configuration Help Needed
I have a lot of experience with hammer and its compiler, but I wanted to try my hand at quake mapping
I am having trouble setting up the jack directories and compiling a simple map. I have the free version of jack and quake on steam.
Here's my compile log: https://pastebin.com/pT9vJfp4
The relevant part I think is the "Token too large on line 6". I tried googling this and it looks like it happens when a map has too many wads, but I only have 2.
Here's the directories I have, I do not know if they are right. https://imgur.com/ZlFmgRC
I believe it is the string of wads having more than 256 characters. E.g. "C:/Path/wad1.wad,C:/Path/wad2.wad,...wadn.wad" where path goes to your steam directory.
I believe ericw's compile tools fix this:
These are the ONLY compile tools you should be using for Quake.
That fixed it for me, thanks!
So I’m using the makaqu engine to run a full on game I’m making, but it doesn’t seem to run at a consistent framerate. Is there any command line optimizations that can make it run smoother and use less memory? The one thing that is bugging me is that it says I have a leak in the compiler when there are none! It’s really weird. Can anyone help?
You'll need to fix the leak and run vis to get good performance. If qbsp reports a leak it should save a .pts file, open this in TrenchBroom or jack, or type "pointfile" in the console in quake to help find the problem.
I’ll Try That!
I’ll try to do that when I get home! Thx!
AD: Swinging Sign
Could I use a func_train to create a slightly swinging/swaying sign?
Or more precisely, what would be the best way to go about this, if possible?
It's just for ambience, will be coupled with an ambient_custom sound.
Yes You Can
You can certainly do this sort of thing with func_train in but it depends on what your vision is. I am picturing say a sign hanging in front of a Western Saloon. The sign will swing back and forth ever so slightly.
You can do this put your 2 path corners very close together, say 8 units. And give it a very slow speed key <40. The problem is there isn't really a great way to make the "rope" holding the sign sway accurately because in reality it would pivot around the point it is secured at. You could ignore this and just make the ropes very small (1 unit) in width so there lack of movement is not as noticeable, or just make the ropes move with the train, but it might look awkward.
I think ORL made flapping flag posts with func trains moving extremely fast over small distance. Its an optical effect.
Or make a .mdl and give it animation frames...
Also lets you make something hover up and down very slowly for a nice effect, but I think it can only be done vertically. I used them to make some hovering objects in ad_paradise, but again it depends on what type of sign you are picturing.
wouldn't a hanging sign be better with func_rotate?
Func_train can work really well for this depending on what you want. The problem I forsee with a rotate_object is that it typically only rotates one way; a func_rotate_door can rotate back the other way but you need a trigger to do this and switch between the 2 states. This could make it exceedingly complex.
Using a func_train with path corners only 4 units apart and a speed of ten, a made this swaying Saloon sign that is really atmospheric:
Check out this demo map with source:
NOTE: Arcane Dimensions is needed to play this map. I made this in AD but it you can make the func_train in ID1 of course.
The map is a tiny demo of the func_train only. No exit trigger or anything. So I hope no one gets mad at me:( And I hope this doesn't end up on quaddicted somehow.
Wow, Thanks A Lot Redfield
Very cool example map you made for me.
But... I already made that with your single entity func_bob suggestion. Apologies for not posting about it, it was really late when I did it so I just went to bed.
Also, I made a test ambient_custom_loop squeaky sound, placed it centralized to the sign and... all was good.
Thanks again for all the assistance.
Also, Swaying With Rotation...
There is the "path_rotate" and "func_rotate_train" entities that may still be the answer, but I didn't figure those out last night.
What I was doing kept screwing up the game(on load player position stuck at path_rotate location and no ability to move, even with noclip!)
If I get this sorted I will post it up.
Lots Of Options
There are quite a few ways you could do it I guess. I forgot func_bob can go in any direction with angle key, and this is probably the most efficient way to make a swaying sign. I'm not sure how to visualize a func_rotate_train, as the object itself will rotate between path corners, but if you make it work it would be interesting to see.
Yeah I got carried away with that saloon, I was just going to throw a func_train in a test map and see what happened, but I had this image in my head, and it just kept going. Started making textures and several hours later an insane test map. Best way to answer a question is to make a map. Maybe I will turn it into a little western map one day.
a way to kill Chthon without QC? Telefrag or ridiculous high damage on a trigger_hurt doesn't seem to work and setting the lightning_event its a pain the way this map works.
Try adding a key|value of th_die|boss_shockc1 to your monster_boss. Then when you hurt it it should die after 4 damage. Not tested.
I tried damaging the guy with a trigger_hurt, a door and myself with Quad rockets just in case and the guy didn't show even pain with that key on him.
What i learnt with all of this is that he cannot be moved with doors as they just pass through him, which is a pity.
I forgot that the boss is not technically a monster in the sense that it doesn't use AI normally. It is basically a turret with animations and very special code. Seems like I remember a killable chthon hack somewhere though. You might need to make an info_notnull hacked boss.
mechtech made a handy map that includes a whole bunch of map hacks for reference here
, and a quick glance at the killable Chthon in the map shows it's done with an info_notnull with a bunch of extra fields filled out to match what the boss entity would normally have so it behaves correctly.
Link Is Dead
GLQuake Not Rendering Map Correctly?
Hey there! So I got my map working and fixed all the leaks, but for some reason, when I run the map in GLQuake, it renders a far off distance like it's clipping! Is ther anyway to increase the drawdistance like in winquake with r_maxsurfs and r_maxedges or is it impossible? Could it be a mapping problem itself? Compiler gives no errors!
The Real Question Is...
Why in 2018 does anyone use original GLQuake?
I really want to know!
Because it's the best engine that comes with the Steam version.
Well, the second best, but the default one.
It's worth remembering that's the out-of-the-box experience, when you're looking for the largest possible quake audience.
Thanks, I never even considered that.
To Answer Rizzo
Download an engine with enhanced limits such as MarkV, Quakespasm, or FTE.
GLQuake Far Clip Is Hardcoded At 4096
Thanks guys! Guess I'll have to go with another engine!
VIS Job Farming?
I'm new to mapping, i've been using EricW's tools. In regards to the VIS proccess, has there ever been any consideration into farming out jobs over a network? I am sure i'm not the only mapper who has a second PC that is idling alot. I can picture small communities of mappers providing their PC's for VIS jobs. And not just 1 map/PC (that could already be done with some kind of file monitoring script). I'm talking about splitting one bsp over multiple PCs to get the completion time down. It seems with multithreading the individual threads are operating independently anyway once they get their work chunk.. granted i don't know anything really.. just my assumption. This seems to be the biggest bottleneck in dev time. Maybe the couple guys i am in a group with are inefficient mappers but the VIS'ing has taken days and days on an 8 thread i7. It would be cool if network nodes could just be seen as additional threads.
Should be helping with the vis times. Unless you are building a gargantuan map that rivals Ter Shib in size I can't see VIS taking this long with 8 cores. I vised a bsp2 size map in less than 1 min. on 3 threads with ample use of detail brushes.
Again this could depend on the size and complexity of the map, but if you are new to mapping, you should be using detail brushes on objects like pillars, stairs, loose bricks, small details etc. or else VIS might take days where is should be seconds.
With func_detail, vis should not be the longest part of the compile any more.
Make sure you are using ericw's tools:
I saw detail brushes but wasn't sure what to do with them. I'll try that. thanks guys!
Use Func_detail To Turn Your Map Into Rectangular Areas
For instance, anything angled, off-grid, small, thin planks, trim, light panels, crates, pipes, broken walls, debris chunks,
trisoup (terrain e.g.) etc. etc. should be func_detail (solid) or func_detail_illusionary (not solid).
This lets vis deal with very simple rectangular areas and drastically speeds up compile times. It also can help you add specific lighting features to some details, such as _phong (nice and smooth shading) on rounded columns or terrain trisoup.
Aside from wanting to apply phong shading to columns/pipes/whatever (which can be done with standard func_walls as well), if you're willing to eat the compile time instead that seems like going overboard a little with the details. Won't you run into issues with vis not blocking off *enough* due to details making up walls and such and possibly cause poor map optimization and lower framerates on less powerful machines? Not to mention the extra effort of making a solid rectangle area outside of any part of the map even slightly skewed or clipped-'n-vertex-edited.
Depends on balance between CPU and GPU time per frame. Loads of objects to render = long GPU time. Loads of vis leafs to calculate against = long CPU time.
E.g. in a level with 10ms CPU and 20ms GPU, it would help to render less, so yes more leafs could help.
If instead you had 20ms CPU and 10ms GPU, then fewer leafs would help improve performance then func_detail would help.
I honestly don't know what the bottleneck would be or how to check it.
gpus are quite fast nowadays, they don't really care about a few hundred more quads.
overdraw is still a concern (so you still want your various rooms to be properly sealed with structural brushes to avoid the worst of it), but otherwise if the engine has decent batching then you won't see much of a problem if all the details+pillars+etc are flagged as details.
tbh, its the leafs themselves that are the expensive things.
I Was Under The Impression
That in quake, you can't appreciably change the number of leafs with func_detail, only the vis compile times. Has this changed?
no, you have the leafs whether they're detail or not.
you can't fold leafs using q2-esque cluster stuff, because the bsp format doesn't support it.
and you (usually) can't merge leafs due to the engine calculating a parent leaf - each one must have a single parent node so no multiple routes through the bsp tree (side note: this doesn't apply to hulls 1+2).
so the only way you can merge them is if two leafs share a parent node, have the same contents value, and together form a convex area (such merging can happen recursively so long as those conditions still hold true).
less leafs means fewer marksurfs, fewer nodes, fewer frustum checks, smaller pvs data (and for every other leaf too), and fewer cache misses throughout.
arguably surfaces could be merged into a concave mesh on the condition that there is still 1 truely central vert somewhere.
the geometry works even if they're on different planes, but lighting and texcoords would likely be broken because of it.
whether it would break software rendering, or gl engines that pick the wrong edgevert is a different matter, but hey, most gl engines should cope without realising it.
Yes func_detail shouldn't create more Leafs
Engines should be able to recover detail clusters by recursively merging leafs that have the same visofs. This has the benefit of working on released maps and won't risk breaking anything. Once you recover the clusters you could generate lists of faces per cluster, new compact visdata, etc.
Using Scourge Of Armagon Assets In TrenchBroom
Longtime quake player, trying to create a custom version of DM3 with some Scourge of Armagon assets for team deathmatch. I used pak explorer to extract the DM3.bsp from pak1 in id1 and was able to convert the bsp file to a .map file, which allows me to then open it in TrenchBroom. I think I get how to recompile this back into a usable .bsp (doing the light/vis stuff etc.), but I'm curious how to actually use Scourge of Armagon assets. I have the add-on pack (it's in a subfolder called hipnotic), but I'm unsure how to use those pak assets in TrenchBroom.
Any help would be appreciated :)
Cool idea to update Dm3 for SOA. The source for DM3 is available at Quaddicted. So use that instead of a decompiled bsp.
You'll have more luck.
Next, you will want to load up the mission pack fdg in Trenchbroom. I have been searching for it but cannot seem to find the link. But it's out there.
When you have the fgd you will go to the entity tab in TB and at the bottom load external and select that fgd file. After that you should have the entities available to you in the browser. You will also want to load the mission pack as a mod in TB in a very similar fashion. It's on the map tab I believe.
Triple Post - Woot!
I might as well pimp a DM level I made that includes a Hipnotic version of the map. It's called Lividus. Maybe you and your pals will enjoy it along with DM3.
Thank you for the help and taking the time and all the links provided! I managed to figure most of this out through a bit of trial and error and talking to the devs from qrack and fte. Some of those old assets are indeed hard to find!
I still play TDM with a group of oldschool quakers on DM3. Matches on most weekends. I was looking to create a fun tweak of DM3 that would preserve what works about the level for teamplay, i.e. the idea of level/item control without messing up the balance too much.
But due to having played it 9999999 times, I thought adding some SOA assets would be fun. I added the proximity grenade launcher at the opposite side to standard GL, replaced the SNG in the SNG room with the laser cannon, replaced the standard nailgun (useless in DM) with the SNG, and put mjolnir outside by the pent. I feel like these weapons could lead to a few interesting tweaks in gameplay (e.g. setting traps with proximity mines, using laser cannon to blast into areas by bouncing shots, mjolnir to close proximity attack somebody with weapons).
If anyone's curious, here's the first iteration. Requires the hipnotic pack to work (i.e. whatever executable you're using -game hipnotic -hipnotic for command line switch):
in trenchroom, I made a button and set its target for one door but it opens all doors on the map. what do?
That means all your doors probably have the same targetname.:D
will I have to name all of my doors? because the other ones being triggered don't have names
will I have to name all of my doors? because the other ones being triggered don't have names
nvm, that just stopped the door from opening automatically. I'm looking at all my entity links and none of them go to the irrelevant doors, only to the ones I told it to go to.
and it only happens with a button, not the trigger_multiple I have already
it also triggers doors with different names??
Set The Don't Link Spawnflag On The Doors
that didn't work, but it broke my unnamed door :L
it's weird, whenever I change any properties on my unnamed door it just totally stops working
here are my button's properties. maybe it's something to do with the button. https://i.imgur.com/lHqqReg.png
Please try and avoid the triple posting.
What do the door properties look like?
and here are the doors (four doors that sink into the ground) targeted by the button https://i.imgur.com/RDWDmBn.png
keep in mind it's also triggering a pair of doors named "d2"
The two groups of doors are too close too each other.
Add "dont link" to the D2 doors as well. Remove that Wait of 0. just remove the Wait key entirely. No need for it if youre also using the Toggle flag, as far as i can tell.
oh and do "r_showbboxes 1" in the console and youll see the trigger volumes and such. This should make the problem a bit more evident.
I've tried adding "don't link" on all the doors.
I did a video just so you can see exactly what's going on.
there are 3 sets of doors, the four downward-moving doors (d1); the doors above d1, which the player gets launched up through (d2); and the unnamed door which is off to the right and there's nothing special about it.
I've tried creating a new single func_door away from the others with no changed properties, and it still opened.
I've also deleted and redone the button to make sure I didn't accidentally change a property.
if it turns out to be something really simple I goofed up on plz don't laugh at me ok?? <:l
Remove the blank "target" and "wait" from the d1 doors for starters.
But, beyond that...the issue isnt happening for me when I compile the .map. The button only opens d1. I didnt change anything either.
Ha Ha Hi Hi Ho Ho
yep that did it! I didn't realize the unnecessary target and wait would do anything. mystery solved, we can all go home now
Are there any good beginner resources around?
GTKRadiant, NetRadiant, and Trenchbroom seem to be the most popular editors, and ericw-tools seems to be the current suggested toolchain for compilation, but all the documentation and stuff I've found seems
Dang Accidental Post
...to assume that you know what you're doing, which I really don't.
Sorry about the halfpost, interface bugged out.
Re: 19413/19414: Beginner Resources
This might help to get you started with the very basics: https://quakewiki.org/wiki/Getting_Started_Mapping
Make Sure And Register
...for this site so we know who you are. :) Maybe prepare a list of specific questions you have too. We'll be happy to answer.
JACK is also a popular editor for those with Valve/GoldSrc/Worldcraft experience:
I use TB2 and can answer questions. Also Terrfusion on Discord is a good real-time resource as well.
Nobody Has To Register If They Don't Want To
and it's not a prerequisite for asking questions.
It Should Be
Shit is arguably better than shrimp.
...was simply a friendly suggestion. Not a demand. You know, to get to know someone in a more personable way?
Nope, But You Do Have To Register If You Want To Post Abuse
and it's a prerequisite for trolling (i.e. some form of accountability).
@dumptruck_ds: Yeah, I get that. :) Of course registering has its benefits, but it should be the person's own choice, and I thought the way you phrased it, it sounded a bit like a demand/pressure/prerequisite.
In any case, my comment was directed more at whoever posted the question in 19413/19414, than at you. People may have various valid reasons for not wanting to register and sign up, and it would be a shame if they feel pressured to register and then stay away completely as a result.
And (re: #19424/Shambler) of course I'm talking about people asking for mapping help, contributing knowledge, etc. and not about trolls/people posting abuse. I can understand the argument there, although there are plenty of people happy to troll and post abuse while logged in anyway. So I'd argue that even then, whether or not someone is registered or logged in is irrelevant: just don't be a troll and don't be abusive.
can a mod delete / move the above BS into the beef thread?
It would be nice if any visitors coming here wouldn't be greeted with this as their first experience here.
Would if I could. I think there's no beef here now tho. All good.
how do I get spike traps to shoot more/less frequently?
ah nvm, got it (it's 'wait')
Bit Of A Technical Question Here
Been trying to get my head around the Valve220 map format.
What's the point of the "rotation" field?
There's a not-particularly-clear description of it on that page, but I still don't get why it's required when you already have two vectors defining the "right" and "up" of the texture.
Possibly related, but in Netradiant, if I do a fractional texture rotation (e.g. 13.6 or whatever), only the integral part (13) gets saved to the "rotation" field in the .map, yet the extra precision is not being discarded, because it's generating different "right" and "up" vectors, compared to if I just rotated it by the integer 13.
It's almost like the "rotation" field is just for show, but why?
It's a cheat. Rather than the editor (JACK or Hammer only) having to calculate the relative rotation of the texture UV space every time it loads a face into a brush, it merely calculates this during save and puts it into the .vmf or.map.
At least U think thats what it's for. Old Worldcraft 3.3 needed some hackery if I recall to read it. Whoever did the WC3.3 patch might know for sure.
That field stores the knob position of the Hammer UI. It's not used by qbsp when compiling the map.
I guess the reason it was done this way is, you can rotate the brush with texture lock on, and this won't cause the texture rotation knob in the UI to change on its own.
Knobs And Things
interesting cheers, so it's pretty irrelevant.