this post was submitted on 20 Sep 2024
474 points (93.6% liked)
Technology
58303 readers
15 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Oddly? This is not odd at all.
It's been a while sincce I wrote code, but I'll try to remember. Basically disk size and ram size have no connection. Disk size is for already generated assets (maybe you need to remember how the planes look like, so you create assets for all the planes. Or you want to have textures for the scenery, or for the Lincoln monument, or whatever).
But then you need to load those resources into RAM to access them faster, because if you try to load them directly from disk, it's a lot slower. So some part of those 64GB of RAM is because you are loading some premade assets.
But aside from this, there's also dynamically generated data that you have no way of knowing about at the beginning of the program, so you can't prepare in advance and generate assets for it. Like say for example the player wants to begin flying the plane - he's gonna have some different inputs than any other player. Maybe he drives slower at the beginning, or goes a little to the right when he takes off. Or his destination will be completely different. You now need to remember his velocity, his position on the map, the direction of his flight, his altitude, his plane's weight and who knows what else, I'm not a pilot. All of this, you allocate memory dynamically, based on user changes, and this uses the RAM as well.
Not to mention - you can make a 1kb program that takes 64 GB of RAM. You just ask the operating system for that much memory. You don't even need to fully use it. It'll take you one line of code.
All this to say - nothing odd about the program being smaller than the RAM requirements. It can mean it's not optimized, but it can also mean it has a lot of dynamic calculations that it's doing and a lot of stuff it needs to remember (and in the case of a flight Sim this wouldn't surprise me).
Technically correct, but if I'd have any input into hiring a person whose background involves making a flight simulator requiring 64GB RAM, that doesn't emulate every mol in that plane for that cost (I'm exaggerating a bit), I'd ask many questions.
It requires 16GB RAM, which is perfectly acceptable. But it can use more if available, for high res textures I assume. Which are streamed from Microsoft's servers, explaining in part the difference between install size and max memory requirements.
My guess is the big video ram is high resolution textures, complex geometry, and a long draw distance. I honestly don't know much about video games though.
The smaller install is totally the map streaming stuff. I'm unsure quite why it has to be so big, but again, I don't know video games. I do recall you having to tell it where you want to start from and it'll download some stuff there.
So.... Sid Meier?
Sigh
You're not wrong per se, but I'm having trouble fathoming gigabytes of data being consumed by these types of parameters. You could probably track hundreds of thousands of airplanes with that much space. The only thing that I could imagine taking up that much memory is extremely detailed airflow simulation.
However, as a rule of thumb, the vast majority of memory data for video games is in most cases textures and geometry, and not so much the simulation. Based on the article, it seems this game streams high resolution geometry data based on your current location on earth, which I would say is the most probable reason it asks for so much memory.