Wing Commander - Privateer Gemini Gold

News Files Images Forum Faq Credits

Forum

posted: 06 Jan 2010, 16:23

Great game, as always ;)

Ubuntu 8.10, 64bit. Standard 1.03 download.

Scanners & Targeting
  • "h" doesn't target closest hostile. (using Hunter AW6i)
  • Targeting range / angle more limited than in the original. E.g. it's not always possible to target a ship firing at you from behind without turning. (using Hunter AW6i)
  • Targeting system switches target even when using communications (pressing "c"), e.g. if a new entity (ship/base) comes to be in front of the player's ship. So if you're trying to say something to one entity (e.g. a militia ship), it's perfectly possible for the message to wind up being sent to a different entity (e.g. a Kilrathi ship). The com menu will just switch. Locking target, providing your scanner is capable, might solve the issue, I haven't tried. Regardless, the constant target switching is extremely annoying.

Speed and Movement
  • Shelton Slide bug still present: Using Shelton Slide "freezes" velocity vector without requiring energy expenditure. Velocity obtained by use of afterburner or collision is thus kept for "free".
  • Possibly related to the Shelton Slide bug... it is possible to attain faster than allowed speeds (say above 600kps in a Tarsus with afterburner) by making seemingly random movements while using afterburner and Shelton Slide (all 3 randomly). Hard to reproduce to great effect, although I have attained close to 800kps in an afterburner equipped Tarsus without getting bumped. Small increases (<10kps) are easy to attain, though.
  • Speed randomly frozen at ZERO upon launch from base (not a particular base). The time the ship is frozen can be quite long (I've confirmed 25 seconds!). AI ships fly just fine, making it a bit of an annoyance if there are hostiles. Rotational movement is not affected. It's possible that a particular key/action is required to free the ship. This is NOT an infrequent occurrence! (more than 1 in 10 launches). It turns out this is a Shelton Slide bug. When landing, if Shelton Slide key is pressed, GG will have it active when you launch, making you stuck at zero speed. Only way to get loose is to tap the Shelton Slide key, unsticking it.
  • Speed setting often affected in fights -- even those where only shields were damaged! Yes, without pressing + or -.
  • Speed upon launch from base is set to 50% (150kps for the Tarsus). Might be that way in the original, I don't recall, but a bit annoying nonetheless.

Ship AI
  • The AI in 1.03 displays some oddities at times where a ship (only retros?) will just be seen spinning in place, not doing anything. This will continue indefinitely. Similarly, ships will sometimes just fly in a slow circle (only retros?). In both cases, ships are completely passive, taking no evasive actions when fired upon -- nor returning fire.
  • AI seems to have no sense of other ships (player or other AI). I've frequently seen e.g. broadswords destroy each other by trying to occupy the same space in pursuit of a hostile vessel. Similarly with player ships (i.e. my ship), but I at least move out of the way ;)

Balance
  • Too many ships in general compared to the original. Especially too many different factions present at the same time. In the original, it was quite common for e.g. Troy system bases and nav points to be empty. In GG 1.03, that seems to be an extremely rare occurrence. This makes some missions harder, some simpler, but also affects things like smuggling (which is decidedly more difficult).
  • Way, way too few asteroids. While it's refreshing that asteroids don't just pop up out of nowhere like in the original, asteroid fields at present don't present any sort of navigational difficulty. In short, they are too easy -- both for the player and for the AI. To minimize framerate impact, some significant LOD would almost certainly be required.

Missions and Fixers
  • Roman Lynch shows up on [can't remember] even before the story line is initiated in New Detroit. He seems to recognize the player and talks of Bigg (sp?), IIRC.
  • Some autogenerated missions have strange base names, e.g. "New Constantinople1".
  • Active Missions in Quine / pad don't always reflect the actual active missions (will sometimes be zero even if non-zero).
  • Upon arrival of a "cargo" mission, cargo will sometimes not be unloaded from the ship and payment not made. Mission will be removed from the queue (not shown in Quine). May only be contraband missions. Cargo can be sold afterwards, so it's not too significant.

Damage
  • Shields not restored on launch from base. May have been this way in the original, it's been a while...
  • Engine and maneuvering thrusters not repaired by droid. Engine in particular is annoying, since it's possible to be stuck at arbitrarily small max speed despite having repair droid.

Rendering
  • The lighting model of the VegaStrike engine results in entities (ships, bases, asteroids etc) sometimes being completely invisible. This may be "correct" in the sense that the local sun is virtually the sole source of light and thus the "dark" side of any entity would be black. It is, however, not at all like the original and generally quite annoying. Adding a bit of ambient light entities would alleviate the problem.
fyo
Developer
 
User avatar
Posts: 77
Joined: 17 Jan 2008, 16:21

posted: 09 Jan 2010, 10:06

Thanks for the detailed report.
John
Project Lead
 
User avatar
Posts: 989
Joined: 11 Sep 2009, 08:00

posted: 10 Jan 2010, 02:38

OK, so this targeting issue has been bugging the cr*p outta me... so I downloaded the source code and took a look at what was going on. I don't know how much you guys (GG) mess around with the VegaStrike source, but in case it's even remotely useful, I'll share what I've dug up. Note that this was my first time looking at the source code and it's... sparsely... documented. Anyway, to wit:

The "h" key is set to "NearestTargetKey" (see vegastrike.config file), which sounds promising enough.
NearestTargetKey maps to FireKeyboard::NearestTargetKey (unsurprisingly).
The FireKeyboard::NearestTargetKey function sets the neartargetkey variable. Note the -est in nearest is dropped, which may hint at something ;).
Anyway, when neartargetkey is set, FireKeyboard::Execute calls:

ChooseTargets(parent,TargNear,false)

(this, and most of the following, is in the ai/cmd/firekeyboard.cpp file)

Now we're starting to get to the meat of it. parent simply refers to the player ship (unit) and false indicates forward cycling (as opposed to reverse) through targets. TargNear is somewhat more complicated (I'll get to it in a minute), but it's a function of two units (the player ship and the potential target).

Looking closer at the ChooseTargets function, it works by traversing the "master" draw list (ALL objects in active starsystem that are rendered), starting at the entry of whatever (if anything) is currently targeted (and then moving forward or backwards in accordance with the third parameter above).

- find unit in draw list currently being targeted.
- move pointer to next unit in list.
- if that unit is NOT "me" AND has a hull AND TargNear returns true, this is what is targeted.

TargNear now becomes a very interesting little function ;)

One interesting conclusion we can already draw is that this function does NOT (necessarily) return the NEAREST target. It'll return the first target in the master draw list that fulfills the requirements. It doesn't make a list of possible targets and then choose the nearest. I.e. the ChooseTargets function doesn't actually choose targets, just 1 target.

TargNear returns true IF:

me->getRelation(target)<0 OR TargThreat(me,target) OR target->getRelation(me)<0 AND "TargAll" AND is a unit, not a missile

The getRelation stuff is what makes "h" target a "hostile" ship. Basically, if he's pissed at me or I'm pissed at him, then that part evaluates true. TargThreat returns true if e.g. the target has "me" targeted (regardless of whether one of us is pissed at the other).

TargAll is where distance and radar cone of operation (maxcone) come into play (through a function nicely named "InRange", located in the unit_generic.cpp file).

Bottom line:

The unit chosen as a target when pressing "h" is the next hostile unit in the master draw list within range/radar maxcone.

It's not the nearest hostile target, except in those circumstances where it just happens to be that one that appears next in the master draw list.
It doesn't matter if the target is targeting another ship or you. Firing on you or another ship. Or anything else for that matter.

Going through the code confirms what I've experienced while playing: It's perfectly possible to be in a situation where, with nothing targeted, pressing "h" gets you a seemingly random (hostile) target ship and not the one right in front of you making a hole in your hull. It's also NOT possible (generally) to target the bastard RIGHT behind you pling'ing your hull; targets need to be in within the (max) cone of operations of the radar.

That last value (maxcone), btw, is set to 42degrees for all scanners available in GG. (Anyone know where this number comes from? Seems fairly random, other than enabling targeting of NEARLY everything in a 90 degree FOV).
fyo
Developer
 
User avatar
Posts: 77
Joined: 17 Jan 2008, 16:21

posted: 10 Jan 2010, 04:18

Does this mean that code can be added for ordering targets when H is pressed?

target 1st: distance (less than) <2000 with parent targeted. (the one behind you kicking your butt) if no target then,
target 2nd: nearest hostile

I think this would be awesome, (if I ever can get it to run)
phatman
 
Posts: 4
Joined: 09 Jan 2010, 07:39

posted: 10 Jan 2010, 11:56

phatman wrote:Does this mean that code can be added for ordering targets when H is pressed?

target 1st: distance (less than) <2000 with parent targeted. (the one behind you kicking your butt) if no target then,
target 2nd: nearest hostile

I think this would be awesome, (if I ever can get it to run)


Anything can be added ;)

The question is at what cost... Admittedly, performance isn't super critical (especially in non-multiplayer), but you'd still be pretty annoyed if the whole game froze (more than it already does) when pressing "h".

To ensure getting the nearest hostile, you'd have to:

1) Traverse the ENTIRE master draw list
2) Sort a (very small) subset of it

#1 isn't as expensive as it sounds... the list is used to render everything, so it's traversed every single frame.
fyo
Developer
 
User avatar
Posts: 77
Joined: 17 Jan 2008, 16:21

posted: 11 Jan 2010, 20:56

Couple observations;

I had the original Privateer and later the Righteous Fire expansion. The way I remember it there was a fully color coded radar, friendlies in blue, hostiles in red, nav points neutral gray, and loose cargo (for the tractor beam) in green. The manual does indeed say that, hunter is friend or foe color coded, B&S is "Fully Color Coded", except whatever model B&S you mount there's no color coding at all.

Second item is the ITTS don't work correctly - the diamond is always centered on the target even if it's moving sideways, the diamond is supposed to be a lead angle computer showing where the target will be when the shots arrive.

Suggestions - I like the new space battles with multiple ships fighting it out, but the confed or the militia should be too busy to scan you for contraband in the middle of a firefight with pirates and retros. :roll:

I don't remember offhand if this was from the original Privateer or something like Elite, but if you get caught with contraband or accidentally blow up a friendly, it would be nice to be able to pay a fine at the nearest base instead of being a criminal forevermore. I get scanned for contraband while helping the militia fight retros, too busy to dump cargo at the moment, now the militia is hostile, make it back to a base without getting killed does no good since any time I go anywhere after that the militia wants to blast me.
sniper297
 
Posts: 9
Joined: 11 Jan 2010, 20:36

posted: 11 Jan 2010, 21:21

sniper297 wrote:I don't remember offhand if this was from the original Privateer or something like Elite, but if you get caught with contraband or accidentally blow up a friendly, it would be nice to be able to pay a fine at the nearest base instead of being a criminal forevermore.


That would be Elite, not Privateer.

I get scanned for contraband while helping the militia fight retros, too busy to dump cargo at the moment, now the militia is hostile, make it back to a base without getting killed does no good since any time I go anywhere after that the militia wants to blast me.


This behavior is a bit different than the original, if I recall correctly. The cops got pissed in the original, but didn't stay that way if you didn't kill them. Either the faction standing penalty was less or temporary or something. In fact, I seem to recall that jumping was enough, so maybe it was just those particular militia/confed ships that turned hostile. If so, something like that could be done in the VegaStrike engine as well. I don't recall the variable name and I don't think the hostility of those particular units would reset on landing -- but your standing with the entire faction (e.g. Confed or Militia) wouldn't suffer.
fyo
Developer
 
User avatar
Posts: 77
Joined: 17 Jan 2008, 16:21

posted: 12 Jan 2010, 00:15

[quote="sniper297"]I don't remember offhand if this was from the original Privateer or something like Elite, but if you get caught with contraband or accidentally blow up a friendly, it would be nice to be able to pay a fine at the nearest base instead of being a criminal forevermore. [/quote]
Something like this becomes available in the RF campaign at one particular base.
turbo
Developer
 
User avatar
Posts: 319
Joined: 20 Feb 2007, 03:18
Location: Atlanta

posted: 12 Jan 2010, 06:46

That's probably what I remember, some kind of fixer who does that. I'm 56 years old and I had way too much fun back in the '60s, so I don't have a lot of brain cells left, and I'm probably confusing some of it with assorted RPG games where you join the thieves guild to get your bounties paid off at half price or something. :lol:

Speaking of senile old geezers, disregard the color coding gripe - I had the B&S confused with the other one that has no color coding, the B&S does indeed show ejected pilots in brown, other cargo and missiles in yellow. I double checked the LCOS tho, the diamond is always fixed in the center of the target regardless which way it's heading, in other words it don't lead the target the way it's supposed to.

Other strange problem I sometimes run into, come thru a jump point or out of autopilot, big mass of ships - with me inside of a paradigm, colliding with it if I try to move outside of it. Picking another nav marker and hitting autopilot is the only thing I've found to escape that glitch, obviously that's not an option if there are hostiles in the area.
sniper297
 
Posts: 9
Joined: 11 Jan 2010, 20:36

posted: 16 Jan 2010, 14:47

Win XP SP3, 1.03
Some problems:

-Speech is often too silent, or music too loud.
-Why i cannot sell launchers? At the beginning torpedoes are the best, but later missiles are preferable. (and when the purchase is done it is done indefinitely - you have to change the ship to change launcher)
-Didn't that secret compartment for contraband stay permanent? Because here it is used only for that mission.
-Credits for missions are smaller than before (but i don't mind)
-Retros are usually pretty stupid as someone mentioned before.
-My boosted steltek weapon stays boosted forever and i can never get to righteous fire (even-though the ending movie appears)
-once i was chased by 5 or more drones, that's maybe the problem why the boosted weapon never gets unboosted.

I think i got it all from my side and I must say that I appreciate your work for getting this game alive again.
Epic
 
Posts: 1
Joined: 16 Jan 2010, 14:29

Next

Return to New Detroit Com Link



cron