It is difficult to explain the issues of Sins have without going into too much "technical detail" which some may not understand. The main problem is that Sins is an older generation 32 bit game. With a two gigabyte memory limit. This is nothing new. All 32 bit games have a 2 gig memory limit. However Sins is NOT like other 32 bit games. Most games have an ability to load their assets "on the fly", or only as needed. Some games can also unload assets that are not needed. This is how they prevent themselves from reaching the 2 gig limit. Some games have been patched to where they can use up to 4 gigs of ram on 64 bit systems.
Sins also can load only what is needed at game start up, but Sins does NOT unload what it does not use. Any assets that are loaded remain loaded throughout the entire game! If you use all three factions (Six in the case of Rebellion), Then Sins will load ALL of its game assets at start up. Entrenchment, and Diplomacy in some games loaded between 1.7 to 1.9 gigs worth of assets at game start up! Graphic settings, The size of the Map, and the amount of Players, or AI opponents also determine how much ram Sins will use in any given session.In 2006 when Sins was first conceived 32 bit Windows XP was the standard OS of the time. Single core CPU's were also still the standard. Though dual core CPU's were starting to become mainstream, and 2 gigs was considered to be "plenty" of memory. So most game developers at the time didn't have to worry about hitting that dreaded 2 gig brick wall. As time went on Computers, and Sins itself evolved into their present state which is now Rebellion, and soon to be Windows 10 running in multiple core 64 bit systems. With 16+ gigs of ram. Things have changed so much over the years. However Sins still remained the 32 bit game as it was designed in 2006. That uses only a single core of your CPU. With a two gigabyte hard coded memory limit. Sins WILL CRASH when the game reaches that 2 gig limit.There is some misunderstanding about the 2 gig crash issue. The dump happens when Sins reaches 2 gigs of Ram Usage. That means the ram that Sins uses by itself. NOT what your entire operating system, and/or other programs you are running combined uses. Only the ram that Sins uses. No matter how powerful your system is. If it is 32, or 64 bit, or if it is Windows XP, Vista, 7, 8, etc. etc. Sins WILL CRASH when it hits its 2 gig ram limit. It is hard coded into the game.Nobody was aware that this would be a major problem back when the game was first designed, because Sins was designed based on the hardware standards of 2006-2007. Before 64 bit OS's, Quad Core cpu's, and 4+ gig ram systems became the standard that they are now. There is nothing that can be done about it. Except to re-write Sins in 64 bit. Which is out of the question, because it is too cost prohibitive for the developers to do this (Ironclad said so themselves). Sins is a great game, and it is a shame that this is happening. With the Entrenchment, and Diplomacy expansions Ironclad had unintentionally pushed the game over its own hard coded limitations with all of the new added content.
Over the years as of the release of Diplomacy 1.3, and Rebellion. Stardock, and Ironclad did indeed fix all of the major game crashing issues of Sins. Using the fix's from This Project as a guide. However, NONE of these fix's ever made it into Entrenchment, or Original Sins! While the Stardock, and Ironclad developers have fixed most of these issues over years. They can not do anything to change the game itself short of reprogramming Sins over from scratch. The developers can do no more, but there is something that WE can do as modders to prevent Sins from hitting that dreaded 2 gig brick wall, and improve the performance of Sins "just a little bit more". I have taken the initiative, and applied to Sins what i have learned from my Homeworld Modding days. I present to you....
The goal of this project is to improve your Vanilla Sins gaming experience, and to eliminate the 2 gig crash issue. No changes will be made to Original Sins, or any of its Expansions in game play at all. No stat changes will be made. Nothing "new" will be added. There are other mods that can do that. Original Sins will remain Original Sins, and the Expansions will remain as they are. What we are doing is taking what game assets that Sins already has, and we are "optimizing" them to improve the performance, stability, and to moderate the ram usage in game. The side benefit will be that some lower end systems can enjoy almost the same gaming experience as the high end users do (Especially Laptop Users).The project initially started out as an idea to reduce the texture sizes, and poly counts of some models. Not just arbitrary reductions. The goal was to maintain the quality of Sins in game. To make it look as if nothing has been changed at all. We started with optimizations to the Planet's, and Skybox's, because they were the "worst offenders" as far as ram usage, and performance was concerned. Unfortunately my modeling skills left much to be desired in Softimage XSI at the time, and there were un-fixable mesh errors on the optimized planet meshes. Despite that the "proof of concept" was established. A lot of ram was saved, and there was a very noticeable increase in performance.Then we studied the Particle files, and Textures. Many of the particle textures in our opinion were way too high in resolution for the purpose that they served. A reduction in texture resolution by HALF showed no visible difference in game at all! There were some exceptions where the particle resolution reduction difference was very noticeable in game, and those textures were reverted back to their original resolutions. Remember the goal was NOT to reduce in game quality. Also all of the particle textures were changed from TGA format to DDS format, because DDS uses a little less memory, and is much more efficient, because DDS format loads directly into video memory. The particles can also utilize the mip mapping features of DDS format. Where TGA format does not. Therefore enhancing in game video performance (increased FPS). As of version 0.07 no TGA format textures load in TSOP. With the exceptions of the Mouse Cursors, and Scenario Pictures. This is due to those textures being controlled by the hard coded exe. When you change the texture format those textures do not show up in game.The developers mentioned something about a Memory Leak. I heard that a memory leak can be caused by a file searching for something over, and over again if it is not there. Example a mesh file calling for a texture that does not exist. Vanilla Sins had MANY particle, and mesh files that had that issue. We removed all of the entries that pointed to non existent textures in the mesh, and particle files. We also removed the entries that have lines like for example "C;\g\main\datasource\textures\effects\aura4.dds", and just used "aura4.dds". This will default the search to Sins, or the Mods "Textures" folder, and speed things up a bit. Also various typo's were corrected in some mesh, and particle files. Some ships had mesh nulls that were Miss-Labeled. For example the Akkan had nulls, and flairs that were miss-labeled. The engine trails, and flairs didnt show up in game. the Marza was missing its bomb nulls. etc. etc. All of this has been corrected as well. If there is a ships mesh file in the mods "Mesh" folder then it had something wrong with it that was fixed. The Soundata, and Galaxydef files had errors too. Regardless if any of these issues caused any memory leaks, or not these issues MUST be fixed! (and they were as of Diplomacy 1.3, but NOT for Original Sins, or Entrenchment).After the Meshes, Particles, Textures, and the User Interface were optimized, and the very obvious issues were fixed there was a tremendous boost in game performance. Sins ram usage was greatly reduced. As of TSOP 0.07 I could run a game of Entrenchment, or Diplomacy ALL DAY, and I NEVER used more than 1.5 gigs of ram! This was using Maximum Settings. Including Bloom enabled. Tested on Huge Random Multi Star maps with 9 AI's. The 2 gig crash problem has been solved! Our primary goal with this project has been achieved! Without having to use any external memory increasing programs! Stardock, and Ironclad took notice, and they used TSOP as a guide in the Diplomacy 1.3 patch, and for developing Rebellion.Now that the Stardock, and Ironclad have fixed the issues of the game as of Diplomacy 1.3, and Rebellion. TSOP has been focusing more on Original Sins, and Entrenchment. Since the Ironclad/Stardock fixes never made it into Original Sins, or Entrenchment. However, That is not stopping us from optimizing Diplomacy, or Rebellion "just a little bit more" You can also use Large Address Aware to give Sins an extra gig to play with, but in vanilla Original Sins, and Entrenchment the Endless Search Loop issues that were never fixed will cause the game to eventually go over that extra gig (Run vanilla Entrenchment, and watch your ram usage keep going up, and up, and up). TSOP is a solution that will stop that issue.
____________________________________________________________________________________________________________________
Downloads
The Sins Optimization Project v1.0
For Original Sins 1.195
For Entrenchment 1.055
For Diplomacy 1.37
Stardock, and Ironclad fixed all of the issues that compelled us to make TSOP. Therefore there is no TSOP for Diplomacy
For Rebellion 1.82
As with Diplomacy, Stardock, and Ironclad fixed all of the issues that TSOP pointed out, and then some in the case of Rebellion. Sins: Rebellion is as optimized as any Sins game is going to get.
NOTE: TSOP 0.07 is still hosted on ModDB, and it still works in the current versions of Trinity (OS, E, and D), but you will be playing as if Sins was patched to an older version of the game. Plus some Icons and Buttons wont be visible.
Changes in TSOP 1.0
TSOP 1.0 updated to the latest versions of Original Sins, and Entrenchment.
The User Interface is completely overhauled to use pure DDS format.
Trade Ships, Strike Craft, Mines, and Constructor Unit Meshes, and Textures are Optimized.
Starbase Textures are optimized mimicking the Stardock Rebellion Optimizations.
Sounds, and Music are optimized.
All TGA format Textures are replaced with DDS format, and TSOP "force" loads them. The only TGA textures that remain are the Mouse Cursers, and Scenario Pictures. This is due to hard code in the EXE.
"Strategic Texture Reductions" for the Particles return using newer methods to create a better looking texture.
(Original Sins, and Entrenchment) Many Mesh Null issues, and various File Errors were corrected, and Unnecessary Text Entry's were removed in both the Mesh, and Particle files. Entry's pointing to Non Existent Textures in both the mesh, and particle files removed. See the various "Fixed Files" texts in the mods Read Me for details.
(Original Sins, and Entrenchment) The Diplomacy 1.3 graphic fix's have been incorporated into the Original Sins, and Entrenchment versions of TSOP (Pipeline Effects, "White Line" error fix, and Corrected Mesh files).
TSOP 1.0 for Trinity will see the return of Optimized Planets using the planet meshes from Rebellion! but with our Optimized Original Sins Textures!
There will be no version of TSOP made for Diplomacy, or Rebellion, because there is no need for it. Only Original Sins, and Entrenchment need TSOP, because the 2 gig issue, and various other issues were never fixed in those two versions of the game.
This is the FINAL version of TSOP that i will make. If the community wants to take over the project they are more than welcome to.
Community input, and contributions are more than welcome, and they are encouraged! This is a Community Project! All can pitch in!
Note: TSOP does not fix the known issue of "Late Game Lag". It does help prolong the lag until further into the game in some cases, but sooner, or later the lag will happen. The late game lag issue is a CPU issue due to the fact that Sins (including Rebellion) is optimized to use only single core processors. Therefore Sins will use only one core in multi core CPU's. To help with the late game lag issue we recommend the following:
Playing on smaller maps.
Using fewer AI opponents.
Disabling the Trade Ship icons (this actually helps out a lot)
Stacking the icons in the empire tree (same as with disabling trade ship icons the less icons rendered the better).
Using a Strike Craft Reduction mod (The many strike craft in the game are a big CPU hog. There are some good strike craft mods that reduce the number, but maintain the balance. Search for them).
You do not need to download all versions of TSOP. You only need to download the version of TSOP for the specific version of Sins you wish to play. The Retail version of Trinity is just all three versions of Sins bundled into one package. Installation for Trinity versions of Sins are no different than if you purchased each version of Sins separately.
_____________________________________________________________________________________________________________________
Other mods are more than welcome to use TSOP. No questions asked! In fact we encourage it! Learn from it! Use it as guide, and an example! Merge it into your projects!
TSOP is intended to be a Stand Alone mod. Run with no other mods enabled. There are issues enabling TSOP with other mods. Enabling with other "Graphic Enhancement" mods is NOT recommended, because the graphic enhancement mod will defeat the entire purpose of TSOP. All of our optimized files will be overridden by that enhancement mods "enhanced" files. Increasing your ram usage instead of decreasing it. Some enhancement mods like Distant Stars are incorporating elements of TSOP into their future updates.
Read the included READ ME text's for installation instructions.
I have went over the gameplay.constraints a few times in my bug hunt and to only thing thats a little different but I cant see making a difference is the ChanceToHitTargetType:.
Typically they follow a rule of 6 digit decimals in almost all files like 0.100000 is the same as 0.1 but the ChanceToHitTargetType: is using 3 to 7 digits. Again though, I cant see it making a difference which is why I never pointed it out before. The rest of the file looks good.
ChanceToHitTargetType:CAPITALABILITY CAPITALSHIP 1.000000 INTERCEPTOR 1.000000 BOMBER 1.000000 ChanceToHitTargetType:ANTIVERYLIGHT CAPITALSHIP 1.00000 INTERCEPTOR 0.750000 BOMBER 0.750000 ChanceToHitTargetType:ANTILIGHT CAPITALSHIP 1.00000 INTERCEPTOR 0.650000 BOMBER 0.75 ChanceToHitTargetType:ANTIHEAVY CAPITALSHIP 1.00000 INTERCEPTOR 0.100 BOMBER 0.100000 and a few more
EDIT: I guess if we really want to get fussy and the 6 digit decimal makes no difference, each extra 0 is 1 byte. Remove a million and save 1mb. Loads of work for little return.
Not to mention there is no 'trailing zeros' in the files that can have binary versions.
Sure they do. I just did the strike craft reduction and even if there is no decimal value they have six zeros.
maxAccelerationLinear 250.000000 maxAccelerationStrafe 100.000000 maxDecelerationLinear 1000.000000 maxAccelerationAngular 49.999992 maxDecelerationAngular 99.999985 maxSpeedLinear 2700.000000 maxRollRate 2.000000 maxRollAngle 35.000000 NumWeapons 1 Weapon WeaponType "Missile" damageEnums AttackType "ANTILIGHT" DamageAffectType "AFFECTS_SHIELDS_AND_HULL" DamageApplyType "BACKLOADED" DamageType "PHYSICAL" WeaponClassType "PHASEMISSILE" DamagePerBank:FRONT 30.750000 DamagePerBank:BACK 0.000000 DamagePerBank:LEFT 0.000000 DamagePerBank:RIGHT 0.000000 Range 2400.000000 PreBuffCooldownTime 12.000000
Hey I know its not a bug but if you want to fix things in gameplay.constants, I should mention I've been testing AI profiles hundreds of hours worth of play time. I've made just 3 tiny changes in the AI profiles, and the result is the fortifier AI is now the strongest when I let 9 AI's play FFA ( 2 of the 3 changes are for him ), and the aggressor can now often win larger games as well. These changes involved letting those 2 profiles get a little more economy and research going, they were too one-dimensional.
Obviously, this is a gameplay change, but for the better. Who doesn't like a stronger AI?
Perhaps we should a new thread for this and some other add-on topics, so as not to dilute the conversation on TSOP?
(some blah blah blah moved)
Well I would not call that optimizing at all. It does not reduce lag so it should be a separate mod altogether and not part of TSOP. Thats not to say people wont like it or use it, its just not TSOP.
Obviously not. But clearly some of these add-ons we're making aren't going to be part of TSOP, so at some point we'll have some package of extras. I've opened another thread for that. If anyone wants to post any ideas for add-ons that aren't directly related to TSOP, feel free to post there.
So I'm not sure whether it was the mod, or the fact that I disabled pirates.. but my game is much smoother now!
Thats the text version, in the binary version there is just a umm *checks his .mesh parsing code* 4 btye code per float.
Specifically their code (whatever it is they didn't release anything of it) that outputs this stuff usually outputs with the zeros, maxscript dosn't do that by default so I had to add that in manually to make the text files look the same for asthetic reasons.
You would eventually convert to binary if you can so the text number formats are meaningless.
To make some things clear...
1) What is Sins Optimization? Anything that helps reduce computer stress. Use less memory, Increase FPS, or helps a file load faster. Bug fixes are included in this scenario, because bug fixes help the game run smoother.
2) What is NOT Sins Optimization? Arbitrary Stat changes that will effect game balancing for only the sake of balancing (not other file optimizations that effect stats. Just arbitrary stat changes. For example a re-balance mod). Adding unnecessary items to the game (adding extra ships that are not part of vanilla sins). Altering the appearance of an object just for the sake of altering it (color changes, mesh changes, enhanced particles, different UI graphics etc.etc.).
TSOP is all about optimizing, and now bug fixing. If whatever questionable entry, or bug is fixed "improves" the game ether by making it use less resources, or helping it to run smoother. No matter how little difference these changes make. Then we WILL use it. Every little bit counts in the overall big picture. So if the Gameplay.constants file needs fixing, or just plain removing redundant entrys then by all means do so. It cant hurt anything. Unless you create a typo yourself
Not sure exactly what we can do if anything at all about the pirates. I do know if a raid is successful the remnants of the pirate forces return to the pirate base. Accumulating with each raid. If there is a way to make these successful raiders "disappear" after each raid. That will save a whole bunch of polys, and CPU cycles. Of course keep the default pirate forces at the base. they do need defenders.
The whole point of the add ons is to try new things without having to screw up the main TSOP build.
Sigh, i hate it when pandoras box is opened. Now i am gonna have to find a way to close it.
I have been running somethings over in my head on how to accomplish that
One idea I have is to create a repeating ability that every fifteen minutes or so it clears out any and all pirate ships and brings in a new base set. Of course there would be a need to put in some parameters like "If pirates still own planet then do....." and/or "If a player has ships here then don't...." kind of things.
But that is just one idea I'm kicking around, hope it is of some use. Or if it is even possible.
We can probably cut the string file to 2/3 the size by sharing descriptions. The Capital Fleet upgrades is like 300 lines that are the exact same along with many many others.
StringInfo ID "IDS_RESEARCHSUBJECT_MAXSHIPSLOTSTECH1_DESCRIPTION" Value "Increases the maximum fleet capacity your empire is able to sustain at once." 10 of these at 3 lines for each race. Why can't they all share the same like...
StringInfo ID "IDS_RESEARCHSUBJECT_MAXSHIPSLOTS_DESCRIPTION" Value "Increases the maximum fleet capacity your empire is able to sustain at once."
and that 3x30 lines of useless code just for this example.
I could probably do a find and replace in the player entities and make them share a few hundred descriptions that are the same but I will have to test it first.
The 2 add-ons are working great. I just had a late game battle with 3 races in the same grav well each with 5-10 cap ships and to much fleet to try and count. They were carrier crazy as was I and it looked like I batted three or 4 bees nests. It was AWSOME
That's great. I've been in the habit of running 9 AI's in FFA on 65 or so planet maps to test the different AI profiles and other changes I've been making, and even the moderate cargo ship reduction alone was giving me like 20% more game speed. With the more severe reduction combined with strike craft reductions, it must be quite a speed boost. I will formally test this when I get around to it. Which cargo ship reduction did you use?
I have not posted the extreme cargo reduction from you yet, want to test the first one. So the 2 that are post on the Add-ons. Will post that other 1 you sent shortly.
Found a couple more discrepancies. These have no valid tangents.
All the rest of the debris has tangents and if the model doesn't have them, Direct X has to generate them which is a lot slower.
debris.rar Is all the scenes for XSI and all the meshes created from XSI. Tested them all out in-game blowing up everything and they look fine but they are different slightly from the original meshes. From 2 imports and another export probably.
hey majorsstress, me again ^^
i just thought of a way to solve your problem... i think, would it create a lot more ram to have 2 entities who are virtualy the same ( as in use EVERYTHING the same,...exept one has an ability?
in other words, you have 2 sets of pirates. one hangs around the base.. the other.. has a timebomb onboard?
give it an ability that kill the pirate ships after say... i dont know 10 minutes? is that a reasonable time?
( in my mind this would only be the memmory required for an like 4-5 entities, one ability, and one buff right?
so like ..8kilobytes ?
I think a better solution would be to find the flag that makes them return to the base and disable it. They will remain at the planet they attack until a human or AI fleet wipes them out. Much like the insurgents from the insurgency ability. Sooner, or later someone will want to re-colonize that planet. Not much of a boost until they are actually attacked, and destroyed, but least you wont have to face a 2 to 300 ship fleet at the pirate base.
It would not be the same because you would have to make a new faction to pull this off, and screw around with the pirate raid weights in the gameplay.constants. Found this out the hard way when we tried to make the Borg the pirates in SoA 2. You screw around with it, and it guarantees a dump.
I think I know how to screw around with pirate raid weights and composition without causing dumps.
Also, I now present to you, Self-Disposing Pirates. The pirate base pirates are permanent, but the raid pirates have 60 minutes to live. I can adjust that if you guys would like another time figure. I have tested the OS version, please get back to me to confirm the E and D versions work properly.
http://www.megaupload.com/?d=517522VI
probably too much @ 60 mins, but well dony anyway! will probably test the D version tonight
I was thinking of very large maps, need this fix to accomodate even the most extreme situations. Is it possible on a very large map for 1 hour to not be enough time to get to target and fight to the death? Anyways, we'll surely have to think about the right amount of time, I just threw something that seemed reasonable out there to start.
edit upon attempting a second time megaupload allowed me to download your file
harpo
@xaldaron:
i know, but in the small/medium maps 60 minutes is what? 5-6 pirate raids? it would still allow the pirates to grow to redicouloes sizes.
each raid is separated by 15 minutes so it would be at most 3 to 4 raids
think I will look this over Xalderon_ if you don't mind and may use it for Distant Stars as we have similar issues
On topic though.. my memory does not stray above 1GB.. ever.. usage for sins that is.
EPIC!
I think 30 minutes would be more of a happy medium. It will give the raids even on large maps time to travel then do some damage. Outstanding job!.
Feel free, I just want to make some things people like to use.
yeah thats what I kinda figured, rarely do pirate raids go beyond 20 minutes in length
thanks, me and Nacey will work it into Distant Stars
There are many great features available to you once you register, including:
Sign in or Create Account