Dicion
|
Ok.. i had an idea..
since on some maps, item/weapon placement is better for one class then the others, or more limited... i suggest these:
Ent: variable_item & variable_weapon
Now each one of those would have like 5 fields.. one for each class so you could specify that 'variable weapon #1' is a rocket launcher for doom, mortar for earth, railgun for arena and q3, and shaft for q1...
same principle for the variable item
I dont know if this is possible, but im sure mappers could have a field day with it, making the map flow different for each class.... could be interesting
|
|
|
Logged
|
|
|
|
Tekhead
Elite
Posts: 1110
|
Intreuging....
|
|
|
Logged
|
|
|
|
Tabun
Pixel Procrastinator
Team Member
Elite (3k+)
Posts: 3330
|
how would such maps work in vanilla Q3? Are unknown entities simply ignored?
|
|
|
Logged
|
| Tabun |
?Morituri Nolumus Mori? |
| |
|
|
|
Dicion
|
yeha, well there would be errors, like 'no such ent' but they would just not be loaded... simple as that. the map would still load just fine But since pho's going to be releasing the shooter ents, and stuff soon, I think Gen maps will eventually become gen-only... I think we've gone quite a long time with the backwards-compatible map types.. more then any other mod of this size, but in order to progress, i think we'll have to cut that out...
|
|
|
Logged
|
|
|
|
Angst
Rabid Doomer
Team Member
Elite
Posts: 1011
|
Actually, I've got a better idea.. I think..
Instead of a separate entity, I think a better idea would be adding a number of keypair overrides to the weapon entity.
Example because I'm horrible at describing ideas:
weapon_plasma: Earth = Single_Gat
Now, how this would work, is if you don't expressly define a class and weapon, it defaults to the generic Generations value. And in vanilla q3, it SHOULD I believe just ignore those keypairs and display a plasma gun.
If you want to get REAL picky, you could probably do that for items as well. A megahealth instead of a berserk pack for strogg, etc..
No need to add what you can fix, eh wot?
|
|
« Last Edit: 2003-09-15, 19:01 by Angst »
|
Logged
|
"Who says a chainsaw isn't a ranged weapon?"
|
|
|
Dicion
|
sounds good, as long as vanilla q3 rejects it and just continues...
we'll have to wait till pho gets back, or maybe bug ward on this one. maybe he'll know
|
|
|
Logged
|
|
|
|
Angst
Rabid Doomer
Team Member
Elite
Posts: 1011
|
Hehe, yeah, ideas don't do any good unless you bug the coder . My anti-pho-wrath armor's getting a tad dinged
|
|
|
Logged
|
"Who says a chainsaw isn't a ranged weapon?"
|
|
|
Phoenix
|
I'll try not to ding it up too much. Sit back, relax, and enjoy the technical rant. Earmuffs are available at the concession stand for $15 US.
Now each one of those would have like 5 fields.. one for each class so you could specify that 'variable weapon #1' is a rocket launcher for doom, mortar for earth, railgun for arena and q3, and shaft for q1... Ok, several problems with this, same ones with every attempt at proposing this so far. The client doesn't know the difference between these items. Item spawn info is not passed to the client. The only info the client knows about the item is as follows:
spawnpoint That it's an item Item type (IT_AMMO, IT_WEAPON, etc) Item tag (WP_GAUNTLET, WP_MACHINEGUN, etc, for ammo and weapons)
The only way this is passed to the client is in a struct called entitystate_s. This is located in q_shared.h, and it cannot be modified. There are a few empty flags for entitystate that Id did not use, but we already need those for other things.
The client only knows a railgun from a shotgun because the item tag is different. Now, bear in mind that the only thing that separates a shotgun from a box of shells is the item type field. Both shotgun and shells share thesame item tag: WP_SHOTGUN, but the shotgun has an item type of IT_WEAPON whereas shells has an item type of IT_AMMO. There are limits to both of these since, like the 16 weapon limit, we're limited to 16 bit fields. We can't blindly add more WP numbers since player weapons use the same data. It MAY be possible to add more IT numbers, but it's going to add more complexity to the item rendering code. If it's not possible, well, that's another 16 bit field.[/color]
I dont know if this is possible, but im sure mappers could have a field day with it, making the map flow different for each class.... could be interesting The other problem with this is consistency, which I've stated before. The example of Shooter ents was used, and sure that's a neat, fun thing that Gen is getting, but remember that a shooter is a shooter no matter what class you are. They don't change. They're static items on the map. Gettable items are completely different in their scope. If you have an item that is only available to, say, an Earth Soldier and not a Strogg Trooper, then you end up with the following scenarios, depending on how you code it:
Case # 1, where the item is visible only to a specific class
Strogg guy sees Earth guy spawn in. Earth guy runs over and grabs a flamethrower Strogg guy doesn't see anything there because it's an Earth-only item Strogg guy was incinerated by Earth guy Strogg guy: "WTF? Cheating bastard!" Strogg guy disconnected
Ok, so we make the items visible. How to do this though? Here's one option:
Case # 2, where one class sees items
Strogg guy sees Earth guy spawn in Strogg guy gets to a hyperblaster, and finds he cannot pick it up Strogg guy: WTF? Earth guy runs over napalm launcher. Strogg guy was torched by Earth guy. Strogg guy: WTF? This is BS!! You sporking cheater! This mod sucks! Strogg guy disconnected
Ok, so let's keep them visible, but show what specific class they belong to.
Case #3, where the Earth-only items appear as Earth items
Strogg guy sees an Earth napalm launcher. Strogg guy walks over to it. Strogg guy: Uh, wtf is this thing? How come I can't pick it up? Earth guy walks up to it, and picks it up. Earth guy: It's a flamethrower. Earth guy picks it up. Strogg guy: WTF? How come you can get that and I can't? This is BS. Strogg guy was set ablaze by Earth guy Strogg guy disconnected
The last situation we have is where we don't have class-only spawns, but rather change the item pickup from one class to another. Two problems here. The first is showing the "alternate" item since the client can't see the "flag" used by the server to give something different. The item would show up as one thing, and you'd get something completely different. Ahem, bug report city. Second situation is the following:
Case # 4
Arena guy runs over rocket launcher on platform over lava. Arena guy runs the map a bit, and runs over rocket launcher on platform over water. Arena guy was railed by Strogg guy Arena guy became a Slipgater Arena guy changed his name to Skippy Skippy runs over rocket launcher on platform over lava Skippy runs up to water platform, but unbeknownst to him the mapper thought he'd change the spawn to a double shotgun for Slipgate Skippy: WTF? There was a rocket launcher here before... Strogg guy does a backflip into the lava Strogg guy respawns in front of Skippy. Strogg guy runs over rocket launcher, which is still a rocket launcher to Strogg. Skippy almost dodged Strogg guy's rocket Skippy disconnected.
The results of this, in all 4 cases, would be a rash of bug reports and flaming the forums. It may sound all fine and dandy from a mappers perspective to have separate item spawns for each class, or alternate item spawns, but it breaks consistancy. Where this sort of thing is fine is in a single player game where you have different classes achieving goals in different means. In multiplay, you can't really step outside of certain rules. Items have to be spawnable to everyone, gettable to everyone, and visible to everyone. They can have different effects based on class, as in Gen, but that has to be consistant for each class, level-by-level, or any shred of cross-class strategy goes out the window.
The Arena system of weapons is the heart of our game system. We can't add more weapons without adding more weapons to the Arena class (single shotgun spawns, etc), and we can't switch weapon spawns, code constraints not withstanding, without breaking the "What does the Arena class weapon translate to?" system. I remember how bloody confusing it was in Quake 2 Generations trying to figure out what I'd get when I ran over a Nailgun as a Quake 2 Gumby, then ran over a Doom shotgun as a Wolfguy. Our "What you see is what you get" system works very well, but part of strategy is knowing "What will this be if I change classes?" All a player has to do is run the map as Arena and he/she will know exactly what the weapon will be for every class every time, and know that weapon will always change to the same thing for each class, regardless of what map they play on.
I know it's a tempting idea for mappers, believe me, variety is something I like, but in the end the only test of any idea is how it will be seen through the player's eyes. Sure, Doom will dominate some maps, Earth will dominate others, down the line, same for all classes, but do we really want to ruin what makes Gen solid?
|
|
|
Logged
|
I fly into the night, on wings of fire burning bright...
|
|
|
Angst
Rabid Doomer
Team Member
Elite
Posts: 1011
|
And there's the answer . Thanks for clearing that up pho, I had thought it would have potential but I keep forgetting about how this could unbalance the game
|
|
|
Logged
|
"Who says a chainsaw isn't a ranged weapon?"
|
|
|
Dicion
|
yep.. thats why it was just an idea, and not a demand heh oh well...
|
|
|
Logged
|
|
|
|
Phoenix
|
Hey, I'm all for floating new ideas. No harm in asking, right? You don't know if you don't try.
|
|
|
Logged
|
I fly into the night, on wings of fire burning bright...
|
|
|
Angst
Rabid Doomer
Team Member
Elite
Posts: 1011
|
Heh, no harm in asking unless the bird's on a deadline
|
|
|
Logged
|
"Who says a chainsaw isn't a ranged weapon?"
|
|
|
games keeper
Elite
Posts: 1375
|
ok , asking .
1) rotating doors . 90 degrees and back . 2) somekind of force that pulls you to a wall (see quake 2 space level = secret level ) 3) somekind of way that you can stand on the ceiling so that the ceiling becomes the floor , and the floor the ceiling . 4) sa bu with walls (I have seen these 2 things and trust me its the weird and funny . 5)triggable lights .
|
|
|
Logged
|
|
|
|
Tekhead
Elite
Posts: 1110
|
in Q2, I only remember low-gravity and wind tunnels...
|
|
|
Logged
|
|
|
|
Angst
Rabid Doomer
Team Member
Elite
Posts: 1011
|
Triggerable lights are not really feasible in q3. Triggerable DYNAMIC lights.. maybe, we'll have to bug pho about that.. I'll outright state that there are a number of problems with dynamic lights, #1 being that they bleed through walls..
There will be no walking on walls or ceilings, q3 doesn't support that very well.
Variable gravity brushes.... Hmm... POSSIBLY feasible, I think I know how it could be done, but again, I need to bug the bird on that.
I DO like the idea of triggered rotating brushes, I miss those..
|
|
« Last Edit: 2003-09-19, 20:07 by Angst »
|
Logged
|
"Who says a chainsaw isn't a ranged weapon?"
|
|
|
games keeper
Elite
Posts: 1375
|
ok wintunnels , thats it , thx tekhead . /me kisses tekhead . for 3 and 4, wel its something from sin . serious sam also had a level like that . I think its on the new deja-review . the one that dna is hosting .
|
|
|
Logged
|
|
|
|
|
Lilazzkicker
|
hmm, i think there may be a way to block light bleed threw
|
|
|
Logged
|
|
|
|
Angst
Rabid Doomer
Team Member
Elite
Posts: 1011
|
Rotating doors? I don't remember Q1 or Q2 having these. I know just about every game had doors that moved up and down. Non-shootable doors come to mind that are proximity and button-triggered only. Quake 2, level 2, sewers entrance. Push the button, and the two halves of the cap rotate open. There's more, but that's the quickest easiest demonstration. There are also rotating levers. Again, shown off in that wonderful hub that level 2 is.. I'm not aware if there's a way to make the bouncepads silent.. It'd be nice though. The gravity zones, while an interesting thought, I agree aren't necessarily part of gen. Feasible yes, but maybe something to be added later if ever. I'd imagine it'd be a simple vector add while in the brush, similar to water. As for light bleeding through, you MIGHT want to try caulk, or.. I think there's a clip_light brush of sorts.. but I think that's only for lightmap rendering, it's worth a try, I'll poke at that a little bit today. Edit: After testing I can fairly safely say that there is no entity I've found that can clip dynamic light, and if I remember that bit of code properly, it's because the dynamic light is.. not exactly what I'd consider "good" code.. Just a radial blend, something like that.. Anyhoo, if it's done properly, mappable dynamic lights could be decent, but the fact of the matter is: If it's implemented, people are going to complain to the mod team because the mappers don't understand why they've got these funky lights on the wrong sides of the wall.. Personally, I'll admit I'd like to see it, but it may also not be worth the hassle..
|
|
« Last Edit: 2003-09-20, 19:22 by Angst »
|
Logged
|
"Who says a chainsaw isn't a ranged weapon?"
|
|
|
ReBoOt
Mean ol Swede
Team Member
Elite
Posts: 1294
|
In "theory" there might be way to switch external lightmaps ( Styled lights) and to trigger them by using a simple trigger and vertexremapshader.. In that way we don't have to use dynamic lights. however the current q3map2 don't have the vertexremapshader function for switching external lightmaps but the next version will, i read something about this beeing changed in the next version of q3map2. Btw i have a request for ya pho: It whould be neat if a mapper could change the sounds on the ents.. sometimes you don't want a ent to make noise eg. doors, or the sound is just bad and you want to use another one. And trains that damages the player whould be neat too Also i whould want an ent that damages the player with a custom amont of damage, which is triggerable there is a q3 ent called trigger_hurt but you can't trigger a trigger.. If the mapper could set the damage on lava/slimes whould also be helpfull.
|
|
« Last Edit: 2003-09-20, 19:47 by ReBoOt »
|
Logged
|
|
|
|
|