View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0003008 | AI War 1 / Classic | Gameplay Issue | Mar 7, 2011 8:12 pm | Mar 23, 2011 11:59 pm | |
Reporter | rustayne | Assigned To | Chris_McElligottPark | ||
Status | resolved | Resolution | fixed | ||
Product Version | 5.002 | ||||
Fixed in Version | 5.007 | ||||
Summary | 0003008: Performance woes | ||||
Description | The latest game we started bout 20 hours ago or so. We have done quite a bit, own 45 planets, and are quite stable in the game. We have the fallen spire on, and are about to finish it. Sadly though, every time the AI launches a wave at us, it brings both our computers to it's knees. The last 2 or 3 waves we have recieved have brought both my computers down to 3-4 fps, with it being very laggy. Our bottleneck does have a bit in it, but should not be the reason for this kind of performance. An hour earlier my friend had his fleet out attacking an arm, and was great til the wave hit. Lag until the turrets and my ships could finish it off. We aren't overly sure what the problem is, but I imagine it might have something to do with either the snipers or the fortress's as they are the only things that have full range of the gates, aside from the fallen spire cruisers etc. I attached a save in hopes you can find what is wrong here. | ||||
Tags | No tags attached. | ||||
Internal Weight | |||||
|
|
|
How many ships are coming in? Even with a single system, my 800 ships vs. a 800 ship arriving wave causes noticeable lag on my machine. And that is with no networking overhead. |
|
about 2000 to 3k. Thing is that earlier in the game, we had no issues with that amount. Also, on my single player game on the same computer with 4-5k ship coming in didn't create nearly as much lag. It is fine if it is running 15-20 fps, but 2-5 is really bad. We moved our fleet up to a new bottleneck with no defenses aside from our fleets and we are still getting the same issues. So i don't think it is the snipers/fort's like I originally thought. |
|
This is about 2k to 3k AI ships, against well over 7600 human allied units. I don't think I've ever seen a battle quite that large -- that's 3000 x 7600 = 22.8 million checks PER TARGETING CYCLE. And there are thousands of calculations per check, which means that this is having to run billions of calculations for the fight. 800x800 ships, by contrast, is 640k checks per targeting cycle, by contrast, and so it is an incredibly different sort of scale. Even on my brand new quad core sandybridge, I'm getting like 3fps in this simulation, which I thought must be wrong, but I wasn't sure. In general, clustering so much stuff on one planet (it looks like a full cap of.. well, everything, pretty much) is something the game tries to discourage as much as possible, because it's both strategically uninteresting in most cases as well as being a real performance hog. That said, I'm looking at it to see where the performance woes actually are, but my hopes are not abundantly high at the moment, let's just say. ;) |
|
Interestingly, though, what I'm finding is that the targeting throttles are actually holding their own even under this load -- evidently. When I took out all ability for the ships to target seek or to attack, it was still just as slow. So there's something else that isn't being throttled well enough, evidently. |
|
Hey, you should release that "no attack" version of the game. It should appeal to the "non-violence" crowd out there. :P (Seriously though, did you remember to turn it back on. I'm pretty sure you don't want that change leaking into the next release. :D) |
|
I haven't turned it back on YET, I'm still turning stuff off to see where the woes are. That's a critical part of woe-finding, and we do it every few releases, we just generally aren't in the habit of mentioning it. Occasionally some testing something slips through, but that's incredibly rare compared to how often we instrument some part of the code temporarily. |
|
Well, it's something in the ship movement routines. I have a sneaking suspicion that I might know what this is... |
|
Okay, it's actually all because of gravity drains that the AI is using. THAT I can actually fix in some manner, although this sort of scale of battle is still pushing things (but with the gravity effects disabled I'm getting 50fps, so it's certainly workable if you have the hardware, which it sounds like you do). |
|
Grr. Gravity units. Slow down the checks too much, and you get units that can quite some distance before the gravity "catches" them. Speed up the checks too much, and you get massive lag. Sounds tricky find a good balance. :\ |
|
Yeah. I found a few things I can improve that seem like oversights, though, so we'll see. It looks like it is applying to immobile objects, which it can obviously skip. And it also looks like it is applying to objects not currently moving, which I can also skip. That should skip most ships in this particular battle, so that might be all that's needed here, without affecting performance. Should have had those checks in there before, but somehow they seem to have been missed. Of course, if then a significant number of human ships DO move, this could still dip a lot, but even then it would be vastly better than it was, I'm guessing. |
|
Well I moved the battle up 3 jumps north of that bottleneck position with just my fleet, and the other player was off cleaning a few worlds, and we were still having the same lag issues. It only happened on waves though mostly. The spirecraft waves that kept hitting us would be really fast for the first 3 or 4 seconds, and then come to a halt as it picked up the speed difference due to logistics, and then it would bog down really bad. I moved half my fleet out into another system in a effort to cut down the lag, but to no avail sadly. I understand that our play style is...well unusual, and we do expect a degree of lag and slow gameplay this far in, but 2-3 fps when waves hit, and as soon as they are dead back to normal seems a bit odd. I'm glad your hunting it down though, and I hope you find what the problem is. |
|
Actually, having the massive battles be exponentially slower than any other part of gameplay is perfectly normal in the extreme unit cases, that's what I was trying to say (it's a multiplicative issue), but in this case it looks to be simply the gravity rippers are ripping apart the framerate. Just messing with that some, I've more than doubled the working framerate during that battle. That's still pretty laggy when there's a ton of gravity drains, but it's waaaay more playable. There's one other idea I'm toying with that might make it even better, but we'll see how that goes. |
|
Okay, for me this is as solved as it looks to be. I've managed to triple the framerate to around 10fps on average on my machine, and then it quickly jumps up even further once the gravity drains are dead. * The efficiency of gravitational slowing (gravity drains, gravity turrets) has been greatly improved, such that big battles that previously would grind to a halt because of them can now be played at 3x their prior framerate in one test case in particular. ** One major improvement was to exclude checking of gravitational slowing for ships that can't move or aren't moving at the moment (since they don't need to be slowed!), and the other was to skip redundant gravitational slowing checks for gravitational sources that are the same and which are too close together. This last is very similar to how the speed improvements on the range data display (from way back pre-2.0 days) works. |
Date Modified | Username | Field | Change |
---|---|---|---|
Mar 7, 2011 8:12 pm | rustayne | New Issue | |
Mar 7, 2011 8:12 pm | rustayne | File Added: Performance Issues 5.002.sav | |
Mar 7, 2011 9:05 pm | TechSY730 | Note Added: 0010956 | |
Mar 7, 2011 10:36 pm | rustayne | Note Added: 0010959 | |
Mar 23, 2011 10:58 pm | Chris_McElligottPark | Note Added: 0011406 | |
Mar 23, 2011 10:58 pm | Chris_McElligottPark | Assigned To | => Chris_McElligottPark |
Mar 23, 2011 10:58 pm | Chris_McElligottPark | Status | new => confirmed |
Mar 23, 2011 11:01 pm | Chris_McElligottPark | Note Added: 0011407 | |
Mar 23, 2011 11:04 pm | TechSY730 | Note Added: 0011409 | |
Mar 23, 2011 11:06 pm | Chris_McElligottPark | Note Added: 0011410 | |
Mar 23, 2011 11:09 pm | Chris_McElligottPark | Note Added: 0011412 | |
Mar 23, 2011 11:15 pm | Chris_McElligottPark | Note Added: 0011415 | |
Mar 23, 2011 11:17 pm | TechSY730 | Note Added: 0011416 | |
Mar 23, 2011 11:17 pm | TechSY730 | Note Edited: 0011416 | |
Mar 23, 2011 11:19 pm | Chris_McElligottPark | Note Added: 0011417 | |
Mar 23, 2011 11:22 pm | rustayne | Note Added: 0011418 | |
Mar 23, 2011 11:36 pm | Chris_McElligottPark | Note Added: 0011419 | |
Mar 23, 2011 11:59 pm | Chris_McElligottPark | Note Added: 0011420 | |
Mar 23, 2011 11:59 pm | Chris_McElligottPark | Status | confirmed => resolved |
Mar 23, 2011 11:59 pm | Chris_McElligottPark | Fixed in Version | => 5.007 |
Mar 23, 2011 11:59 pm | Chris_McElligottPark | Resolution | open => fixed |
Apr 14, 2014 9:28 am | Chris_McElligottPark | Category | Gameplay - General Complaint => Gameplay Issue |