*Unofficial* Test Build to address 1.1 Memory/Save Game/Crash issues

If you have Windows 2000 or XP you can try this UNOFFICIAL test exe. I will be updating this link periodically until we get the official update out.  I'm using an newer version of the DirectX SDK on my computer than the one that Brad uses to create the offical builds, and the version I'm using is not supported on Win 98/ME.

Before extracting the contents of the zip file to your GalCiv2 install folder, backup your GalCiv2.exe and Lib3D.dll and your save games, just in case. 

http://sd.stardock.com/carielf/gc2/GalCiv2MemTestWinXP13.zip

If you get an error about missing D3DX9_28.dll, here is a link to that file in a zip, which can be extracted to your GalCiv2 directory:

http://sd.stardock.com/carielf/d3dx928.zip

This test file is meant to

1) fix crash when loading save games

2) reduce save/load times (may only be slight difference)

3) make it less likely to crash while saving.

4) This version attempts to abort saving rather than just crashing when it runs out of memory while saving.  However, it is still possible to max out your memory so badly that the game will crash even if you're not saving.

5) You may get a few missing strings because I'm not including any data files with the exe. 

6) If anyone has been having the bug where the Metaverse submit dialog does not pop up at the end of a game, please let me know if you have that problem with this build, as I may have fixed this problem.

7) I took out some unused debugging code that may have caused slowdowns.

8) Fixed a random crash when you or the AI would colonize a planet whose surface had not been initialized.

9) Build 10 has the changes to the combat reverted back to the old system.

10) We also fixed a bug in the planet surface code caused by a timing issue; if you colonized the planet before it was initialized, it would fail to create the initial colony and then crash.

11) I fixed a few bugs in our resource manager.

12) Reverted the code that calculated the total number of stars  (based on the number of sectors) to the version in 1.0X2.  This will also affect the number of planets.  This should save a lot of memory and increase performance. 

In task manager on the process tab, select View and then Select Columns.  Add the column Virtual Memory Size.  That way, you can see how much RAM GC2 is using and how much Virtual Memory.

I think that the latest change (less stars and planets) will be enough for an update to 1.1, but we did find other areas where we can decrease memory and/or increase performance that we can try to get into 1.2.

Please report here with results on if your problems were solved, if there are new bugs, etc.  If you've been playing with simpler ship designs, turning down the stars, etc, feel free to turn everything up again to abuse the test exe.

 

73,856 views 111 replies
Reply #1 Top
Downloaded the test thingie last night and had no crashes...10 points to the Elf person.


edit: forgot to mention that all my explored territory disappeared...not FOW I mean from scratch fog. Also got "cannot find string" messages which aborted battles so had to engage the battle a few times to really finish the battle. Still worth not having crashes though.

Reply #2 Top
Be aware that the combat system has been changed in the test version: Now ships shoot back even when they're destroyed in the same round, and combat ends after just one round - thus it can end in a draw with survivors on both sides.
The "battle ended in a draw" message (instead of "Victory" or "Defeat") isn't there yet, so you'll see a "string not found" in the top bar of the battle report when it ends undecided.
Reply #3 Top
Been using this since yesterday. No problems for me on the test build

I have reduced all jewelry on my custom ships and it has definitely had an impact on the following: -

1) Frame rate in the game
2) Load/Save times (initial only)
3) Ram usage throughout the gaming period
4) I disabled graphics throttling and it has had a positive impact on frame rate on a lower end pc. Graphics card got no where near high temp GeForce 6600 EP

Nice one Cari
Reply #4 Top
Also will receive a 'string not found' message if you retire.

Tested multiple times by retiring on the first round.

DG

(edit) Damn, one of these days i will read the first post fully
Reply #5 Top
Wow, that's going to really change combat. It ends after 1 round? Is there a plan to allow for attacking without exiting the combat viewer? Having to go from the combat viewer to the main map after every volley would get old pretty fast.
Reply #6 Top
I think I would like that. It gives you (or the AI) the chance to retreat a few ships from a lost cause fight.
Reply #7 Top
Is there a plan to allow for attacking without exiting the combat viewer?

Sounds like a good idea to me. Maybe it should cost another movement point though, it wouldn't hurt the AI this way.
Reply #8 Top

Draw is only when both ships die. This gives the defender an opportunity to put up a fight...but otherwise battles are exactly the same.

Reply #9 Top
Draw is only when both ships die. This gives the defender an opportunity to put up a fight...but otherwise battles are exactly the same.

Combat seems to end after just one round now, or am I mistaken?
Reply #10 Top
I'm positive that something has been changed with the combat system. I just had a battle of 5 against 9 ships which ended when 2 and 4 ships were still there.
Reply #11 Top

To expand a little on what BoogieBac said, a quote from CodeCritter's check-in after he implemented this feature:

(edit, I don't think the forums are happy with this reply)

+ Single ship battles and fleet battles now allow all ships to fire in a single round.   

+ This introduces the possibility of a draw, where both sides lose

Reply #12 Top
Yeah, I'm confused, too. Does it end in one round or does it still play out until one side is destroyed?

I understand allowing defenders to fire, even if they'll be destroyed during that round. Attacking gave a huge advantage before, and that should even it out quite a bit.

I just don't want to be dropped back to the main map and re-initiate a battle after every round.
Reply #13 Top
Using the new galciv2memtextwinxp6 and dropped the background star density to 500 the game is MUCH faster and the crashes vanish (so far). The autosave is also MUCH faster.

In the right direction.....

BTW

AMD xp 2800 + 2gb ram + swapfile=3gb + audigy 2zs + gforce 6600 + xp pro sp2 + all latest fixes / drivers
Reply #14 Top
Combat seems to end after just one round now, or am I mistaken?


There does appear to be just a single round of combat (i.e. every involved ship fires once only, and survivors on both sides is a regular occurrence). Don't know if this is intended or not, but the battle ends with a "String not found" message (to be expected, as Cari said data files were not included), and you have to re-initiate the combat to finish them off. It makes sense to me, and as LoneWolf said, it gives you a valid retreat option that adds a bit more tactical depth to the combat.

I've had no crashes yet with this exe, it fixed my saved game not loading problem, and saving is much faster than before.
Reply #15 Top

Hmm...I don't think that both sides are allowed to have survivors...After we're done working on the memory/performance issues, I'll have CodeCritter look into that.

Reply #16 Top
It makes sense to me, and as LoneWolf said, it gives you a valid retreat option that adds a bit more tactical depth to the combat.

Fully agreed! Throw in a checkbox for "Continue combat until decided" to automatically reinitiate combat as long as necessary (and as long as your movement points allow), and you'll remove unnecessary micromanagement and allow people to watch the whole battle just like before at the same time.
Reply #17 Top
Yeah, I don't mind the option to retreat after each volley, it adds some new tactics. But it seems unnecessary to go all the way back to the main map when there could be a button within the combat viewer to continue combat (if you're the attacker).

Edit: If both sides having surviviors is unintentional, then my point is moot, anyway.
Reply #18 Top
Each round, each ship that is still alive gets to fire. Ships are then eliminated at the end of the round.

For example fleet A has 3 ships (A1, A2, A3) and fleet B has 2 ships (B1, B2)

Round 1 (A1,A2,A3 vs B1,B2):
A1 attacks B1
A2 attacks B1 kills B1
A3 attacks B2
B1 attacks A1
B2 attacks A1

Round 2: (A1,A2,A3 vs. B2)
A1 attacks B2
A2 attacks B2 kills B2
A3 does not attack
B2 attacks A1

Battle Ends, Fleet A wins

If you are getting battles that end in a single round, and both sides survive, that is a bug. I'll be looking into why that is happening.
Reply #19 Top
Each round, each ship that is still alive gets to fire. Ships are then eliminated at the end of the round.


Doesn't that, pretty much, destroy the whole advantage of being the attacker, and make Hp a lot less useful? Isn't that going to swing the balance to lots of miniturization techs and smaller ships?
Reply #20 Top
Seems like it would better simulate simultaneous combat. In addition, as it is, attacking has a significant advantage and it's also advantageous to design high firepower ships with minimal defenses to maximize that advantage.
Reply #21 Top
Doesn't that, pretty much, destroy the whole advantage of being the attacker

Yes, it destroys the whole advantage of being the attacker (except the decision to initiate combat or not).
Reply #22 Top
Yes, as long as you are attacking first with enough firepower in 1.1, your ships don't need any defense.

This approach seems signifigantly more balanced, making the appropriate defense much more important and the role of attacker much less signifigant. It wouldn't make HP less usefull. It will make small ships more usefull, to a small degree, but they'll still be far easier to destroy than their larger counter-parts.
Reply #23 Top
Doesn't that, pretty much, destroy the whole advantage of being the attacker

Unless I am missing something but some people have complained that battles were loopsided due to the unfair advantage of being the attacker, and the fact that it allows you to clean without too many loss the AI that doesn't correctly value the effect of being an attacker insted of a defender: AI ships waiting in orbit instead of attacking incoming ships. With this new rule, it doens't matter if you are an attacker or a defender. So the unfair adavantage the human had over the AI (knowing the value of being the attacker) is gone.
Reply #24 Top

Bump!

I updated the test exe:

http://sd.stardock.com/CariElf/gc2/GalCiv2MemTestWinXP8.zip

7) I took out some unused debugging code that may have caused slowdowns.

8) Fixed a random crash when you or the AI would colonize a planet whose surface had not been initialized.

Reply #25 Top
I like the new change to the battle code

Now if we can have it so that it doesnt chuck us out at teh end of each round