Author Topic: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)  (Read 5496 times)

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #15 on: July 15, 2009, 03:14:50 am »
Wheee....

Code: [Select]
2009/07/15 17:13:02
-----------------------------------Application_ThreadException-----------------------------------
System.NullReferenceException: Object reference not set to an instance of an object.
   at AIWar.ForegroundObject.RenderShipToShipLines(Direct3DRenderer R) in C:\vcprojs\AIWar\Framework\ForegroundObject.cs:line 7252
   at AIWar.GameForm.DrawDirect3D() in C:\vcprojs\AIWar\GameFormParts\GamePanel.cs:line 486
   at AIWar.GameForm.RunNextCycle(Boolean DoRendering, Boolean DoScrollingAndInput) in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 1100
   at AIWar.GameForm.gameLoop() in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 243
   at AIWar.GameForm.GameForm_Load(Object sender, EventArgs e) in C:\vcprojs\AIWar\GameFormParts\Startup.cs:line 274
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #16 on: July 15, 2009, 05:21:53 am »
More random numbers on the planet overpopulation issues:

Three planets:

A: Tech IV, since start of game
B: Tech II, since about 30 minutes into game
B: Tech IV, since about 60 minutes into game
C: Tech II, since about 2:30 minutes into game
D: Tech II, since about 3:00 minutes into game

Current game time is about 3:20.

A went from just over 100 IV ships, to currently 129 III, 812 IV, 23 V. (And has Other at 609, I'm guessing it's got a large flock of perma-mines.)
B from over 100 II ships, to currently 108 I, 785 II.
C went from over 100 IV ships, to currently 36 III, 265 IV, 8 V.
D went from over 200 II ships, to currently 53 I, 567 II.
E went from almost 400 II ships, to currently 56 I, 420 II.

B, C, and E are all in line with what I would expect, A and D are going up way too quickly. Co-incidentally enough both A and D have a single special forces command base. And there are no "trails" of ships heading towards a wormhole or anything, so it looks like that might be the cause of the overpop. It looks like the special forces' guys are bolstering the world's forces, probably at the world's tech level, which is why they're going up so fast (and why I just lost 1500+ ships at the wormhole defenses of the world poking my nose in to see how it's working... :( )

D will be a relatively easy, though probably slowish kill, but A is pretty much impossible with what I've got at the moment (Tech II level base ships and nothing more), and by the time I get Tech IV to hit it, it will likely have at least doubled it's forces, which will make it almost unbeatable (the last one I followed was a Tech III of a similar type to this Tech IV, went from 100ish III's at the start, to over 3000 III's (along with IV's and Cores) when I gave up on the game).

Anyway, more data to poke at. :)

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #17 on: July 15, 2009, 06:00:01 am »
This game is certainly exceptional. :)

Code: [Select]
2009/07/15 19:57:35
-----------------------------------Application_ThreadException-----------------------------------
System.Exception: Game Command Text:0|25|-1|-1|-1|0|0|0|-1|-1|0|
System.NullReferenceException: Object reference not set to an instance of an object.
   at AIWar.ForegroundObject.CreateStateString(StringBuilder Builder) in C:\vcprojs\AIWar\Framework\ForegroundObject.cs:line 7883
   at AIWar.GameForm.DoFullSync(Boolean IsForSave, Boolean IsForDump, Boolean ShowDialogs, Int32 JustForPlayerNumber) in C:\vcprojs\AIWar\GameFormParts\NetworkHandling.cs:line 1479
   at AIWar.GameForm.DoSaveGame(String Filename, Boolean ShowDialogs) in C:\vcprojs\AIWar\GameFormParts\NetworkHandling.cs:line 1402
   at AIWar.GameCommand.Execute() in C:\vcprojs\AIWar\Framework\GameCommand.cs:line 694
   at AIWar.GameForm.RunNextCycle(Boolean DoRendering, Boolean DoScrollingAndInput) in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 480
   at AIWar.GameForm.RunNextCycle(Boolean DoRendering, Boolean DoScrollingAndInput) in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 486
   at AIWar.GameForm.gameLoop() in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 243
   at AIWar.GameForm.GameForm_Load(Object sender, EventArgs e) in C:\vcprojs\AIWar\GameFormParts\Startup.cs:line 274
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

EDIT: and even more exceptional! :)

Code: [Select]
2009/07/15 20:02:51
-----------------------------------Application_ThreadException-----------------------------------
System.NullReferenceException: Object reference not set to an instance of an object.
   at AIWar.ForegroundObject.MovePlayerUnit(Boolean RecalculateFull) in C:\vcprojs\AIWar\Framework\ForegroundObject.cs:line 3937
   at AIWar.GameForm.RunNextCycle(Boolean DoRendering, Boolean DoScrollingAndInput) in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 781
   at AIWar.GameForm.gameLoop() in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 243
   at AIWar.GameForm.GameForm_Load(Object sender, EventArgs e) in C:\vcprojs\AIWar\GameFormParts\Startup.cs:line 274
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

EDIT2: there appears to be an exceptional pattern forming! :)

Code: [Select]
2009/07/15 20:02:51
-----------------------------------Application_ThreadException-----------------------------------
System.NullReferenceException: Object reference not set to an instance of an object.
   at AIWar.ForegroundObject.MovePlayerUnit(Boolean RecalculateFull) in C:\vcprojs\AIWar\Framework\ForegroundObject.cs:line 3937
   at AIWar.GameForm.RunNextCycle(Boolean DoRendering, Boolean DoScrollingAndInput) in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 781
   at AIWar.GameForm.gameLoop() in C:\vcprojs\AIWar\GameFormParts\GameLoop.cs:line 243
   at AIWar.GameForm.GameForm_Load(Object sender, EventArgs e) in C:\vcprojs\AIWar\GameFormParts\Startup.cs:line 274
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
« Last Edit: July 15, 2009, 06:18:09 am by darke »

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #18 on: July 15, 2009, 10:29:45 am »
Maybe. I would still expect most people can tell when to cut their losses and start a new game, rather then trying to continue to fight out what is obviously going to be either a loosing game because your head's been cut off, or a loosing game because recovering from the assault is going to take enough time that it's given the AI enough edge that you'll never quite be able to push ahead fast enough. :)

Well, that's true.  I really meant more that the reason for stopping is "the AI was going to win," not "I couldn't win in a reasonable amount of time."
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #19 on: July 15, 2009, 10:35:08 am »
This game is certainly exceptional. :)

Can you send me the savegame that is generating this?  Looking at all of the lines of code that are having these exceptions, it's really quite inexplicable that they would throw that sort of exception.  In all of those lines, they are throwing a null reference exception on something that has a null check right before it, or sometimes even included as the first part of the if clause on the same line.  I can't think what would cause this to suddenly stop working on your machine (this is not new code).
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #20 on: July 15, 2009, 11:10:32 am »
This game is certainly exceptional. :)

Can you send me the savegame that is generating this?  Looking at all of the lines of code that are having these exceptions, it's really quite inexplicable that they would throw that sort of exception.  In all of those lines, they are throwing a null reference exception on something that has a null check right before it, or sometimes even included as the first part of the if clause on the same line.  I can't think what would cause this to suddenly stop working on your machine (this is not new code).

... actually, just had a thought. Do these things have a sound being triggered nearby? I just had to unplug my sound blaster card due to it seeming like it was flaking out (like, BSODs and the like), and I haven't encountered this since. (And it's been a while since I encountered it too, so the save is going to be completely different.)

Clicking to move a player unit I know makes a beep sound, so it's possibly the other thread that's killing things and we're getting an odd null pointer exception as a result?


Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #21 on: July 15, 2009, 11:20:04 am »
... actually, just had a thought. Do these things have a sound being triggered nearby? I just had to unplug my sound blaster card due to it seeming like it was flaking out (like, BSODs and the like), and I haven't encountered this since. (And it's been a while since I encountered it too, so the save is going to be completely different.)

Clicking to move a player unit I know makes a beep sound, so it's possibly the other thread that's killing things and we're getting an odd null pointer exception as a result?

Unfortunately, these are almost certainly not sound related, because they are in 1) rendering logic, or 2) movement logic.

Due to thread safety, those null checks should not be evaluating wrong.  Take this example:

if ( NotNullCheck && ConditionUsingTheNullThing )

There's no way there should be a null reference exception on that line, and yet there was -- also, the opposite with a boolean or should be fine.  This is because the checks in an if statement stop on the first failed boolean it finds, but from your errors it was almost like your runtime had suddenly decided not to do that anymore.  That's super strange.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #22 on: July 15, 2009, 11:32:36 am »

Unfortunately, these are almost certainly not sound related, because they are in 1) rendering logic, or 2) movement logic.

Due to thread safety, those null checks should not be evaluating wrong.  Take this example:

if ( NotNullCheck && ConditionUsingTheNullThing )

There's no way there should be a null reference exception on that line, and yet there was -- also, the opposite with a boolean or should be fine.  This is because the checks in an if statement stop on the first failed boolean it finds, but from your errors it was almost like your runtime had suddenly decided not to do that anymore.  That's super strange.

Hrm... sounds like I need to run a memory tester then. Either that or Vista needs to be reinstalled again. It wouldn't surprise me between crappy copy protection, development tools and memory debuggers, and general windows registry being pretty yuck I tend to have to do it often, though I was hoping to get by until Windows7 comes out...

I'll see if I can replicate it and toss you a nearby save game (and probably run a memory test whilst I'm asleep tonight).

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #23 on: July 15, 2009, 11:35:27 am »
Hrm... sounds like I need to run a memory tester then. Either that or Vista needs to be reinstalled again. It wouldn't surprise me between crappy copy protection, development tools and memory debuggers, and general windows registry being pretty yuck I tend to have to do it often, though I was hoping to get by until Windows7 comes out...

I'll see if I can replicate it and toss you a nearby save game (and probably run a memory test whilst I'm asleep tonight).

Okay, thanks.  Hopefully there's nothing too seriously wrong there.  It's also possible that the line numbers were slightly off (usually too low), and that there is actually an issue on some other line.  But I am already in the habit of checking nearby lower lines just in case with something like this, and I see nothing that should fail if the above condition was all right.  A savegame would help me duplicate it if you are getting it a lot, but the fact that you got a whole spate of them all in one short time, and then nothing after that, points to potentially some outside factor like you were suspecting.  Very odd.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #24 on: July 15, 2009, 11:57:43 am »
More random numbers on the planet overpopulation issues:

Three planets:

A: Tech IV, since start of game

A went from just over 100 IV ships, to currently 129 III, 812 IV, 23 V. (And has Other at 609, I'm guessing it's got a large flock of perma-mines.)

D will be a relatively easy, though probably slowish kill, but A is pretty much impossible with what I've got at the moment (Tech II level base ships and nothing more), and by the time I get Tech IV to hit it, it will likely have at least doubled it's forces, which will make it almost unbeatable (the last one I followed was a Tech III of a similar type to this Tech IV, went from 100ish III's at the start, to over 3000 III's (along with IV's and Cores) when I gave up on the game).


Did manage to take it out, more out of curiosity then actual use in game. Took 11 electric missiles tactically placed, and losses of about 1200 ships of various Tech I to III (only had one tech III type ship though, mostly I and II), and took about 30 minutes of game time. Also forgot to mention it had an Ion Cannon on it, which I took out as soon as I humanly could. :)

Really need to work out why the ones with special forces bases are shooting up so incredibly quickly though. :)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #25 on: July 15, 2009, 12:36:45 pm »
More random numbers on the planet overpopulation issues:

Three planets:

A: Tech IV, since start of game

A went from just over 100 IV ships, to currently 129 III, 812 IV, 23 V. (And has Other at 609, I'm guessing it's got a large flock of perma-mines.)

D will be a relatively easy, though probably slowish kill, but A is pretty much impossible with what I've got at the moment (Tech II level base ships and nothing more), and by the time I get Tech IV to hit it, it will likely have at least doubled it's forces, which will make it almost unbeatable (the last one I followed was a Tech III of a similar type to this Tech IV, went from 100ish III's at the start, to over 3000 III's (along with IV's and Cores) when I gave up on the game).


Did manage to take it out, more out of curiosity then actual use in game. Took 11 electric missiles tactically placed, and losses of about 1200 ships of various Tech I to III (only had one tech III type ship though, mostly I and II), and took about 30 minutes of game time. Also forgot to mention it had an Ion Cannon on it, which I took out as soon as I humanly could. :)

Cool stuff!

Really need to work out why the ones with special forces bases are shooting up so incredibly quickly though. :)

My guess is that it's all the ships from neighboring systems that just happen to be passing through at the time.  Also, I think the AI weights planets with special forces command posts as a bit higher when they are doing reinforcements, so more of their reinforcements may be tending to fall there all else being equal.  I'd have to check on that to be sure, though.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline darke

  • Hero Member
  • *****
  • Posts: 534
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #26 on: July 15, 2009, 01:19:18 pm »
Really need to work out why the ones with special forces bases are shooting up so incredibly quickly though. :)

My guess is that it's all the ships from neighboring systems that just happen to be passing through at the time.  Also, I think the AI weights planets with special forces command posts as a bit higher when they are doing reinforcements, so more of their reinforcements may be tending to fall there all else being equal.  I'd have to check on that to be sure, though.

Not from memory. All the ships flying through from neighboring systems are were tech level I, since I only had a small amount of AI progress at the time, so they don't explain the population explosion of the Tech II or Tech IV ships. I recall sitting there and staring at things trying to work out what was going on, the Tech IV planet that had, and kept a low population didn't have any special forces posts in it, but it had an incredible number of special forces ships patrolling through wormholes, yet it still had a quarter the pop of IV ships the special forces based ones.

The special forces IV in comparison was literally a tiny amount of ships flying around, and they were all tech level I, but had massive emplacements of Tech IV ships. Similar with the Tech II with special forces. Not many ships flying around, all Tech I, but a much larger defense force of Tech II, then non-special forces bases one, literally half in this case.

Might be worth starting a game on that massively hard galaxy I posted and cheat horribly with it to see what happens, I think a few of the IV planets had an assortment of special forces or not, so it'd be a good comparison as to how different it is. :)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Prerelease 1.010H (Tug/Tractor Fixes, Bigger Build Queues)
« Reply #27 on: July 15, 2009, 02:55:43 pm »
Might be worth starting a game on that massively hard galaxy I posted and cheat horribly with it to see what happens, I think a few of the IV planets had an assortment of special forces or not, so it'd be a good comparison as to how different it is. :)

Huh, yeah, I'll try that when I get a chance. :)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!