Results 1 to 10 of 78

Thread: New MMORPG?

Hybrid View

  1. #1
    Player R041's Avatar
    Join Date
    Mar 2019
    Posts
    938
    Character
    Oidi Grey
    World
    Marilith
    Main Class
    Sage Lv 90
    Quote Originally Posted by PEANUT View Post
    It's waaaay more than just "good graphics", it literally makes developing major content like an MMO much easier and smoother, allowing the team to be more creative and devote time and energy to innovation in gameplay and new ideas, unlike being limited to the same formula in FF14...
    I work in UE5 and the things you mention studios already had solutions for, or other engines did natively. Nanite and Lumen have a very long road before they're usable with 60FPS and smooth camera panning in live games.

    Nanite: Extremely large file sizes, you don't want my zbrush file directly in UE. Restricted to static meshes. We've almost always been able to auto-LoD. Shader restrictions. My team is not using this.

    Lumen: Beautiful, amazing in theory. Really frustrating, laggy, and slow to update in practice. It relies on hybrid screenspace that creates way too many ghosting effects on the screen when you pan from a bright to a dark area or vice versa. Maybe we'll be ready for this in 5 years.

    World Partition: Most engines have this, UE had plugins for this, and Unity has this. (I've worked on 400 chunk worlds before. Not fun)

    1 file per actor: Nice in theory, but we usually just prefab different instances out and assign scenes anyway. 2 people working on 1 map is very complicated which is one reason to have partitions. 1 person accidentally touches the splatmap, or something that can't split when they weren't supposed to and it explodes. I'm less worried about the actor placement, when I typically don't want 2 people in the same scene anyway. Also assigning scenes is easier than assigning zones to someone. "Okay, just.. Don't place actors past this river and we'll be fine" this also explodes version control.

    Oh, and if it's an MMO - It's going to have a lot of server side instanced data. So that means dev in client will be placing stuff, not in engine. We used a tool that could transfer the coord/properties of prefabs from scene over to the live server, but that's different.

    We're already at a place where MMO dev should hypothetically be easy, but 'MMO' is complicated because server zones, data storage/fetch/security is complicated at large scale. Not because it's difficult to sculpt and LoD a rock.

    But you are mostly right, that the dev pipeline is getting WAY better. Just don't really expect this team to give us more for less. When they know they can give us more for more, like how the real world works. :/

    Yoshi prob looks at new pipelines and goes "Okay, so we can pump out 2x more creatures? Awesome. Split that time between this and this project." not "Okay so let's add 2x more creatures to 1 game for the same price as before"

    That's why when people talk about in the graphics overhaul, how we can hypothetically have more objects and density per scene.. Most of us look at it and understand that it really doesn't matter, because that usually just means they can squeeze more out for less in dev. Not give us more overall.
    (1)
    Last edited by R041; 05-19-2023 at 02:35 AM.

  2. #2
    Player
    PEANUT's Avatar
    Join Date
    Mar 2011
    Location
    Gridania
    Posts
    444
    Character
    Dawn Nova'nuru
    World
    Excalibur
    Main Class
    Conjurer Lv 90
    Quote Originally Posted by R041 View Post

    Oh, and if it's an MMO - It's going to have a lot of server side instanced data. So that means dev in client will be placing stuff, not in engine. We used a tool that could transfer the coord/properties of prefabs from scene over to the live server, but that's different.[/INDENT]

    We're already at a place where MMO dev should hypothetically be easy, but 'MMO' is complicated because server zones, data storage/fetch/security is complicated at large scale. Not because it's difficult to sculpt and LoD a rock.

    But you are mostly right, that the dev pipeline is getting WAY better. Just don't really expect this team to give us more for less. When they know they can give us more for more, like how the real world works. :/

    Yoshi prob looks at new pipelines and goes "Okay, so we can pump out 2x more creatures? Awesome. Split that time between this and this project." not "Okay so let's add 2x more creatures to 1 game for the same price as before"

    That's why when people talk about in the graphics overhaul, how we can hypothetically have more objects and density per scene.. Most of us look at it and understand that it really doesn't matter, because that usually just means they can squeeze more out for less in dev. Not give us more overall.
    Thanks for all the input, sorry I had to cut out some of your post or it wouldn't let me reply. UE5 is at 5.2 and they keep improving upon it which is very nice knowing it's going to get better and more optimized. I'm curious what you think can be improved when it comes to servers and such? I know for MMO's server data utilization is very important, does that also have anything to do with playing online games in any capacity on mere 15 mbps? I feel like 1 gig internet is mainstream now and was wondering if they bumped up the minimum internet specs if that would drastically change the way we play online gaming at all? That's something I'm still reading up on and learning...
    (1)

  3. #3
    Player R041's Avatar
    Join Date
    Mar 2019
    Posts
    938
    Character
    Oidi Grey
    World
    Marilith
    Main Class
    Sage Lv 90
    Quote Originally Posted by PEANUT View Post
    ...
    5.2 is great, and UE is my favorite engine by far.

    It's complicated with MMOs, because the packet ramp isn't linear per additional character, it's multiplied when the server is authority. For every new player, that player needs to now send their own data, but receive data for all other players.

    They have to do a lot of tricks to trim costs when you're not directly interacting with that object or character. With high engagement areas, you'd remove almost all non-essential packets to the player. Then they also reduce how active the actual world is too, the only active entities sending and receiving data are ones that have an observer of some kind. A player camera would be an observer as an example. Less density means less CPU and less packets. So we'd typically have to design things around 2-3 creatures per observable area. Also because each instance can at times only be 1-2 CPU threads.. I wouldn't be surprised if XIV is run off of a single thread per instance.

    I think WoW might be using smaller seamless instances so they can get away with faster cpu ticks in open world, and more high density events in the same large map. But that's just speculation, I don't have actual info.

    Unreal Engine is phenomenal with network data, but it's not really MMO without heavy engine changes. It's designed with the idea that data is exchanged all within the same session and doesn't require constant interaction with a larger database. But it does have Server/Host Authority. Most studios will implement that data layer separately if they need to. Some don't at all and just keep to a max 32-64 players per instance and do data checks on session refresh/begin/end intervals or something.

    The biggest upgrade for MMOs would be multi-core instances, cost of CPU, and data transfer cost.

    I don't really think it's much of an issue for household internet anymore, games like League of Legends are only about 25mb per hour with a lot going on and extremely high tick rate compared to MMOs. And it's mostly download, not much upload. Especially when you consider that you don't need ALL data from the 100 players next to you in an MMO. That's already not a huge deal because the data we receive is pretty basic anyway.

    Our bottlenecks are definitely the hardware and instance systems being used today. They're archaic, and we're in dire need of an advance in multicore technology.

    When we're working on the server infra, I never really have to think about how much data the individual player is receiving. It's always how much data the server needs to send, and how many things can potentially happen within a single tick. But we deal with single thread instances, so it's also way more painful. Also have to think about how jarring it is for players to see other players pop in/out when creating zones on the same single map, so we kinda fake it sometimes with bridges or walls.

    Also, the large world systems you're looking at from UE don't directly benefit 'MMO', just larger maps as a whole, because it helps seamless client side loading of a lot of assets. Otherwise you have to ask the client to load EVERYTHING - Which, even if you're not actively rendering it, it's still in memory. So systems like those say "Hey, I'm coming up on zone limits, let's start loading data from disk into memory and dump the old stuff that we haven't seen a mile ago."

    Idk if I actually answered your question, 'cause I think I babbled a little. lol
    (1)
    Last edited by R041; 05-26-2023 at 06:19 AM.

  4. #4
    Player
    PEANUT's Avatar
    Join Date
    Mar 2011
    Location
    Gridania
    Posts
    444
    Character
    Dawn Nova'nuru
    World
    Excalibur
    Main Class
    Conjurer Lv 90
    Quote Originally Posted by R041 View Post
    5.2 is great, and UE is my favorite engine by far.

    Idk if I actually answered your question, 'cause I think I babbled a little. lol
    No you didn't babble, it was good info Do you think the CPU cores and threads in the PS5/XSX are much more qualified for something like this? Do you think the way hardware is changing/advancing is in the right direction say from AMD concerning video gaming achieving better results for say an MMORPG? I'm fascinated by video game technology and hardware and how quickly it advances, it's really cool! My hope one day is to get a breathing living MMO world with thousands of players and dynamic gameplay, maybe even see it in VR! I know there are other MMORPG's coming out developed on UE5 and wonder if they suffer with these limitations you spoke of as well? I believe Chrono Odyssey is it's name?
    (1)
    Last edited by PEANUT; 05-27-2023 at 12:25 AM.

  5. #5
    Player R041's Avatar
    Join Date
    Mar 2019
    Posts
    938
    Character
    Oidi Grey
    World
    Marilith
    Main Class
    Sage Lv 90
    Quote Originally Posted by PEANUT View Post
    ...
    Oh we handle a lot of that mostly fine today even for a personal machine / console. There's a lot of different ways you can represent another player 'character' to reduce CPU. Memory and storage speed is lacking though, because you need to either pre-cache a lot of assets or fetch them on the fly. So you can't have an insane amount of dynamic objects as an example, but I think we'd be good if everyone at least had an M.2 drive. (Consoles with standards have PC beat there)

    But there's a lot of tricks we use that allow us to share materials and texture sheets across a lot of objects reducing draw calls so it's not a huge problem. Reducing draw calls is basically my life.. lol


    We also gotta separate out what the Client (player game) is and what the Server is here, because they both have completely different demands. That's not even talking about the 3rd layer, which is storage/DB stack - Instances will typically have their own local DB, but will always communicate progress across a master set, and then trade non-critical data to individual instance when you cross them. (This is a huge technical problem that can introduce duping or hitching by travel)

    The main bottleneck for MMOs specifically is Server side instance CPU - Because you can have all the bandwidth, memory, storage in the world, but CPU is the largest gatekeeper to it all and unfortunately we love large zones with player and environment cross communication, and a lot of actions. Remember player interaction is mostly exponential, not linear.

    So that means a chunky game thread, then some servers have a network thread, and even sometimes a physics thread, and I think you can hypothetically make a Navigation thread if you need to update a complex AI nav and not bake it. Players have their own client Nav but server will usually know when client is OOB. Memory is basically ever-expanding, still expensive but a linear expense. CPU, the chonker that needs to run the big game thread for each instance, is the meat. That's the largest expense, and it's not a linear one.

    We need to remember that a lot of MMOs and online games in general can't just upgrade their whole infra on the fly. So not only is their equipment potentially archaic, but the method in which they USE that equipment probably is too.

    Every MMO is going to suffer from all of these issues, it's just a matter of how they deal with them and how they hide the seams. Like as an example, the server can hypothetically layer instances on top of each other that players phase in/out of, but still get some movement information from. So it can LOOK like there's thousands of people, but really you're seeing ghosts and your instance only has 10 players. This is easier with places that are static like towns, but not so much in combat when you need to have a master thread keep track of all interactions of all layered zones.

    It's expensive for them either way is the problem. lol

    WoW on a technical level does most of this extremely well, and it's super surprising to see them not only keep up with current tech, but also basically pave the way. Tab Targeting as an example, behind the hood of Action Games - It's all a similar 'target' registration system, so people can think it's archaic BECAUSE of Tab Targeting, but you make free swinging and shooting combat and it wouldn't be any different to the server. The fact that they can keep the tickrate high and know how to blend instances without hitching (for the most part) is pretty insane to me.
    (1)
    Last edited by R041; 05-27-2023 at 01:52 AM.