this post was submitted on 15 Oct 2024
409 points (91.1% liked)

Games

32637 readers
1658 users here now

Welcome to the largest gaming community on Lemmy! Discussion for all kinds of games. Video games, tabletop games, card games etc.

Weekly Threads:

What Are You Playing?

The Weekly Discussion Topic

Rules:

  1. Submissions have to be related to games

  2. No bigotry or harassment, be civil

  3. No excessive self-promotion

  4. Stay on-topic; no memes, funny videos, giveaways, reposts, or low-effort posts

  5. Mark Spoilers and NSFW

  6. No linking to piracy

More information about the community rules can be found here.

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] LeroyJenkins 36 points 1 month ago (1 children)

3d terrain tile streaming takes a crazy amount of data. it essentially downloads hundreds of png files at a time and overlays them over 3d terrain data. Everytime you move an inch or pan the camera, it pulls down new data.

[–] [email protected] 13 points 1 month ago (3 children)

That seems like a wildly inefficient way to render things

[–] AlotOfReading 14 points 1 month ago

MSFS implements optimizations on top of that (progressive detail, compression, etc), but that's how almost all map systems work under the hood. It's actually an efficient way to represent real environments where you don't have the luxury of procedural generation.

[–] Decq 7 points 1 month ago (1 children)

That's literally how every 3d game works (barring a few procedural games maybe). Now they just stream those texture and meshes as needed and presumably cache them.

Don't get distracted by this terrible piece of an article. It never states how long this peak was. It could have been just 100ms. So interpolating this to 81gb/h make no sense at all. It's just pure click bait.

In the end only the total volume downloaded matters (which the article of course doesn't mention). Why wouldn't you want to receive that as fast as possible?

[–] LeroyJenkins 5 points 1 month ago (1 children)

it's not the same. 3d games use polygons and shaders and whatnot. you can optimize things much easier in that space since it's a lot more computational. 3d tiling is literally a bunch of png files being streamed down.

[–] Decq 1 points 1 month ago* (last edited 1 month ago) (2 children)

Yes, just like msfs does. They still use polygons and shaders.. Polygons that make up the terrain and more and shaders that sample png tiles as textures... Msfs really does not do anything different than other games, outside of streaming in the assets instead of pre-installing them. Not sure why people think it's any different.

[–] [email protected] 2 points 1 month ago (2 children)

Other games store those png tiles locally. Which, sure, increases the installed size of the game. Storage is cheap though, might as well use it right? Like, even if this article is off by an order of magnitude, 8Gb/h is still a ton of data to stream just to play a video game. If other games also do that, that's news to me. But i was under the impression that games try to be as efficient as possible when it comes to networking. Storing all your texture tiles in the cloud and making your clients download and redownload them seems the opposite of efficient, or at least that they optimized for the wrong thing.

[–] AlotOfReading 2 points 1 month ago

A highly compressed, global base map at 1m resolution is somewhere on the order of 10TB. MSFS is probably using higher resolution commercial imagery, and that's just the basemap textures, most of which you'll never see.

[–] Decq 2 points 1 month ago* (last edited 1 month ago) (1 children)

Thats why there is a cache, so you don't re download every time.. So only new locations you visit will be streamed, but it will still be way less than having to pre install maps with locations you might never even visit in game... I don't get why this is so hard to grasp.

Do you manually download all your maps from google maps/earth every time before you use it? No you don't, you let the program figure out which parts you actually need and stream it to you. Same exact thing, fot the exact same reason.

Storage is cheap

So is bandwidth. 8gb/h is only 2mb/s which was maybe a lot 25 years ago. These days you can't even get a connection slower than 50/100mb/s

But i was under the impression that games try to be as efficient as possible when it comes to networking.

Games try to be as efficient possible with their network code for real-time updates, so latency is minimalized. This is not at all important if you prefetch stuff minutes before you actually need it.

[–] [email protected] 2 points 1 month ago (1 children)

Thats why there is a cache, so you don't re download every time.. So only new locations you visit will be streamed

K so why not just include that with the initial installation, if you're gonna need to store it locally anyways?

it will still be way less than having to pre install maps with locations you might never even visit in game...

Or allow users to decide what areas of the map they want to fly in and just download that subset when the user requests it?

Implicitly streaming that much data seems like a good way to piss off your users when they unknowingly saturate their bandwidth or bump up against their data cap.

Do you manually download all your maps from google maps/earth every time before you use it?

No, but Google maps doesn't potentially use gigabytes of data per hour, and isn't something I use for hours on end multiple times a week like a video game, except in relatively rare occurrences like road trips/vacations.

So is bandwidth

You pay for storage once and that's it. You pay a subscription for bandwidth, plus fees if you go over your data cap. Bandwidth is absolutely more expensive than storage, and should be optimized for.

[–] Decq 0 points 1 month ago* (last edited 1 month ago) (1 children)

K so why not just include that with the initial installation, if you’re gonna need to store it locally anyways?

Do you want wait hours/days before you can actually play? Or only stream what you actually need when you play while you play?

Or allow users to decide what areas of the map they want to fly in and just download that subset when the user requests it?

Implicitly streaming that much data seems like a good way to piss off your users when they unknowingly saturate their bandwidth or bump up against their data cap.

You do that by, hear me out, playing! And the game figures out where exactly you want to play and what you need. Besides, it probably will be an option to preload anyway but I don't know enough about MSFS. And in the case of preloading, you would hit the exact same data cap.

No, but Google maps doesn’t potentially use gigabytes of data per hour, and isn’t something I use for hours on end multiple times a week like a video game, except in relatively rare occurrences like road trips/vacations.

Yes and you only don't fly everywhere in game that you would have to download in these preloaded chunks/regions you're so happy with. If you just intend to stay in the same location, the streaming will stop! Because, everything will be cached....

You pay for storage once and that’s it. You pay a subscription for bandwidth, plus fees if you go over your data cap. Bandwidth is absolutely more expensive than storage, and should be optimized for.

So you cancel your ISP subscription ever time you finished downloading a game, movie, whatever? No you keep paying so you might as well use it. And if you a data cap, I'm sorry for you. That's a real bummer. But, I don't know why i have to keep repeating this point, the amount of data is at worst the same! (if you have enough storage to keep it all in cache) If you don't want to use more data don't fly to regions you haven't downloaded yet... But this is the exact same as with preloading..

[–] [email protected] 1 points 1 month ago

Do you want wait hours/days before you can actually play?

I'm suggesting that they build in an interface where you can select certain cities/regions or particular flight paths, you know, small chunks of stuff, and it would display how much it needs to download/cache up front. Give you a little progress bar and let you queue up multiple locations, if you have the bandwidth/room in your data cap. Let the user have control. Worst case, if you want to download a large area, start it at night, it downloads while you sleep, then it's ready in the morning, ezpz. Give the user control, instead of invisibly doing everything in the background without giving the user any way to monitor/control bandwidth/data usage.

You do that by, hear me out, playing! And the game figures out where exactly you want to play and what you need.

I want to have more control over that process than just booting up the game, taking flight, and hoping I don't hose my roommates watching Netflix because my flight path is slightly off course and the game starts streaming gigabytes of textures I didn't think I'd need.

it probably will be an option to preload anyway but I don't know enough about MSFS

If that's the case, great, problem solved, as long as I can also turn off the auto-streaming feature.

And in the case of preloading, you would hit the exact same data cap.

If the game let me control what textures to download more granularly, instead of automatically downloading a bunch of shit in the background, I have control over when/if it that cap is reached. If I'm getting close, I can make the decision to wait until next month to download the New Zealand textures or whatever.

And if you a data cap, I'm sorry for you. That's a real bummer.

You're being awfully dismissive about this, but it's a huge problem. Most of the USA and Canada still has data caps. That's nearly half a billion people, and probably a good chunk of the overall audience for MSFS are from the US, using data capped Internet plans. Making a game intended for that audience that downloads huge amounts of data without a way to control it other than "just never fly in new areas 4head" is asinine. I don't think that wanting more control over what the game downloads is that ridiculous of a request.

But, I don't know why i have to keep repeating this point, the amount of data is at worst the same!

Granted, but I want control over when that data is downloaded, and I only want it to be downloaded when I tell the game to download it. I don't want the game making that decision for me invisibly in the background.

But this is the exact same as with preloading..

No, it isn't. There's a monumental difference between the game deciding to download 100Gb of textures invisibly in the background while I'm playing the game and other people in my household are also trying to use that shared Internet connection, and me telling the game to download those textures overnight when no one else is using that bandwidth, and after I've confirmed that it isn't going to incur fees by pushing me over my data cap.

[–] LeroyJenkins 1 points 1 month ago

kinda... graphics all end up as polygons eventually but 3d tile rendering has a lot of different considerations and limitations you don't have with rendering a normal 3d asset rendering. check out things like CesiumJS that is an equivalent kind of technology

[–] ngwoo 3 points 1 month ago

The world they built for the game is hundreds of terabytes, it's really the only way to do it without forcing players to preload tiny chunks of the world and restrict their flight to only the ones they've downloaded.