Jump to content

Dear BioWare, your coding is terribad.


Eszi

Recommended Posts

If you have a GTX580 and are getting 20FPS you must be majorly bottlenecked or there's a problem with your installation or something.

 

I have a 570 and get 60+ FPS on the fleet at absolute max, standing in the crowd of 60 people by the bank machine or the GTN. I just checked again actually, I have a number of screenshots with my FPS meter on.

Link to comment
Share on other sites

  • Replies 81
  • Created
  • Last Reply

Top Posters In This Topic

If you have a GTX580 and are getting 20FPS you must be majorly bottlenecked or there's a problem with your installation or something.

 

I have a 570 and get 60+ FPS on the fleet at absolute max, standing in the crowd of 60 people by the bank machine or the GTN. I just checked again actually, I have a number of screenshots with my FPS meter on.

The problem is that there are plenty of people with pretty good computers out there who have issues with SWTOR, but with no other game. I doubt that in all those cases it is just player side.

Link to comment
Share on other sites

1) Disagreeing and realizing the OP has no real clue what they are talking about is not saying this game has no performance issues.

 

2) Don't feed the troll, the OP is pointless and invalid, continuing under this thread with valid performance complaints is feeding the troll, I highly recommend everyone "move along"

Link to comment
Share on other sites

If you have a GTX580 and are getting 20FPS you must be majorly bottlenecked or there's a problem with your installation or something.

 

I have a 570 and get 60+ FPS on the fleet at absolute max, standing in the crowd of 60 people by the bank machine or the GTN. I just checked again actually, I have a number of screenshots with my FPS meter on.

 

I don't see how that's remotely possible considering I have a 670 and get 60 FPS max on fleet with 60 people by the bank. I have an i7 too, overclocked to 4.5 ghz. 16 gb of RAM. I don't know why apologists log onto this forum to spout misinformation supporting such a terrible product, but alas.

Link to comment
Share on other sites

I don't see how that's remotely possible considering I have a 670 and get 60 FPS max on fleet with 60 people by the bank. I have an i7 too, overclocked to 4.5 ghz. 16 gb of RAM. I don't know why apologists log onto this forum to spout misinformation supporting such a terrible product, but alas.

 

Yeah, I'm running the same setup as you basically (i7 2600k @ 4.6, GTX670 2gb card, 16gb ram) and I get 60 FPS on the fleet no problem, but when I see 60+ people on the fleet I start to dip to 45-55 FPS - big battles are fine, Operations are fine, all at max WITH shadows enabled, I sometimes dip to like 30 FPS in dense areas, but its all playable and hardly noticeable.

 

I record while I play too, and that also puts a hit on my FPS. I think everyone knows the game isnt optimized as good as it could be, but is playable. If you get bad performance, turn your settings down. Thats how it's always worked in PC gaming and this should be no different. This game isn't World of Warcraft, this game is MUCH better looking and your old 4+ year old computers cant max it, time to upgrade. That's the nature of the beast that is PC gaming.

Link to comment
Share on other sites

I don't see how that's remotely possible considering I have a 670 and get 60 FPS max on fleet with 60 people by the bank. I have an i7 too, overclocked to 4.5 ghz. 16 gb of RAM. I don't know why apologists log onto this forum to spout misinformation supporting such a terrible product, but alas.

 

If you think it is such a terrible product stop playing it. That doesn't make sense to me. You hate the game but still play. That's like saying "This chicken is F'ing terrible and I'm not all that hungry but I am going to eat it anyway and complain about it the whole time."...LOL

Link to comment
Share on other sites

 

I like the idea of something akin to the KOTOR II: Sith Lord mods that came out that finished the game.

 

The issues with SWTOR (for me anyway) aren't dcing or lag. It's stuff like companion unify, active lightsabers, inability to join ops groups, losing crafting schematics and other bugs that bother me. Of course, it's possible that the coding isn't the cause of all the bugs, but the reduced coding crew. I can't imagine having to fix the bugs for this game after losing so many employees. Is it too much to ask for them to rehire some of the ones they fired just long enough to fix some of the bugs?

Link to comment
Share on other sites

Wow. If the errors you pointed out about the shaders are real (nowhere near skilled enough to prove it :p)...I REALLY hope one of the BW devs reads this. Especially since it seems like a relatively easy thing to fix. (I could be wrong - my only coding experience is HTML and some basic Java)

 

 

If you want them to look at what you're saying and see what you're pointing out. Write that document and post it in CS.

Edited by DarthVitrial
Link to comment
Share on other sites

I do not need to know gaming code or be a programmer to know this problem is on Bioware/EAs end. Awhile back this all started. The result was multiple threads about massive lagging in swtor. Maybe the ops right, maybe the ops wrong. Its pretty clear the problem is on Bioware/EAs end. When I played star trek online, my pc ran the game perfect on maxed out graphics. When I played wow my pc ran the game perfect on maxed out graphics, with no major lag spikes, or ongoing lag. Now incase some of you are not aware of this star trek online, got one thing right, it has extremely high end detailed graphics. To me its just more evidence that the problem is on Bioware/EAs end. Otherwise I would be having the same problems via sto and wow.
Link to comment
Share on other sites

The OP isn't necessarily entirely wrong, but as pointed out none of us can possibly know how well tuned the game actually is - unless you're one of BW's developers, even then they're segmented into different teams and are unlikely to have the whole picture.

It's highly likely that they themselves are far more critical of issues in the game than we might ever be, they work with the guts of it endlessly - frankly I think we should spare a thought for their hardships rather than our own for a change.

 

BW busted a gut to bring SWTOR to market, they've taken on huge risks and more than a few really serious challenges - and here we are grilling them for not being more awesome (fanboi much? no, I appreciate that there's more going on that we'll ever know about and that programming games is f*n hard work).

 

Too many of us are like the OP though... knowing just enough to be dangerous (I recognise in retrospect that I'm guilty of this as well), and when provoked (by problems or disappointment) wield that knowledge like a weapon to wound whoever it is we blame.

 

Like most companies (large and small) there are areas of their product that really aren't up to scratch, there are certainly areas of the business and it's internal practices that even to a distant viewer quite apparently need serious improvement. To take just one instance of an issue without any context of how it actually works and stand on a soap box waving it around while declaring that it's all a massive disaster reflects on us far more than them.

Link to comment
Share on other sites

You don't need to work in the coding part of things to know this game is crap when it comes to coding. So much wasted potential, it really is a shame Bioware can't do anything without EA pulling the leash too harshly.

 

That said, the number of Crashes-per-hour is going up HUGELY.

 

1.0-1.3 worked fine... 1.4 onward the crashes started to sneak in 1.6 My sessions typically have 2 crashes sometimes more. Someone's breaking code as they add code.

Link to comment
Share on other sites

I love how all the apologists come out and naysay a thread that simply points out the truth that the code for this game suffers from horrible optimization.

 

Sorry folks. Its true.

 

Make apologies for your own failings, not the failings of others.

 

quoted for truth.

Link to comment
Share on other sites

quoted for truth.

 

Seconded.

Denying that there is a problem isn't how you show your love for the game. I'm a fanboy, I admit it. I tell all my friends how great the game is, I spend hours playing almost every day. And I have a list on my computer of all the bugs I've reported that have yet to be fixed.

 

If you love the game, don't deny its flays. If you deny them, they'll never get fixed. If you point them out and they get fixed, the game is now even better. If you point them out and nothing comes of it...you did your part, at least.

Link to comment
Share on other sites

We definitely need more inquisitive people like the OP ... just so we can shut the defenders up who claim to be having 110 fps on the fleet and in 16m Ops on High, if not anything else.

 

The coding is so bad they even admit they can't implement chat bubbles because of it ... yeah, I'm sure we'll get some smooth 100 v 100 battles on Ilum anytime soon :cool:

 

But, of course, the thread is pointless. Sane people who immediately recognised that the performance in this game is nothing short of an insult to any hardware known to mankind have left long ago, and most that have stayed are simply defending the game left and right by either having beast machines that can perform wonders while staying still on the fleet (and, of course, not actually putting that rig to the test by engaging in large-scale group activities) or making outlandish claims that Ops and Warzones run consistently smooth as butter even after long gameplay sessions (without, of course, providing any actual videos of that; while, on the other hand, you can see plenty of videos on YouTube that show the terrible performance ranging from 20 to 30 fps, searching for Ilum 1.1 slideshows is truly entertaining).

 

then how come there are a ton of people who stream every day that get high frame rates at full settings in warzones and in 16 man ops?

Link to comment
Share on other sites

A lot of folks here don't actually know what they are saying when they say "code." Most of you are just throwing it around hoping to sound smart. If you knew ANYTHING you'd know that decompiling doesn't actually produce the same thing as the original source code. It's usually close but it can have gaps, whitespace, comment problems.

 

It's the best guess of the tool that was used.

 

 

Now that's said, yes there are problems. I've seen a slow progression if fixes since the game came out. Hopefully they continue. I still would like to see the ability problems fixed. I hit the button, animation starts, freezes and resets.

Link to comment
Share on other sites

The OP's post gave me a good laugh.

Still, I cannot let that pass by. It might be a troll post (and I sure hope it is) but it's this kind of posts that spread false crap and give us software engineers a bad reputation.

 

This will be a good lesson: don't trust someone because he's throwing in some technical terms, just to look like he knows his stuff.

 

So first thing, checking shaders file.

IT'S A MESS.

First noticable thing - size - 32MB. It's HUGE. Shader file is what gets uploaded directly into your gpu, not video ram, but the gpu itself. There's no way a 32MB file would fit, and it doesn't.

 

Please don't talk about what you don't know about. I've never heard of a shader file being uploaded on the GPU itself (as compared to video memory). Ask any software engineer and they will tell you the same.

Have you ever actually developed games using DirectX (or any graphics API) and have knowledge of CPU/GPU architecture to say such things ?

 

Let me enlighten you then. When a processor is executing a program, the program is first loaded onto memory. The processor will then fetch those instructions from the memory and execute them.

A GPU is no different. The shader program is first loaded onto video memory by the driver. Then the GPU will fetch those instructions and execute them.

 

What does this mean ? Well, that uploading the whole 32MB file worth of shaders onto the GPU memory is definitely do-able.

 

Alright, opening the file, since it's just a .bin and anything will work, really.

Right, now it's obvious why the file is so large:

There's a TON of empty space between a lot of lines of code, removing just that would reduce the file's size significently.

 

Again, I've never heard of "removing the empty space between lines of code" to reduce a file size and improving overall performance.

I bet you opened that file with notepad or something like that (use a hex editor next time)

Those are not "empty spaces" like you call it.

The file is actually several compiler-generated binaries that were all put in a single file.

The file is then loaded at runtime and the code is assigned directly to the correct shader objects.

Those shader objects are then used "as-is", meaning if you modify one single byte within the file, you screw the whole thing up and it is beyond the developer's control because the binary format has already been decided by Microsoft when they wrote their compiler.

 

Other than the empty space being all over the place, there's also this:

Microsoft (R) HLSL Shader Compiler 9.23.949.2378

Fine, I get it. You used a version of the compiler that's outdated by like 3 years. Cool:rak_03:

How about you don't mention it all over the file, you know, to save space, especially that this info sometimes repeats itself every 2 lines :confused:

 

Have you tried using that version of the compiler and compared it against the output of the latest version to claim that there would actually be a noticeable performance improvement ?

Let me tell you that this is very unlikely.

This is how optimization is done: profile first and once you have some hard data to backup what you're saying, start implementing solutions.

 

And by the way, the version of the compiler they used dates back to 2008 (so more than 3 years) The latest version of the DirectX SDK released was June 2010 and has not been updated since so even if they used the latest version, the compiler would still be two years old.

 

You seem to care a lot about "wasted space" in that file. Let me tell you that a few character strings here and there won't make any difference in the performance of your game.

 

Another thing worth mentioning is that the file appears to be partially uncompiled

Advantages: when you change something in it, you don't have to compile it again

Disadvantages: Performance loss, since you're compiling on the fly

Seeing as we can't really change the file, guess what would be the right choice

 

Partially uncompiled ? Because there are character strings in it ?

Again, I bet you have never used D3DXCompileShader() or fxc (you know what fxc is, right ?) so please don't use terms like "partially uncompiled" that have no real meaning in this context.

 

Also, compiling shaders on the fly is pretty common and bear no real performance impact because you're only doing it once, likely the first time the game is executed and then, the generated code is saved into a file that just needs to be loaded "as-is" the next time (the 32MB binary file you are so fond of)

 

Gonna try to disassemble this, source code for this...thing, it should be fun

 

This is actually pretty easy. I'm saving you the hurdle of trying to figure it out.

1. Determine within the shader binary the beginning and end of each shader (by looking at headers and patterns that indicate the beginning/end of each shader)

2. Save it into a file

3. Use /dumpbin option from fxc to take a look at the generated code

There, you have disassembled the shaders.

 

Next BioWare coding tutorial will include:

 

Please don't.

Edited by Gauvi
Link to comment
Share on other sites

then how come there are a ton of people who stream every day that get high frame rates at full settings in warzones and in 16 man ops?

 

Because they don't? First of all, there are hardly any 16m Ops streams going for this game (who streams 16m Ops every day rofl), and secondly, I've never seen "high frame rates", unless you count 20-30 fps as high, and thirdly, I have yet to see someone stream SWTOR Ops and WZs at full settings, meaning Shadows and AA on High.

 

Learn the difference between high frame rates (20-30 fps is not high and smooth by any stretch of the imagination, it is tolerable, though), and High settings without Shadows and AA on High.

Link to comment
Share on other sites

The OP's post gave me a good laugh.

Still, I cannot let that pass by. It might be a troll post (and I sure hope it is) but it's this kind of posts that spread false crap and give us software engineers a bad reputation.

 

This will be a good lesson: don't trust someone because he's throwing in some technical terms, just to look like he knows his stuff.

 

 

 

Please don't talk about what you don't know about. I've never heard of a shader file being uploaded on the GPU itself (as compared to video memory). Ask any software engineer and they will tell you the same.

Have you ever actually developed games using DirectX (or any graphics API) and have knowledge of CPU/GPU architecture to say such things ?

 

Let me enlighten you then. When a processor is executing a program, the program is first loaded onto memory. The processor will then fetch those instructions from the memory and execute them.

A GPU is no different. The shader program is first loaded onto video memory by the driver. Then the GPU will fetch those instructions and execute them.

 

What does this mean ? Well, that uploading the whole 32MB file worth of shaders onto the GPU memory is definitely do-able.

 

 

 

Again, I've never heard of "removing the empty space between lines of code" to reduce a file size and improving overall performance.

I bet you opened that file with notepad or something like that (use a hex editor next time)

Those are not "empty spaces" like you call it.

The file is actually several compiler-generated binaries that were all put in a single file.

The file is then loaded at runtime and the code is assigned directly to the correct shader objects.

Those shader objects are then used "as-is", meaning if you modify one single byte within the file, you screw the whole thing up and it is beyond the developer's control because the binary format has already been decided by Microsoft when they wrote their compiler.

 

 

 

Have you tried using that version of the compiler and compared it against the output of the latest version to claim that there would actually be a noticeable performance improvement ?

Let me tell you that this is very unlikely.

This is how optimization is done: profile first and once you have some hard data to backup what you're saying, start implementing solutions.

 

And by the way, the version of the compiler they used dates back to 2008 (so more than 3 years) The latest version of the DirectX SDK released was June 2010 and has not been updated since so even if they used the latest version, the compiler would still be two years old.

 

You seem to care a lot about "wasted space" in that file. Let me tell you that a few character strings here and there won't make any difference in the performance of your game.

 

 

 

Partially uncompiled ? Because there are character strings in it ?

Again, I bet you have never used D3DXCompileShader() or fxc (you know what fxc is, right ?) so please don't use terms like "partially uncompiled" that have no real meaning in this context.

 

Also, compiling shaders on the fly is pretty common and bear no real performance impact because you're only doing it once, likely the first time the game is executed and then, the generated code is saved into a file that just needs to be loaded "as-is" the next time (the 32MB binary file you are so fond of)

 

 

 

This is actually pretty easy. I'm saving you the hurdle of trying to figure it out.

1. Determine within the shader binary the beginning and end of each shader (by looking at headers and patterns that indicate the beginning/end of each shader)

2. Save it into a file

3. Use /dumpbin option from fxc to take a look at the generated code

There, you have disassembled the shaders.

 

 

 

Please don't.

 

^Outstanding. If that reply doesn't at least expose the armchair devs nothing will.

 

Gamers talking about code...

Edited by Rafaman
Link to comment
Share on other sites

which MMO until now has a good engine? Oo gamebryo is the same or even worse, unreal engine cant handle more then 20 people on screen without lagging like a bag of potatoes, Crysis engine wasnt made to handle more then 1 person on screen (aion anyone?) ... WoW has ******** graphics and still runs like crap for the graphics that is has

 

the only game that i was suprised that didnt lag much was GW2 which if im not mistaken its game engine was indeed made to supportm assive ammount of people on screen.

Edited by xxIncubixx
Link to comment
Share on other sites

No wonder the code is crap. They fired everyone in spring when the subscriber numbers dropped and a good coder will find better payment and a long term contract in the business sector than in gaming. All they have left now are the unskilled contractors who are busy recycling cut content from beta and putting it into the cartel market to make a quick buck.
Link to comment
Share on other sites

i'm not a programmer, but as an art director I've worked with a lot of programmers. My experience is that there are a lot of different ways to approach coding problems, and what one programmer might see as a hard limitation can be a unique challenge to another. Also, there is almost always room for improvement.

 

What makes MMOs unique, and so much different from your average title is that game design becomes somewhat of a collaboration between the community and the developers. That typically doesn't go as far as letting the community dictate how to code the game, but it does more often than not involve getting community input on design decisions.

 

It's a unique relationship, and smart devs take advantage of the vast resource that is the community. They use it to make their own work better. The community benefits because it improves the product they devote so much time and effort to.

 

I know there are some creative and brilliant programmers that play this game, and I personally think its good to see the OP show this kind of interest. BioWare is only so big--they can only do so many things at once--but this community is nearly limitless in what its capable of, and we should be open to everyone's contributions.

 

^^This

 

Well Said!

Link to comment
Share on other sites

which MMO until now has a good engine? Oo gamebryo is the same or even worse, unreal engine cant handle more then 20 people on screen without lagging like a bag of potatoes, Crysis engine wasnt made to handle more then 1 person on screen (aion anyone?) ... WoW has ******** graphics and still runs like crap for the graphics that is has

 

the only game that i was suprised that didnt lag much was GW2 which if im not mistaken its game engine was indeed made to supportm assive ammount of people on screen.

 

This is one of the main issue when using an engine: you are somewhat restricted to its original features.

Of course, you can always expand and implement new ones to the point that the engine is entirely customized and optimized to fit your needs but ultimately, this will never beat a "from scratch" approach where the engine has been written specifically for your game (and not the contrary, where you try to retrofit your game to the engine)

 

There are pros and cons for each approach. Most studios go for engines because it saves you time and money at the beginning when you're trying to get things up and running.

Writing your own engine to fit your game from scratch obviously requires a lot of time, effort and money but it might be worth it in the long run.

 

I trust that Bioware did the right choice of going with HeroEngine, considering the time it took to build the game. Had they gone from scratch, there's a chance the game would still not be ready and we would not be playing it today.

Link to comment
Share on other sites

×
×
  • Create New...