Did He just?!

Home Board Index » X: Rebirth » Did He just?!

BarrenEarth

BarrenEarth avatar
Level badge Proguey (12)
Posted 10 years ago.

http://forum.egosoft.com/viewtopic.php?p=4362230#4362230

Yeah that just happened... CBJ just said Roguey is wrong, Roguey is very very much right.

Let's burn down the palace now Nod

Roguey

Roguey avatar
Level badge Trueguey (22)
Posted 10 years ago.

Well CBJ would be the one to know if thats true or not. I guess its been the first actual reply on whats happening with performance, and whether XML is to blame. CBJ is saying its not due to constant look-up in XML. Although this still makes me wonder where is all this cpu-power going? It must be just poorly optimized at the moment. Although it does make me feel that they dont even know.

BarrenEarth

BarrenEarth avatar
Level badge Proguey (12)
Posted 10 years ago.

Well CBJ would be the one to know if thats true or not. I guess its been the first actual reply on whats happening with performance, and whether XML is to blame. CBJ is saying its not due to constant look-up in XML. Although this still makes me wonder where is all this cpu-power going? It must be just poorly optimized at the moment. Although it does make me feel that they dont even know.
- Roguey


Or they are defending a poor decision and don't have the humility to admit their mistake... very Egosoft like

Fallent

Fallent avatar
Level badge Fightguey (6)
Posted 10 years ago.

Let's be honest here... Who actually truly believes what Egosoft says anymore? Take everything with a "grain of salt" as CBJ said...

Might just be in my head, but CBJ seems awfully defensive and almost even kind of aggressive in that post of his... Suppose that's not surprising while he is after all looking for another Job.

Rover

Rover avatar
Level badge Fightguey (6)
Posted 10 years ago.

If they are using a library like the one the ruby gem/plugin Nokogiri uses the look up would be relatively comparable to a look up of a loaded CSV file via each row number being an "id"... that or they just load everything into memory at start up in a way that the XML becomes represented in OO fashion. Meaning it would be a one time load... I doubt either way that XML files are eating up the memory or CPU power unless they are doing complex look ups constantly against the xml files in memory or other wise...

BarrenEarth

BarrenEarth avatar
Level badge Proguey (12)
Posted 10 years ago.

If they are using a library like the one the ruby gem/plugin Nokogiri uses the look up would be relatively comparable to a look up of a loaded CSV file via each row number being an "id"... that or they just load everything into memory at start up in a way that the XML becomes represented in OO fashion. Meaning it would be a one time load... I doubt either way that XML files are eating up the memory or CPU power unless they are doing complex look ups constantly against the xml files in memory or other wise...
- Rover


Everything in the game has to be tracked so that you can save and interact with it. In order to do this everything needs to be constantly updated. There is no way of manipulating a language like XML while it resides in memory. It has to be pulled, read, modified, rebuilt, verified and repulled into memory. This has to happen with every object in the game.

They are running two instances of a XML library manager, one on each main thread. The profilers are not perfect, but if they are saying that 80% of our CPU is being used on XML related tasks they can't be THAT wrong.

We also know that the code of the engine is in LUA and XML... that is a whole other poo-storm and Roguey probably knows more about LUA than I do.

Roguey

Roguey avatar
Level badge Trueguey (22)
Posted 10 years ago.

@BarrenEarth I know very little of how the game works, apart from the XML structure.

Rover

Rover avatar
Level badge Fightguey (6)
Posted 10 years ago.

Everything in the game has to be tracked so that you can save and interact with it. In order to do this everything needs to be constantly updated. There is no way of manipulating a language like XML while it resides in memory. It has to be pulled, read, modified, rebuilt, verified and repulled into memory. This has to happen with every object in the game.

They are running two instances of a XML library manager, one on each main thread. The profilers are not perfect, but if they are saying that 80% of our CPU is being used on XML related tasks they can't be THAT wrong.

We also know that the code of the engine is in LUA and XML... that is a whole other poo-storm and Roguey probably knows more about LUA than I do.
- BarrenEarth


Errrr ok. Here is something I do all the time.

Load XML,JSON,YAML into memory and then parse it out into different objects in memory, ie when you would load the game in X Rebirth. Then when you need to export, ie when you would save in X Rebirth, parse the objects back out into XML/JSON/YAML.

So your telling me instead of doing that they are constantly parsing things out and into the XML file.. basically treating the XML file like some poor mans NOSQL DB? Why in gods name would they do this?! They had the right idea in X3, why would they take a 360* turn and regress? I really have a hard time believing that they went to the trouble to make X Rebirth multi-threaded but would then do something like this... But if its really that much of the CPU usage, I can't really see a way around it...

What XML libraries are they using anyway?

BarrenEarth

BarrenEarth avatar
Level badge Proguey (12)
Posted 10 years ago.

We don't know the library but it looks like one of the open source XMLlibs you can get from sourceforge or something.

Yes they are using the XML files like a SQL database, exactly. Now personally I do not touch XML ever. But my team uses a lot of SQL in our systems. We experience lag once we hit a dozen concurrent users, which isn't a problem for small scale software. Imagine a game that has hundreds of interconnected database systems all needing the same information and somewhere to store it. You do it in memory or you do it in a faster and more efficient binary language.

1


You need to log-in to post here.