Game Discussions Star Citizen Discussion Thread v12

As I understand, nothing wrong with the database, just CIG don't know how to use it correctly.

All things have payoffs though right?

This was doing the rounds the other day re graph databases:

If the connections within the data are not the primary focus and the data is transactional, then a graph database is probably not the best fit.

It feels like they moved to graphs because they fit their nested data. (Gun, on hip of player, inside of elevator, inside of ship etc).

But as theory moves to practice they're finding data can still corrupt in a live messy system. (As ammo clip 7 falls from player 3, destroying ship 2, and leaving player 6 in elevator 4. With player 7's 5th Pico...)

I don't understand me any game dev. But I imagine it'll be interesting watching these nestings hand over between servers ;)
 
This is so wrong. It's of course going to bite them back in the rear end as it's another terrible workaround added to the pile of technical debt.

I mean, it's a bit weird, like the cargo spindles also seem to clip. But they also seem to contact the ground and spin the Hull on its side. Possibly the cave itself has its own issues.

But overall it does look like the same work-around used for the Hull A...

Source: https://www.youtube.com/watch?v=53hBcVI13xw&t=196s

And nobody's really noticed yet, because there's no reason to be in the rear of the ship ¯\(ツ)/¯
 

Source: https://www.youtube.com/watch?v=Hh5h5euICwc

Wrote some quick notes for this FWIW:

I worked for a company called Akamai, for about four years, where I helped deliver about a quarter of the traffic on the internet. In that era.

Is 80% sure they're using Neo4j as their graph database, going on presentation slides etc

Says CIG discussed in Citcon talk ways of bundling changes into batch job so that they succeed or fail together. Because alternative is ship leaving one solar system, never arriving in other, and being nowhere in game world etc.

Says no one else is using graphs in mass transactional way. IE allowing users to alter in live time etc. (He used it in form where they updated in daily, off peak, fashion. IE updating relationships between users from table database to the graph daily)

Unsurprised that Replication Layer caused issues, because replication is costly. Common to have issues mirroring. If primary source at 80% CPU load, and streaming out data to copy takes another 20%, you end up with "two dead database servers rather than one, like, limping along database server".

Continues to be impressed it's working as well as it is. But they're up against limits.

Benefits are definitely a thing. Able to chunk large data up, with arbitrary levels of nesting. Table databases would struggle.

The problems start with 'cache locality', and don't stop there. Known hard problems. Happy to be CIG's 'rubber duck' ;). (IE sounding board).

His friend jokes that CIG have bitten off 5 of the hardest problems in computer science.
 
The guy has expertise yet never for one nanosecond considers it might be a confidence scam.
He does seem to be very emotional over this issue, though. Or maybe that is my imagination.

Maybe he realized that an Ontologically Anthropocentric Sensory Immersive Simulation on the promised scale requires a few more advances in computer science and technology and might never leave "Alpha". otoh, RP One was set in the year 2045. That's not too far away, so it must be possible.

Have faith, Citizens.
 
I don't understand me any game dev. But I imagine it'll be interesting watching these nestings hand over between servers ;)
Games generally have simple needs where the database is more like backing store and for anything transactional ($$); modifications to the data are almost exclusively done while it's loaded in the game server. But that doesn't stop people making a complete disaster of things.
 
Something new in 3.20, NPC can get weapons on the floor and shoot at you.
Just experienced it in a bunker where a tech guys (which don't have gun) get one before him and shooted at me :sneaky:
 
Is 80% sure they're using Neo4j as their graph database, going on presentation slides etc
They used Neo4J? :D I mean, it is a good database but it will take you only so far. I though they were going for something custom built as this is what seems to be required, if possible at all. A graph database is a natural choice for highly connected data but when the topology of the connections is more or less known, the problem could be perhaps tackled by a specialised implementation.

Then again, there might be some talented people at CI, there for sure are, but the dream they are selling would require a world-class team of database implementation experts or generally software engineers on the level of those implementing Whatsapp, so there you go.
Have to wonder how ED is doing those 'extremely difficult things' like moving one ship from one system to another in real time then. Then again I'm not a DB expert or a game dev.
By being smart and selective about what is possible and designing the game around known physical and algorithmic constraints. Like every actually competent game developer.
 
Last edited:
Have to wonder how ED is doing those 'extremely difficult things' like moving one ship from one system to another in real time then. Then again I'm not a DB expert or a game dev.

To put it very basically, all ED has to worry about is where the player is and what ship they are flying.

SC on the other hand has to worry about every single element on the ship, from chess peices on the chess board to which attachment the gun has on what weapon.

Now, there is a simple solution to this, but that involves abstraction. But Chris doesn't like abstraction, so they have to fidelitize everything.... and that's how you end up with the the cluster..... that is SC.
 
They used Neo4J? :D I mean, it is a good database but it will take you only so far. I though they were going for something custom built as this is what seems to be required, if possible at all. A graph database is a natural choice for highly connected data but when the topology of the connections is more or less known, the problem could be perhaps tackled by a specialised implementation.
Some said they use Amazon Neptune.
 
That YouTuber should explain how to track this state in a graph database:

Chris Roberts said:
"A ballistic round passes through the ship's shield, which scrubs off some of its kinetic energy but not enough as the round's velocity was high as was its mass as it was an armor piercing round. It manages to penetrate the armor and strikes an internal component, say a power relay node (something else we are working on as part of the pipe system refactor). The power node takes damage giving it a chance to "misfire" while in use. A few minutes later the node does misfire, blowing its fuse and resulting in it catching fire. The crew of the ship doesn't realize a fire has broken out in one of the side corridors, as they are busily concentrating on fighting the ships attacking them. The fire starts to spread along flammable surfaces, and as the fire starts to engulf other components they also catch fire. The engineer on the bridge of the ship sees his console flash red giving him a warning that several components have failed and looking at his ships schematic he sees a fire has broken out below decks. The engineer decides to seal the bulkhead doors on the corridor to contain the fire but the doors have no power as the power node is out! He comms one of his crew mates to leave his turret and grab an extinguisher and put out the blaze which is slowly creeping towards the power plant room. Fire reaching a ship's power plant or it's ammo stores are two sure fire ways for your ship to go boom. With the physical damage system ships will no longer just explode when their hit points reach zero, they'll explode because something inside them went critical and exploded (due to damage or heat), which then damages everything else. Outside of that damage will affect the ability of the ship to function or it's structural integrity so they also could become a lifeless hulk as much as they could go up in a flash of light. When the crew member gets to the corridor where the fire has broken out is has already consumed a huge amount of oxygen in that "room" (the corridor) and has released noxious gasses, so the crew member can't breathe and quickly retreats to put on a fire resistant suit and helmet. The engineer in desperation manages to reroute power away from the destroyed node through a secondary node restoring power to enough of the bulkhead doors to allow him to contain the fire. Noticing that there is an external airlock in the sealed off area he opens the airlock, venting the oxygen in the sealed off corridors and rooms to the vacuum of space, depriving the fire of the ability to burn, putting most of it out. By this time the crew member is suitably dressed and can extinguish the fire that made it past the bulkhead door before it can grow again. The engineer then reseals the airlock and allows the life support system to replenish the air in the vented part of the ship. Once done the engineer opens up the bulkhead door allowing the crewmember in with a replacement fuse for the power node, restoring power to that section of the ship, then returns to his turret. It's been a close call but the ship is still alive and in the fight! "

Link
 
Back
Top Bottom