 Sounds
#8087 posted by necros on 2008/12/01 23:37:06
if we're talking about a glquake engine or something close (fitzquake) then sounds in higher sample rates like 22 and 44khz, will be automatically downsampled to 11khz. this is actually worse than using an 11khz sound because the automatic downsampling used is bad unlike downsampling in a proper sound editing package.
also, use 16 bit. it's twice as big as 8bit, but 8bit makes for fuzzy sounds unless the sound is very loud like an explosion, but something subtle like wind humming or something will be fuzzy.
 Monster Pathing Question
#8088 posted by JneeraZ on 2008/12/02 12:51:57
I'm trying to set it up so that monsters will seek the player out in the level. They don't care if the player is visible, they will just hunt him regardless.
What I currently do is I set the monsters goalentity to the player and set them to walking. Now, that works but monsters like scrags won't change their elevation in pursuit of the goal. I notice that they WILL fly up and down when attacking so ... what can I do to make them Z aware when simply walking towards a goal?
 Dont Know Willem, Sorry...
#8089 posted by RickyT33 on 2008/12/02 13:04:08
But that made me think of a query:
In Ijeds 256 brush SpaceHulk map, he used Quoth's "spawn aware" thingy to get the hordes of feinds to run towards the player.
Ijed - was this easy, or did it cause problems - I seem to remember trying to use the spawn aware flag and it not working ... (?)
 How Do You Do That?
#8090 posted by ijed on 2008/12/02 13:08:22
In the case of cooperative?
Point of fact, how do you do that anyway? (the first part).
I'm new to writing code, but I tend to think in the right way.
Monsters are never z-aware AFAIK. You could make some sort of hacked entity flag for path points, but it wouldn't work so well.
http://www.inside3d.com/showtutorial.php?id=52
Is how I got z-aware working - maybe it can be applied to the goalentity.
#8091 posted by JneeraZ on 2008/12/02 13:19:59
"In Ijeds 256 brush SpaceHulk map, he used Quoth's "spawn aware" thingy to get the hordes of feinds to run towards the player."
I can do that just fine but I don't want them to get aggressive until they actually SEE the player. So I want them casually walking while moving towards the player.
"Monsters are never z-aware AFAIK."
Well, scrags seem to become z-aware when they get aggressive because then they start moving up/down to find the player. When they're just pathing around, they won't.
 Fly AI
#8092 posted by ijed on 2008/12/02 15:03:21
Means they'll try and find a higher altitude than their enemy, but that's about it, I think.
#8093 posted by JneeraZ on 2008/12/02 16:45:10
Sure, but they aren't doing that. If I put a scrag into a hole I've cut in the floor and tell him that I'm his goalentity, he'll move towards me just fine but he'll never come out of the hole. He seems to only move along a 2D plane.
Until he gets attacked, that is. Once aggro'd, he'll change elevation all the live long day.
 It Can Be Done.
#8094 posted by Lardarse on 2008/12/02 19:47:17
By setting them along a path, and then instead of pointing them around in a loop (like the ogre in e1m2), you leave the last path_corner pointing nowhere, so that then it will start walking towards the player (there's an enforcer by the second floodgate switch that does this, you may need noclip and notarget to observe this). However, to make scrags z-aware would require changes to the flymonster "walk" code. At which point you may as well find a better way to signify that the monster should track the player.
#8095 posted by JneeraZ on 2008/12/02 19:51:31
OK, how about this : is the z-aware combat movement behavior something that is handled in QuakeC or is that an engine thing?
 Z-aware Walking
#8096 posted by necros on 2008/12/02 20:53:49
to get around this with the melee mod i'm working on (since a scragg can be made to follow the player without attacking) i had to introduce a sort of hack.
essentially, it uses velocity to push the scragg up or down. this would look out of place unless you are using the flying monster hack (running movetogoal, resetting position, setting velocity to match movetogoal's new position) but works well because you don't have to worry about z-collision since the engine will handle that on it's own with velocity.
unfortunatly, this is the only fast way to do it since using walkmove(0) to check if a bbox is stuck doesn't work with flying monsters.
you need to make a special exception to keep it from getting stuck on floors though, so you'd need to have it clear the onground flag and then set a delay to prevent it from hitting the floor again.
 Source Of The Problem
#8097 posted by Preach on 2008/12/02 21:34:20
I had a look in the engine source, and the relevant lines are:
enemy = PROG_TO_EDICT(ent->v.enemy);
if (i == 0 && enemy != sv.edicts)
{
dz = ent->v.origin[2] - PROG_TO_EDICT(ent->v.enemy) ->v.origin[2];
if (dz > 40)
neworg[2] -= 8;
if (dz < 30)
neworg[2] += 8;
}
I know it's horribly out of context and not everyone here who knows QC will know C. But the main things to take away are:
The dz, which is the intended destination, is bumped up or down if the flying monster is more than 40 units or less than 30 units from the ideal.
The ideal level is calculated from the origin of the monster's enemy. Which is what we all guessed anyway.
If you wanted to be able to use this navigation directly, then you'd need to set enemy to the player as well as goalentity. The important thing then is to make sure that other bits of the code stop treating "enemy" as the indicator that the monster should be aggressive. The most vital place for this change is ai_run, and FindTarget would also need changing, along with everything it calls.
You could define a new entity field, "lifelongenemy" or something, which would be substituted for "enemy" almost everywhere. Then you're free to use "enemy" to dictate hovering height. The reason I say almost everywhere is because you'd want to make sure "enemy" matches "lifelongenemy" once the monster is aggravated.
#8098 posted by JneeraZ on 2008/12/02 21:41:28
Hmm, leveraging "enemy" ... that's something I hadn't considered.
I guess my other option is to not have scrags hunt the player since they are the ONLY monster that will have this problem. :P
#8099 posted by JneeraZ on 2008/12/02 21:42:03
Well, and fish, but in a different way ... but fuck them, scaly little bastards.
 Stoneless
#8100 posted by JneeraZ on 2008/12/03 19:39:28
Here's a question for the hive mind ... I remember WAY back in the day seeing screen shots for an upcoming editor called Stoneless. Anyone know what became of it or if the web site is archived somewhere?
 Willem, Ask Mr.frib
#8101 posted by spy on 2008/12/03 20:06:44
 About Stoneless
#8102 posted by spy on 2008/12/03 20:07:25
 As I Recall
#8103 posted by lurker on 2008/12/03 20:10:06
The Stoneless website didn't contain much, but the editor itself was released.
ftp://ftp.fu-berlin.de/pc/games/idgames2/utils/level_edit/editors/stls101.zip (1.2 MB)
 Willem
#8104 posted by RickyT33 on 2008/12/03 20:14:46
Ahh OK. In ToeTag, if I wanted a hot light with a large fall off I would do something like:
"_light" "250 64 150 300"
A little easier to do and better for control since you can input the exact radii that you want to use. Above, that would be a 250 brightness light for 64 units and then a 150 with fall off for the next 300.
You said this to me a while ago when someone was talking about lights. I would really like to know what the resultant light entity would look like in .map format.
Could you tell me :) ?
You see I dont know how the Toetag lighting system works, but I need to reduce the amount of lights in my map (tyrlite wont work on maps with more than 2048 entities, as far as I can tell, and I have an excessive number of lights in my map, many sourced lights have 2 entities or more next to them)
Now I dont know what
"_light" "250 64 150 300"
means, but I do know what
{
"classname" "light"
"light" "300"
"wait" "1.5"
}
means.
When I start using the "delay" key I get confused. I like the effect that Tyrlite gives from "delay" "2", but it seems to produce a massive radius of minlight, which I dont really want......
So I would like to see what
"_light" "250 64 150 300"
looks like in game, and in .map format.
Please help!
#8105 posted by JneeraZ on 2008/12/03 20:46:37
It's basically saying "give me a 250 strength light for a radius of 64, and a 150 strength light with a radius of 300".
Basically just 2 light entities for the price of one. The only technical difference is that the second light doesn't start falling off until the radius of the first light is exhausted (so it fades starting at 64 and ending at 300).
#8106 posted by JneeraZ on 2008/12/03 20:48:01
And MAP format is fairly obvious:
{
"classname" "light"
"_light" "250 64 150 300"
}
You would need my light utility though to use it and, of course, that's missing stuff like LIT support.
#8107 posted by JneeraZ on 2008/12/03 20:49:43
Fuck, let me start over. That description sucks.
It's NOT like 2 light entities, I forgot.
OK, what happens is that you get a 250 light strength casting within a radius of 64. You then get a 150 strength light falling off between 64 and 300. So you get a very hot center surrounded with a cooler falloff.
I hope that's clearer...
 Ahh!
#8108 posted by RickyT33 on 2008/12/03 21:00:51
Damn.
Lord - I have re-lit this map once over already, and I'm not happy. I think I know what Im gonna do. Hmmm...
- A result of surfing so close to the damn standard engine limits. I mean Fuck! How was I supposed to know that Tyrlite only allows 2048 entities in a bloody map?!?!
(sigh) oh well.....
#8109 posted by JneeraZ on 2008/12/03 21:15:08
See, this is one of the many reasons I don't condone huge maps. Who needs the hassle?
 Mdl
#8110 posted by madfox on 2008/12/03 23:07:12
I make a new monster and want to give it an attack movement it occurs to me that when I use a mdl object it only uses the first frame.
how do I give the monster a mdl object that poses all the frames in it, and not only the first?
 Ricky
#8111 posted by HeadThump on 2008/12/04 03:25:15
I have found this strategy to be a useful tact for a Quoth based map set I have been quietly stitching together. Build a huge hull based on just a few thousand or less brushes, after lighting the basic hull, divide it into four or more portions for individual maps that share a common macro architecture. It is actually kind of neat to see a central facade in one map disappear into the distance for the next map. Quoth has a limited hull system that makes this possible, limited but it is enough for the needs of what I'm doing.
|