[1.18] Bugs and Observations

Just got into the Beta a couple days ago, and love it so far. Here’s my list of Observations:

– I, like many others, have encountered the bug where you alt-tab out to Windows, and when you try to tab back in, you get a windowed screen, totally black. Running XP Pro, E8500, and a GeForce 9600.

– I’ve seen a couple of times where ships will actually fly off the edge of the map. And other ships attacking that one will persue it off the edge.

– I’d like to have the ability to zoom out further than is now possible. If you have two battle groups engaging in two seperate sectors of the map, it is not possible to watch both at the same time. Its true that its not terribly difficult to move back and forth, but that can get frustrating in a fluid situation.

– I’d like to see point-defense weapons able to engage enemy fighter-class ships. It seems intuitive to me that a close-range, strafing bomber is exactly the sort of thing that point-defense weaponry is for. So far as I can tell, right now those weapons can engage only missiles and torpedos. Useful, to be sure, but could be better.

– It seems to me that the priority system needs some work. I’ve seen Heavy Cruisers with anti-capital ship weapony fly in little circles shooting at fighters while my other battle group was being decimated halfway across the map. In that situation, the ‘attack fighters’ order was set to like 2%, and ‘attack cruisers’ was set to 80%. I have also seen squadrons of my bombers get bogged down in a dogfight that they were ill-equipped to handle, even though their priority to attack capital ships was set much higher.

The only way I have found to prevent this sort of thing is to delete the ‘attack fighters’ order altogether. That’s not an ideal solution, because then my ships won’t engage enemy fighters at all, even if they’re the only thing in range while the ships are en route to their primary targets. I’m fine with my Cruisers or Bombers taking potshots at fighters on the way past if they’re the only thing close enough to shoot at. But if you’re ordered to engage capital ships, you should always be moving towards a capital ship, and once you’re in range, you should be ignoring targets that aren’t your top priority, instead of wasting heavy-weapons fire failing to hit them. There’s got to be some sort of middle-ground solution to achieve that.

It can be tricky because some weapons have long load times, and if you let them shoot at targets they arent directly ordered to engage, it can be frustrating for them to have to wait once the real target is there, before they shoot. As humans, we can obviously spot situations where the main enemy is miles away and the load time is short and it makes sense, but getting AI to correctly make those sorts of decisions is harder than it sounds :smiley:
It always seems easy, until you get to those edge cases, and special situations. If the ship only has orders to attack cruisers, and the one enemy cruiser is on 1% health and surrounded by your ships, it makes sense to risk engaging nearby frigates if you are half way across the map, but make all of those variables slightly fuzzier and it comes down to a tricky balancing act of deciding what to do.

Yeah, it’s tricky.

At the moment I find I usually have to make specialised anti-fighter ships, because in most cases it’s too disruptive of my deployment to have ships start ‘chasing’ the fighters that fly over them.

In the long term, what’d be awesome, would be a little more flexibility in the targeting.

Say, make it possible to set the rules for the primary targeting (moving, firing weapons where specific priorities weren’t set) and also be able to set rules for individual weapons. The most obvious example, is a missile cruiser. You want the cruiser to target cruisers/frigates only, so it’d move towards them, and not waste missile fire on fighters. But you also want to be able to set an order on their fast tracking weapons to target fighters as a priority.

If you didn’t want to make it a ‘per module’ setting, you could classify weapons into general types, or, even easier just by their tracking value:
I could set my primary (movement) target to cruisers (90%) and frigates (40%) (so ship moves to them)
I’d set my ‘heavy’ (under 0.5 tracking) weapons with a strong preference for cruisers (90%) then frigates (40%)
I’d set my ‘medium’ (0.5 to 1.0 tracking) weapons with a preference frigates (60%), then cruisers (40%), then fighters (1%)
and my ‘light’ (over 1.0 tracking) weapons with a strong preference for fighters (99%), then frigates (20%), then cruisers (1%)

You wouldn’t need to let people define the tracking values that seperate the weapon types, and these are just suggestions. Light should probably be over 1.5 or something like that.

As far as GUI… You could leave it as is, just add three new orders. ‘targeting: light weapons’, ‘targeting: medium weapons’, ‘targeting: heavy weapons’. The order pane for these would just be three sliders - for setting the preference 0% to 100% for fighter/frigate/cruiser. The already existing orders would effectively set the ‘defaults’ for your ship, and control it’s movement. These optional targeting orders would play over that, at the point where a weapon picks it’s target.

I think there are two aspects of the targeting problem: movement target selection and low-probability targeting.

The movement target selection issue is that there is currently no way to tell a ship not to move to engage a class of ships without forbidding the ship from firing at those ships completely. I’d like to tell most of my cruisers and frigates to steer themselves only with respect to enemy cruisers (and maybe frigates), but I don’t want them to avoid shooting at fighters and frigates while they’re moving into range of a better target. I think the simplest way to resolve this is to either add a check box to the existing “Attack X” orders that says “Do not pursue” or treat 0% engagement priority as the equivalent. This would control the ship’s choice of movement targets, but not their ability to shoot at ships of the given class. This idea wouldn’t prevent the 1% hull cruiser scenario cliffski described (if a ship has 0% frigate priority it’ll still steer for the doomed cruiser), but it would fix the biggest peeve most people have with targeting orders, the “wandering cruiser syndrome” you see when a slow ship tries to chase a bunch of fast fighters across the map.

The low-probability targeting issue is that slow firing weapons shouldn’t waste shots on targets that they have little chance to hurt, even if that there are no better targets within maximum range at the moment. If there is a better target just outside of the maximum range, the weapon should wait and let the ship maneuver to get better target into range (if the nearest good target is on the far side of the map the gunners might as well try their luck). For these purposes, poor targets are ones that require lucky or critical hits: ships moving faster than the weapon’s tracking speed or which have high enough shield or armor resistances to be immune to the weapon’s damage. The game would probably need to keep track of which ships are poor targets for a given weapon and update its list from time to time, but it probably would not need to update often (ship speeds don’t change very frequently and shield and armor damage take a while to accumulate).

I’m pretty sure that better low-probability targeting can be implemented transparently to the user with no special orders or UI needed. What the game should do is calculate an “engagement range” that is larger than the maximum range by a certain amount, and only settle for a low-probability shot if there is no good target within that larger range. A good way to calculate the engagement range would be max_range + ship_speed * fire_interval (missile launchers might want to use their maximum time of flight, fuel / missilespeed, instead of fire_interval). This formula makes it likely that the weapon will be ready to fire again before the better target is in range.

Now, I’m no code monkey, so I can’t tell you exactly how to implement it, but it seems like this could be easily solved with a sequnce of IF/Else checks.

– If a target of highest priority is within specified maximum engagment range: Do Nothing
— Else: Choose nearest target of highest priority and intercept.

– If a target of specified max priority is within range: Fire upon it.
— Else: If a target of 2nd highest priority is within range: Fire upon it.
---- Else: If a target of 3rd highest priority is within range: Fire upon it.

You’d also have to factor in checks for orders like cooporative and vulture, if multiple ships of highest priority are within range.

It might get a little cumbersome to run that sequence of checks every shot for every weapons module. But you could at least run it once every 10 seconds per ship, or run it when new targets come within range. Its not perfect for situations where a primary target is just about to come within range, there’d still be some leakage there. But it’d certainly be better than having to tell capital ships to completely ignore fighters in all sitations, or else they’ll go galavanting off across the map chasing a stray interceptor or two.

I wish the target code was that simple :smiley:
There are tons of factors, like preferring to shoot tractored ships, taking into account if we shot that ship a lot previously (recently) and it was futile, our calculated chances of hitting that target, etc etc…

I’ve shown off the game to four friends in the past week or so. And in all cases, after a comment about how cool the graphic look in the actual battles, as the ships enter engagment range they’ve asked me to zoom out further. To which have to keep responding that I can’t. Sadness.