Rebellion.. The Fourth, and Final Expansion for SotSE....
For all that do not know what TSOP is, or have not been keeping up with current events at all for the last four years. Check this topic. The Original TSOP for Trinity topic.
TSOP was originally created to fix the very annoying 2 gig hard coded crash bug that plagued Trinity. IT WORKED. Without changing any game play aspects of Sins. Without changing the quality of the game itself. During the time we worked on TSOP we found many bugs, and errors that the Dev's missed over time, or that were created with the relentless Sins patches of the past, and new expansions. With the Diplomacy 1.32-1.34 series of patches some elements of TSOP: Trinity were incorporated into Diplomacy. Mainly the Errors, Typo's, and Particle fix's. We are all human, and we all make mistakes. A company as small as Ironclad was bound to make some mistakes. Especially on their first game. I want to make it clear once again that this project in no way is a disrespect of Ironclad, or Stardock. Quite the opposite. You guys made a great game! There is no denying that. We wouldn't be here right now if you did make a bad game.
The goal of TSOP:R Is to add what was NOT incorporated from the Diplomacy TSOP incorporation. We will Bug Hunt, Look for errors, and typos that were not seen before, and Fix it. Just like we did for Trinity. We will convert the TGA formatted textures to the highest quality DDS format possible (This includes the UI textures). Just like we did for Trinity. We will try to put back into Rebellion what was taken out from Trinity (the varying planet types). We will also look into optimizing the new rebellion shadow system some more (if it is at all possible).
Rebellion reduced the size of the ship textures (mainly all of the frigates) to the next size down (by a power of 2). So frigates that had a 2048 resolution texture now have a 1024 resolution texture in Rebellion. Which is brilliant, It is hardly noticeable, and it made lots of room for more Rebellion features. TSOP:R will expand upon that, and bring back the "Strategic Particle Texture Reduction" of TSOP Trinity. There is much more we can do to optimize if we look for it. However, the goal is to optimize without changing the quality of the game, or if there is to be a loss of quality. make it as minimal as humanly possible. Just like we did for Trinity.
We also plan on bringing the Trinity versions of TSOP up to date.
All of this, and more that TSOP:R will do will free up more Ram, and improve your Graphic Performance. So you should be able to run Rebellion on a slightly lower end system, or a not so hot video card. CPU lag is still, and will always be a problem. We tried to deal with it by reducing poly counts on meshes in Trinity. That failed. Poly counts surprisingly have very little impact in Sins. It is the sheer number of units on the map that a Single Core of your CPU has to deal with that causes the lag. The only way i can think of to deal with the Late Game CPU Lag issue is to remove, and/or lower the number of units on the map. We WILL NOT do that. We WILL NOT change any game play, or balancing aspect of Rebellion. Just like we did not change it for Trinity. Let the developers deal with the Game Play, and Balance. We only wish to improve upon the game itself. We Bring..
The Sins Optimization Project: Rebellion
So.. Here we are once again..
TSOP for Rebellion is more of a Graphic Optimization mod than it was for Trinity. Many of the issues that plagued Trinity were fixed by Ironclad/Stardock for Rebellion. So there is no need for any GameInfo folders any more. Also the 2 gig crash issue that TSOP was originally created for has also been fixed. TSOP:R is more intended as a performance improvement mod than anything else.
TSOP, and TSOP:R is an open community project. Anyone who wishes to contribute is welcome to do so. Also anyone who wishes to use TSOP/TSOP:R in their mods, or other projects are also more than welcome to do so. No Questions Asked. This project is for you. Use it!
Do not run TSOP with other mods. TSOP is intended to be a Stand Alone mod. Running other mods with TSOP. Especially Graphic Enhancement mods. Will defeat the entire purpose of TSOP. TSOP is intended to improve your Vanilla Sins experience. Other mods like Distant Stars have incorporated elements of TSOP into their mods.
I will ask that we please DO NOT discuss Multi Core support, 64 bit, or LAA on this topic. It is a dead horse issue that has been beaten down so many times that people are beating the dust on the ground where the dead horse was laying. Its not gonna happen! EVER! The Dev's said its not gonna happen. DO NOT DISCUSS THE ISSUE!!... please.
TSOP:R Release 1.1
All mesh, and particle bad file path names fixed.
Mesh fix's (Unnecessary team color entry's removed)
GameInfo files fixed by Stardock/Ironclad so it is no longer needed in TSOP
All particle, and UI textures converted to DDS format. Some very large texture resolutions reduced.
Optimized Sounds, Music ported from TSOP Trinity.
Optimized Trade ship, Strike Craft, and Constructor meshes ported from TSOP Trinity.
Game holds steady at 1.6-1.7 gigs ram usage using Random Vast Competitive map. Max settings for everything. 9 vicious AI's Results may differ for you depending on your system. No Dev.exe errors were present. No crashes. Late game lag still an issue, but game is playable much longer than vanilla.
See various "Fixed" text's for complete list of changes, and fixes.
Thank you Myfist0 for ModDB link
You could always reverse engineer the exe and fix things that way (yes, mods do this in many other games). Given the incredible mess sins is in, though, you're likely looking at a multi-year project even if you're very experienced. Not worth the effort to anyone technically skilled in doing so.
Well, from what Josh described in his dev blog, it will have to be implemented at the time the new engine for Sins 2 is created...
I guess we will keep waiting and I will keep track of Limit Theory's progress...
Does this version work with Rebellion V1.04?
The title says it all.
I assume you have steam, so just log on and it'll update you to the current version automatically and it'll work for sure.
Edit: It works. Thanks again for your great work!
So, I was talking to IstakuMesk tonight, and he says he's dramatically increased performance by optimizing his particle effects, most interestingly by using animated textures to do the work several particles would have to do previously. With these optimizations he was able to add higher poly ships (and if you've seen his work in the model thread you know how crazy they can get), more weapon points, larger fleets and still have a better framerate than he did previously.
Granted, he mostly uses his own custom particle effects, so perhaps they were much more intensive than vanilla ones, but it seems pretty clear that there is some potentially huge performance increases if someone who knows what they're doing with particles can optimize them (and not just fixing their reference locations). It's a huge job, and sadly I am too ignorant of particles right now to do anything about it, but it might be something to think about.
To much work to do for stock sins, most modders have enough on their plate doing particles for there own mod. Pretty sure location fixes is best you're going to get. I will be pleasantly surprised if I am wrong though. Out of all the modders we have, only a hanful have a good grasp of particle effects.
We need IstakuMesk in this convo for more info. Did he also reduce the amount of particles used by the mod? Is the textures shared across particles? Single emitter?
Yeah I was talking to Krdax the other day about secret hush hush stuff, and he had the interesting claim that (at least on his system), animated textures were significantly increasing his ram hit. I think the thing to take away from that is that a good animated texture sheet needs to be, at minimum, around 1024x1024 if not larger. For some cluttered projects this may simply not be viable. I planned for this ahead of time.
I gut the base game's directory. Any meshes or textures I don't use that I can safely remove gets deleted. This should be standard practice for any mod riding the ram limit. It's easy to do for the end user, and can probably be automated in a .bat file. Alternatively, I think you could replace them with 0kb files in the mod, but I haven't tried it yet.
Retribution makes extensive use of unique textures (I have over 300 individual textures dedicated to particles alone) for particles. My textures are higher resolution, my ships are considerably higher poly, I use larger unit counts and have significantly more guns per ship than in Salvation. Yet I've managed to increase the project's performance to the point where I can run a four-way fleet fight on high (for the project) unit counts with fps significantly higher and more consistent than Salvation in a two-way fight on low unit counts. As anyone who saw the original project knows, my fps was shit in all but the smallest fights. When you finally see Retribution I don't think you will recognize sins except for the skybox. We'll see if I can keep the quality more consistent than the old project.
My small ships average 40k triangles. Polies haven't been relevant in major performance crunching in games for about a decade now (the vertex buffer was more or less the issue in wc3, for example). Control panel based forced AA murders sins performance, though. Keep that in mind. So does windowed.
Particles in sins will be your biggest cpu concern after pathing-related nonsense. I discovered this through rather extensive testing between Salvation's beginning and present day. I run a lot of tests. I'm a testing kind of guy. The one conclusion I made in regards to Salvation's particles when I began Retribution was that they were trash. Not just how they looked, but how they performed. Little did I realize just how bad they were.
Drag, size oscillator - stay away from these unless mandatory. Drag is kind of funky but it's also a cpu drag and I guarantee an animated texture will result in a superior effect. Size oscillator is something you should be a bit careful with. It's not bugged, like drag, but I used it extensively for the Undead in Salvation and it is in large part responsible for the UD slowdowns you see in Salvation. Krdax informed me that some modifiers actually leak memory. The only modifiers you generally need are Fade and Inflate, but color oscillator is handy too. All fine tuned animation should be done through crossblending and texture animations. I try to keep my actual systems very simple. Remember, all CPU activity is competing with each other, and particles are generally going to be CPU limited in sins.
Explosions are tough. I'm still working on mine. They're shaping up, but I don't like showing unfinished content publicly, so I won't. Take my word for it - Salvation's explosions sucked, Ret's are better but still got a ways to go. Those sparks in Salvation's explosions are particle murder. Drop the cluster texture, go for individuals (use the random sheet already in sins), and spawn only a handful. I don't let my explosions go over 60-70 particles peak and try to stick around 30 concurrent. Both peak and concurrent matter, of course. As a reference, a vanilla capital is something like 150 and one of the Bailknight capital is something absurd like 300. Managing these numbers isn't just about performance, it's about keeping particles from vanishing.
Trails. I use fake trails now. I absolutely despised those unavoidable gaps with my missile trails. Particle trails don't update fast enough for my long-ranged high-speed projectiles. Spamming particles and elongating them just doesn't work for me. So what I do is I have trails attached to the emitter but with reverse speeds, and live very shortly. All of the Anahn missiles ditched trails entirely, I just give them missile bodies with engine graphics now.
Bloom and additive blend very readily. Therefore, plan ahead and avoid spawning a lot of particles at once. Avoid noisy textures so they don't mesh with each other (or take advantage of that behavior).
My huge muzzle flashes for the Anahn rely on a set of animated textures, a flash, and sometimes a secondary flame or a set of bailknight-esque TEC sparks. For my average Anahn gun I try to stick to 4-6 particles peak for a muzzle flash. My most expensive muzzle flashes using a very nice fire sheet I ripped from Tera peak at around 15-20 for the most absolute expensive ones. My old Salvation muzzles often used up to 30-40 because I couldn't get a good fire stream with static textures without spawning a lot of them. They looked ugly as shit regardless. Absolutely do not spawn sparks, much less sparks with drag, on rapid fire guns like Bailknights does. They look a little silly, and they all add up with a lot of ships firing at once. If you need sparks, make a animated sheet. I've got a few I can share if you want but they aren't perfect for this purpose.
The most consistently expensive particle system in Salvation was, according to the Dev exe, the shells. Yes, the shells with only 2 particles. The thing was, with ships averaging 100 guns, firing in bursts of up to 12 every few seconds per gun, those shells added up. This is why my projectiles all move extremely fast (and not just because they fire slugs at 3/4 the speed of light in canon) - to reduce how many weapons are up at once. Minimum speed of 11000 or so for Anahn bullets. For the Xy and Undead, this is less necessary, because they have less guns. Thus, I can ration more particles to them. Old UD plasma torpedo - 200 particle uptime. New one - 15. Mostly because I gutted the trail and gave it a fake one and ditched the sparks.
No animated textures there, just a shockwave-esque texture with reverse inflation, a shitty looking flare I'll probably scrap or change, and the fake trail. The bloom handles my glow for such a small projectile.
The library of textures I've built up comes from dozens of games and many of them are either hand made or significantly edited to suit my purposes. I'm not an artist, but I do know how to make some custom fireballs in 3ds max. I just don't have the tools currently. I might make some of them public when the project is done, but I'd like to keep a few little secrets a surprise for the big show should it get finished.
^ Afterburn and FumeFX are the primary 3ds max plugins used to make animated sheets. Somewhere I think a commercial cd or set of cds exist of such texture sheets, but my belgian grips aren't limitless and I have yet to locate such a valuable resource. I did, however, use these to create sheets for Brood War. Here's a gif of one of them.
Significant problem, however - in my experience sins has a texture frame limit of around 20. Around this point the particles tend to flip out and roll over or just break and make strange squares. So, a good chunk of my resources don't work, and to make a high-detail set like that gif above would be a total waste. Therefore, a good particle system in sins would make use of several such texture sheets. The end result of a sheet looks a lot like this.
Keep in mind, that image above has some frame clipping. Don't be an intern. Fade those out if it happens - they look horrible.
Well, I don't like making big posts too often. My developer series will cover a good chunk of my testing, my analysis, my particle creation, and a whole lot of swearing, when it is public. Until then, I did post a small particle-related video in my Retribution thread if you want to learn more.
For the record, my environment (and conditions for my performance) are rather different from standard sins. I can't make any guarantees that employing a huge revision like what I do would have a similar return in vanilla. I can only say that it made an enormous difference in my own project under very heavily scrutinized tests.
Oh lord, I will have to re-read this again when I wake up, thanks for all the input.
Interesting indeed. Too bad i suck at particle forge. I do agree the vanilla particles are what take up the biggest chunk of the resources. We have huge textures in rebellion for some of them for example the Advent loyalist Titan uses 3 1024x1024 sheets just for its normal ring effect. Add 2 more sheets for it firing. I reduced those ridiculously large textures down to 512x512 for TSOP, and converted them to DDS. However seeing what you wrote about the particles themselves now things are making much more sense.
Gimp has finally added groups , about time.
I have been using a very old MS Image Composer for all my UI work just because of no grouping (example), but I can export the project file to a very old PS version and import those to Gimp. Anyone belonging to moddb.com/company/soase-m0dders has probably noticed a few sheets going up. Once you have a project file with all the brushes separated, it is very easy to move stuff around and start to optimize sheets. One example ...
Take a guess at how many stock sheets I got rid of, and this is just using the space on 1 sheet.
EDIT:
Buttons_Interface_Psi_Phase.tga 1,025 kbPlayer_Portrait_Button.tga 129 kbPlayer_Portrait_Small.tga 1,025 kb
Merged Player_Portrait_Window onto Player_Portrait_Large.
Player_Portrait_Window 4,097 kb
Still lots of room but what goes here needs to be big so it can be DDS compressed.
UI modders may want to keep an eye on soase.x90x.net/reference-files/UI_Rebellionsoase.x90x.net/reference-files/UI_Trinity
How much memory does a single combined sheet save vs the original configuration with multiple sheets? I wanted to combine the unit build, cursor over, pressed, and disabled sheets into one texture (very similar to what you did to the SoA 2 UI Fist0)
it does not save anything unless you can reduce the size of the sheets, 4 sheets at 512x512 is the same memory as 1 sheet at 1024x1024. If the sheets have lots of empty space, then it may be worth it, to use just blank sized layers and experiment with how to fit as many possible on a sheet.
The Unit_Hud_'s set is already good the way it is, only 4 empty icons, but the Unit_Hud_2's set for Reb could easily be fit on Buttons_Events.xcf for Reb.
Doing a complete coversion mod is well worth building your own sheets, then every update does not mess up your work. You just need to see which brushes they added and find room for the textures on an existing sheet or make a new one, that is if you use them. I also dont like sending 4 files every time I change 1 button, so if I work on fed icons I send 1 sheet to the mod, not 4.
Stage 2 of Player_Portrait_1.xcf which will be DDS
Showing how to best fit multiple brushes into wasted space. This will allow the moving around of brushes on the other sheets to make room for other large brushes on wasteful sheets.
Black area is brush size, rust is unused and brush spacing
All the small brushes are from BackdropInGame.dds and the 3 large emblems are from BackdropFrontEnd.dds.
The goal now is to get rid of this POS sheet all together
Outstanding.
OK, that POS Buttons_Backgrounds2.dds above is now gone
Also fit the large Artifacts Research Backdrop on here and now have 1024X1024 empty space on Research.dds
Anyone care to comment why the hell the original BackdropInGame.dds is over 16 mb? That is the 4 planets worth of textures they got rid of. Mine is 4 mb, and with the other sheets I got rid of I am heading over 20 mb which now I can start to replace the stuff they got rid of. Just wait till you see my ship textures critique.
There are some small UI textures that you can probably use to fill the 1024 of wasted space, and eliminate those little textures altogether. The way i see it. The less files it loads the better.
You are doing what i have always wanted to do with the UI, but didnt know crap about how to edit the brush grid coordinates. I asked ironclad if they had templates we could use, but got no response.
This is great! When you are done send me what you got so we can incorporate this stuff into the next build.
The ship textures i don't think there is much you can do with. There is almost always wasted space on a ship texture. No matter how hard you try to use all the gaps. However with the room you are making we can probably add back the Trinity scale ship, and structure CL maps. For Rebellion they reduced the size of the frigate CL textures to 512. They were originally 1024 in Trinity. They said they removed the 1st mip map of each texture, but isnt that basically the same thing as reducing the resolution? Yet they kept the normal maps at 1024. I'm not saying this is a bad thing. It freed a ton of memory, and the ships still look good. My only issue is that a ship mesh now uses 2 different resolution textures, I was taught as a modeler that is a bad thing. back in the day the Diffuse, Specular, Normal maps, Etc. Etc. all had to be the same resolution, or it would cause issues in rendering. Though these days video cards pretty much support any weird odd sized resolution.
Well, I definitely would have shrunk the bumps 1st and da if necessary and left the cl if at all possible.
And I don't have a clue what they used to shrink the texture, or no idea about the 1st bitmap but what they did is horrible IMHO.
And this is just a test, I would go 768x768 on all the frigates, 512 for fighters and 1024 for caps. Also, if I do shrink, I will keep the high def areas on another sheet to keep them nice, like on that compare areas bottom right details.
I am going to have to rebuild my entire game from scratch, and I am so disappointed I dont know if I am even going to share it.
Yes but they come last, i do try to keep them in groups if they fit, like I dont want the research arrows on 4 different sheets. It's fine till I find odd ball brushes. And I am also not dds'ing everything, I need almost all the small stuff TGA.
another 1024x1024 sheet will soon disapear to be put on here and still lots of room
EDIT: Filled empty space and save the equivalent of 2 1024x1024 sheets. Save almost enough space to replace all the TEC textures
So if we leave the vanilla rebellion ship textures alone these UI changes will save a S**T Ton of memory, because we will be using fewer UI textures correct?
Something i noticed. The 1.5 patch changed the planets to spherical UV mapping (something ive been pushing for all this time, and did with limited success in early versions of TSOP). However they kept the same 2048 resolution. Effectively doubling the resolution of the planet textures without changing the memory usage. The original planet textures were 2048, but the original textures only used 1024 of space on the sheet. There is a huge amount of waste on those textures. So the original pre_1.5, and Trinity planets are actually 1024 in resolution.I can accept the 2048 resolution as long as "All" of the texture is being used.
Now if only they can do the same thing with the original Skybox textures. Which are also have a lot of "waste". The new rebellion skybox's are spherically mapped. IMO Stardock should replace all of the remaining original skybox's with new versions based on the originals, but spherically mapped like the other Rebellion skybox's. I tried to spherically map the original skybox's but the results were disastrous. Seams, and pole pinch was a huge issue.
Back to the Rebellion ship textures. "IF" i should decide to restore the Rebellion ships back to original Trinity resolutions. How would that impact the game? Other than Rebellion ships using the memory of Trinity ships. Also if it is decided to restore the Ships to Trinity standard. The camera zoom extents will have to be restored to trinity standard as well.
As I have said, it's not the number of textures, rather the amount of area that the textures use, which in turn goes into the RAM. So yes, it will save a lot of memory, if I can eliminate textures, all the better, especially the tga's. The point of what I am doing is to get the models back to Trinity standards as the models to me is what made this game.
Most of what I am doing now is the DDS UI sheets, so saving 25mb of DDS UI and replacing 25 mb of DDS ships will have the same impact on the game.
However, from what I have read, DDS is transferred to the GUI RAM and TGA is handled by the CPU RAM, so getting the larger tga textures to DDS is the real gain in CPU RAM as you did with TSOP, but to many of the effects and small buttons get to blurred for me. I started with the fleet buttons on the 4 tga Buttons_Research_ sets and put them on the DDS above, that leaves almost a 512x512 empty area on 4 sheets of tga (4.1 mb). If I really try to cram, I can get rid of all the Buttons_Research_2s TGAs which is over 20 mb, transfer that 20 mb of UI tga to 20 mb of ship dds and the game should run even better.
Exactly
2,049 kb x 3 tga sheets = 6147 kb
768 x 768 dds = less then 1 mb
(facepalm) Why would they use 3 separate wasteful sheets, when one 100% filled is so much better? I understand Ironclad being as Sins was their first game. But the game is 5 years old now. There is so much we learned... Why?
When I hooked up the new brush links I found a load of empty space and used stuff
Not sure but I have a feeling that this is SD, trying to go by IC example and failing badly.
Button sheets, they make one, copy it and make grey scale, copy it again and make brighter for cursor over, copy again and move sheet down 1 px and right 1 px for push. All to save 30 mins of work.
Eliminating waste is at the very heart of TSOP. Let me know when you finish this. I will incorporate it all in the next build.
I wonder how hard it would be to pass this optimized UI down to Trinity.
There are many great features available to you once you register, including:
Sign in or Create Account