Announcement

Collapse
No announcement yet.

State of UE4 server for mmo-like games in 2019

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    State of UE4 server for mmo-like games in 2019

    What happened to the Atlas MMO framework that was under development back in 2014 and has the advice for mmo-like features for Unreal evolved since that time?

    For context:

    I believe the Atlas MMO framework was targetted for UE3 and according to Tim Sweeney the framework inspired some changes and features in UE4. At the time, the advice for mmo-like games using UE was:
    1. Implementing a completely custom MMO back-end framework handling all gameplay logic including object movement, and interfacing it with UE through networking: The client purely runs in UE, and the server purely runs outside of UE, and they are coordinated through a custom networking layer using either UDP or TCP. This approach is generally best for MMOs looking to support thousands of players per server, where UE's high-precision approach to player movement and collision are overly-expensive compared to tile maps and other simplified techniques.

    2. Using UE's built-in functionality for implementing both the client and server components of an MMO, and extending the networking and level streaming code to support new features such as simultaneous connections to multiple servers responsible for separate streaming levels, and coordination between servers to allow seamless movement of actors between them.

    How has that advice aged with time?

    What solutions are there aside from third parties like Photon or SpatialOS?

    What hard limits are there for the UE4 server that keep it from being suitable for mmo-like games? I know, for example, that the UE4 dedicated server's uptime is measured in hours, not days, partly due to some things like using floats for some time calculations. Does anyone have other examples like this?


    #2
    Pretty much every modern MMO from Asia is using UE4 now. A bunch on mobile, even. But you won't be making full blown MMOs out-of-the box with the launcher version, it requires customizing the engine depending on your design.

    Comment


      #3
      The multi-channel design is still prevalent.
      (multiple UServer exe running instances of same map, travel portals)
      | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

      Comment


        #4
        Thanks for the responses!

        It's interesting that you use the word "prevalent" because everything I've read thus far suggests such an approach is non-trivial. If it was prevalent, then I would expect more complete examples and documentation in the community.

        In fact, I think the reason these sort of questions get asked so regularly is that it's unclear just how much hacking is required to modify the UE4 server to support this sort of gameplay. With the level of effort we're discussing, it seems like the safer route is to just write your own game server infrastructure. I expect most teams approaching this problem have the budget and experience to do so.

        As such, I'm just curious if others have done the calculus of this approach or if there's a clear best practice emerging from the community.

        Comment


          #5
          J Aaron Farr

          Prevalent = widely accepted/adopted approach. Documentation/complete examples? That's assumptions.
          There's not even reliable / solid docs for basic Multiplayer in Blueprint! So as they say - good luck with that.
          If you look at Squad or PUBG, they've had to roll their own large-worlds solutions (server-side rebasing etc).
          Its always been like this. You're on your own, or you can purchase a 3rd-Party solution and try tweaking that...
          Overall, Unity offers better community docs. Its been that way since the UDK days. Epic DGAF about docs!
          Last edited by UnrealEnterprise; 04-29-2019, 10:51 PM.

          Comment


            #6
            Bringing Unity to any discussion about multiplayer game development... yeah, right. Go check their docs about making MMOs and tell us back how easy it is. Don't forget to visit their networking forums and see the how happy users are with their current network support.
            Last edited by Manoel.Neto; 04-30-2019, 01:42 PM.

            Comment


              #7
              ClavosTech: those links were great. Thank you.

              I started the thread looking for a best practice or at least an update in the advice since 2014 and it doesn't appear to me that a best practice has emerged.

              The tried-and-true advice appears to be write your own when it comes to anything that departs too much from UE4's single-map, session-based dedicated server model. At least in that case, you know you can build a system that supports your gameplay use case.

              Nevertheless, there's a number of folks who suggest that modifying the UE4 server to support these advanced modes. Despite the prevalence of such advice, I'm not sure I see the evidence for it. The development effort appears to be non-trivial, requiring introducing multi-server connections, smooth transitions between servers, fixing up odd bits here and there like how time or position is stored, and likely quite a bit more. At that point, I'm not sure the advantage of sticking with UE4 as a starting point is worth it.

              So I'm just trying to square the apparent discrepancy between the advice that I see posted in forums.


              Comment


                #8
                Manoel.Neto
                Originally posted by Manoel.Neto View Post
                Bringing Unity to any discussion about multiplayer game development... yeah, right. Go check their docs about making MMOs and tell us back how easy it is. Don't forget to visit their networking forums and see the how happy users are with their current network support.
                C'mon Manoel, Unity was mentioned once (one line out of five), lets not make this yet another tribal Unity vs UE4 thread, because it isn't.. The point is, you can sometimes find relevant / helpful docs in Unity for solving things in UE4 (when there's no pre-existing docs etc). Its more about community blogs / docs than official ones. For example going back to Large-Worlds... What do you do to get around Origin-Rebasing lag... Plus how do reconcile origin on the server, when there's no pre-existing docs either etc... Your only option is to cast a wider net and try and find some out-of-the-box solutions.. For example...

                Comment


                  #9
                  In terms of "MMO", both Unity and Unreal weren't made for it. they are just "renderers", you shouldn't use builtin networking to make this kind of games.
                  What happens is many studios already have MMO proprietary frameworks built for Unreal 3, some happen to convert those frameworks to Unreal 4.
                  | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

                  Comment


                    #10
                    Originally posted by ClavosTech View Post
                    Manoel.Neto


                    C'mon Manoel, Unity was mentioned once (one line out of five), lets not make this yet another tribal Unity vs UE4 thread, because it isn't.. The point is, you can sometimes find relevant / helpful docs in Unity for solving things in UE4 (when there's no pre-existing docs etc). Its more about community blogs / docs than official ones. For example going back to Large-Worlds... What do you do to get around Origin-Rebasing lag... Plus how do reconcile origin on the server, when there's no pre-existing docs either etc... Your only option is to cast a wider net and try and find some out-of-the-box solutions.. For example...
                    My problem is with pulling the "but Unity" card in a thread about developing MMOs, a topic that is difficult in any engine (and, IMO, doubly so in Unity, but I digress).

                    Simply put, online multiplayer is already hard as it is and MMOs are exponentially so. There are very few developers writing MMO tech and tacking MMO problems who aren't burdened by an employers' NDAs so they can write blogs and tutorials about it. Even GDC talks about core MMO tech and solutions are a rare thing. So good info on how to tackle multi-server, massive single worlds and whatnot is going to be hard to find, no matter the engine.

                    Same goes for "built-in" support for MMO features. It's very unlikely Epic, Unity or Crytek can come up with something that can compete with battle tested custom solutions and serve the diverse needs of all kinds of different MMO games. And even if they do, the effort would be wasted if the big MMO companies ignored it and kept using their own in-house stuff. I mean, look at SpatialOS and the effort they have to do to get people on board.

                    Comment


                      #11
                      Well there's MIT options out there...
                      That however doesn't mean the workload is small in anyway tho.

                      For example, if you don't mind dealing with Kanji weirdness, some backend engines like this come and go from time to time:
                      https://www.comblockengine.com/
                      | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

                      Comment


                        #12
                        https://www.youtube.com/watch?v=g1zXG2ELRwg

                        I made a video showcasing my MMO system in its current state.

                        I do not have a solution for instancing seamless maps but my main approach is take everything noncrucial off the dedicated server build and put it onto rails web apps.

                        Originally posted by S6 Aaron View Post
                        What happened to the Atlas MMO framework that was under development back in 2014 and has the advice for mmo-like features for Unreal evolved since that time?


                        What hard limits are there for the UE4 server that keep it from being suitable for mmo-like games? I know, for example, that the UE4 dedicated server's uptime is measured in hours, not days, partly due to some things like using floats for some time calculations. Does anyone have other examples like this?
                        You would still want to restart your servers every 24 hours just for sanity and safety.

                        UE4's major downfall when it comes to creating an MMO is the seamless world and character count that a single dedicated server can handle which is limited to your code, level size, and hardware on your server really.

                        The majority of client side issues has been solved with the milestones worked in mainly due to fortnites popularity.

                        You can design your world and levels around this and create portals/choke points where players will have to hit a load screen to load onto the next area(server).

                        You will also need a persistent data system like I showcased above to handle the data transfer between servers.

                        You can join up on my studios discord where we discuss all things related to dedicated servers:

                        https://discord.gg/G3ye3Jm
                        [Youtube] [Market Place Profile] [Battle Royale Game Mode] [Ability Casting System] [BlightMMO] [Felucca Studios]

                        Comment


                          #13
                          Originally posted by FeluccaStudiosTV View Post
                          https://www.youtube.com/watch?v=g1zXG2ELRwg

                          I made a video showcasing my MMO system in its current state.

                          I do not have a solution for instancing seamless maps but my main approach is take everything noncrucial off the dedicated server build and put it onto rails web apps.



                          You would still want to restart your servers every 24 hours just for sanity and safety.

                          UE4's major downfall when it comes to creating an MMO is the seamless world and character count that a single dedicated server can handle which is limited to your code, level size, and hardware on your server really.

                          The majority of client side issues has been solved with the milestones worked in mainly due to fortnites popularity.

                          You can design your world and levels around this and create portals/choke points where players will have to hit a load screen to load onto the next area(server).

                          You will also need a persistent data system like I showcased above to handle the data transfer between servers.

                          You can join up on my studios discord where we discuss all things related to dedicated servers:

                          https://discord.gg/G3ye3Jm
                          I watched the video and it seems like quite an interesting system. I definitely would be interested in utilizing it either as a service or self hosted, so hopefully you decide to release it. Do you currently have any more screenshots/videos/demos of the system?

                          Comment


                            #14
                            Originally posted by KappaKai View Post

                            I watched the video and it seems like quite an interesting system. I definitely would be interested in utilizing it either as a service or self hosted, so hopefully you decide to release it. Do you currently have any more screenshots/videos/demos of the system?
                            most of my content is either on my youtube or twitch channel. You can also join the discord to have direct discussion about the application. I will start a chat channel on the discord specifically for the online sub system.
                            [Youtube] [Market Place Profile] [Battle Royale Game Mode] [Ability Casting System] [BlightMMO] [Felucca Studios]

                            Comment


                              #15
                              I currenty develop an open source dedicated server for MMORPGs spesificaly for UE4.
                              It is not a complete solution. Just sending data for now and try to figure out the recieving/convert to blueprint events part.
                              But a lot of work has been done while I used Unity3D for client.
                              You can see some videos on it at https://www.youtube.com/watch?v=iQPz...BqKpZn&index=5

                              The UE4 developemnt goes really slow and there are no other people involved so far, but I do not abandon it.
                              When I manage to make some basic stuff, maybe more people will join.

                              Comment

                              Working...
                              X