Continuous Asset Data Streaming - issues/problems with

Started by
16 comments, last by hplus0603 10 years, 2 months ago

Actually, World of Warcraft does stream while you play nowadays unless you predownload it.

Advertisement

Actually, World of Warcraft does stream while you play nowadays unless you predownload it.

Streaming what part of the game? And are there issues for some players with delays caused by this? Any noticable LOD when you run fast towards a previously never preloaded area?

Mainly characters or is this for terrain also (which would be something relatively static you usually could preload ... but then WOW likley has a rather large World Map or have they added some procedurally generated terrain?)

I remember in Lord of the Ring Online (years ago) you would walk out into some area many player congregated in (they had long previously segregated the banks to seperate closed 'areas' because of their heavy usage/population) and it would often take longer than a minute for all the players present to actually pop in to visibility (because all the different clothing/equipment on the avatars and later animated textures they added for those, and I think that data was just the GUIDs not the raw data itself). And there dId not seem to be any simpler placeholder made visible before the player was fully renderable. (no LOD mechanism).

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

I guess I need to clarify the data traffic Im talking about :

The level of constant (in-game streamed) data download to the players client is likely to vastly exceed anything done so far. It would also be in small frequently changing subsets which comes directly from the dynamic data of the game's terrain management servers (with areas of seamless server boundries) - so static download servers cant really apply as the mix-n-match data is different for each player and for THAT point in time (and depends on what the player's client has already cached)

The game would constantly have new assets. The idea is to have major player creation of assets to multiply new content by several magnitudes. Along with that is objectifying the entire terrain and the props that usually these days are static in 'baked levels'. Players actions can (and will) add/subtract/modify the terrain and props at any time and new recently published assets can suddenly be there the next time you pass thru.

This would already be using alot of data compression (use of hierachical templates for common 'inherited' data) and the data dictionary on the client end, BUT would be for ALL asset types including more unique bulky ones like : textures, body animations, video streams, sound effects, object meshes which the templating only helps with a little.

A appreciable amount of Procedural Generation would be part of this MMORPG and some terrain/scenario building might be done ON the client (so the quite small procedures/seed parameters need only be sent)

One issue - just sending the client fine grained information about what assets (their type and identity) ARE present (where the player is currently or moving towards) BEFORE the client then can check 'do I have a cached copy of this' (and what can I substitute temporarily) to then need to issue a request to the Servers for pulling missing data.



So thats why I'm trying to get a handle on the effects/problems with that much data flow (or how much internet data flow has to improve to make it viable) Consider if one client gets this elevated amount, what does that mean for the servers handling thousands of such players simultaneously....

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

So thats why I'm trying to get a handle on the effects/problems with that much data flow


You will be excluding some segment of players who don't have enough networking to download the experience.

Also, you will have to figure out how to pay for all this, in dollars. You will need both servers, and internet bandwidth, and if the data changes often, traditional CDN caching is unlikely to be very effective.

Good-quality bandwidth in well-connected data centers typically costs about $10 per megabit per second (order of magnitude -- details matter.) Let's say that your game needs 10 Mbps per player. This means that you'll be paying $100 per month per simultaneous online player of your game. How many simultaneous online players do you need? 1,000? If so, the bandwidth bill for your first month will be $100k.
enum Bool { True, False, FileNotFound };

The game data itself with lots of stuff going on, but thats mostly object IDs/basic data, triggered animations/events and 'surge-y' asset downloads... The 'new' downloads when moving into new or modified areas again will vary depending on how common the resident objects are and how much may have changed.

Some of the streamed assets are large even when well compressed but eventually it gets caught up and that load diminishes. Some good LOD prioritizing mechanism obviously will help (alot of these assets you dont see full detail til you are right ontop of them, but complementary to that is to have them ready by the time you ARE ontop of them. And as this is a MMORPG I can/could slide a bit on 'perfect' detailing of game objects.

I'm not even quite sure what typical DSL is these days (effective rate), but I do expect improvements by the time some game like this would actually be operational (Im also counting on SSD s being more common)

I'll have to re-investigate sizing of typical objects at dif LODs to better judge what might be needed.

Even within one 'prop' - say a 'chair', there are the broken pieces meshes, the X different damage/dirt effects textures/decals/mesh patches, and similar other atypical 'states' which may not have to be downloaded immediately for first full view (and all the LOD simplifications for several steps of distant viewing likely being quite alot less data). Its possible there will be more than a little material texture sharing that will cut need for unique textures down (theres also the issue of how much data can fit in the targeted GPU memory too)

I would hope the required thru-put might average closer to 1Mbps instead of 10Mbps (how surge-y ).

All the other costs of running a MMORPG arent insignificant (and THIS design idea is trying to cut out alot of the company asset creation costs to try to bring down expenses as well as make niche games more possible (after all, a 'chair' in one genre's game mechanics is largely the same data as in another if you modularize it sufficiently). Big budget for all the easy to (player) use tools -- that though will be the killer/delayer for this idea.

Oh and If I ran such a thing there would be NO Free-To-Play (is the jury out yet as to whether that income model actually is working for most games who have it??) - I would have a solid monthly game charge like the old model (~$20-25 a month ??)

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

I would hope the required thru-put might average closer to 1Mbps


You said what you're doing is on a scale that hasn't been seen before. Second Life streams user-generated content, and uses at least that amount of bandwidth to do it. Whether user-generated streaming content will be good enough for the masses (and attract enough users who are good at generating content!) is a real challenge.

OK, so if you support 1,000 simultaneous online players, your first bandwidth bill will be $10k. I hope you have the budget needed to get that off the ground!
(Also: If you're buying less bandwidth, there's a point where the per-megabit cost will be pretty high because of fixed overhead costs.)
enum Bool { True, False, FileNotFound };

Dont worry you dont have to "read me the Riot Act" they do to so many here of these forums for even thinking that 'I" am going to make a MMORPG etc etc...

Its more trying to work out of what I 'hope' might be down the line for us in the future. Like I said first a better more interactive game, second lots of new imaginitive content, third a business model that works (including smaller niche games using same system possibly load leveling the same server/network resources).

Look at MMORPGs and see how pathetic they are (actually degenerating from games like Ultima Online) and Im looking to see what might get them out of the 'gonna be the next WOW' rut the companies and their investors are stuck in. Likely it would require a game engine company collaboration... even more risky.

Take the cost of a Triple A game ($100 mil these days?) and double it because of the tools to enable practical player asset creation (up to and including mission scenarios, behavior scripting, etc...) What company is going to gamble on that?? ... even if what they build up could be reused on their next 6 games (some of it even is just superior tools to significantly cut costs even if there is no revolutionary 'player creation' involved).

SO the typical downstream load of Second life is about 1Mbps? Continuous? How do they afford to pay the rate (just the data xport) you've mentioned? I expect the game mechanism I'm thinking of may be very 'bursty/surge-y' depending on player activities/behaviors/patterns (if they sit still alot it falls off alot) so fluctuating between that 10Mbps and well below 1Mbps may be the actual case with the low end typical.

A fixed monthly charge without them endlessly selling to you within the game (poisoning it in my opinion). How much could you charge for a superior MMORPG game (or game system with multiple genres/themes to select from) ?

Still I expect years off the thru-put costs will drop, we might have a few more adaquate open source tools to leverage, and maybe some game company who sees the trap they are in and wants to push into the next generation of gaming ???

--------------------------------------------[size="1"]Ratings are Opinion, not Fact
Second Life can afford the networking because their business model is leasing servers that run Second Life software. The actual players pay for the server/bandwidth with the "land fees."

Another game that does live editing/streaming is EverQuest Next / Landmark, although that's not shipped yet.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement