Announcement

Collapse
No announcement yet.

[Twitch] Networking, and Game Jam Theme Announce! - Nov 13, 2014 @ 2PM ET

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

    #16
    Hi!

    7dfps is my first real work in UE4 so the following questions/comments might be obvious to folks, but I'm including them in the hopes that someone finds something useful.

    Networking Questions:
    • How do you recommend a remote team test network games? We're used to having a master server to connect to for creating/finding/joining games, dealing with nat punchthrough, etc. From digging into it it appears that UE4 doesn't have those capabilities right now. For distributing a game jam game, how should I best instruct players to create and find games?
    • What's the best way to handle a value that needs to be controlled by the client but replicated across all players? For example, in my game the guns are lasers mounted to the head of a t-rex. When the player looks up and down I adjust the rotation of the neck so the head/guns are pointing in the direction that the player is aiming. Right now I'm using a custom event to send that value to the server, which then replicates that to all clients. Is there a better way to handle this? It may also be worth noting that the variable and logic are currently all in the character blueprint. Would the behavior change if it was in the player controller blueprint instead?
    • How does variable replication in animation blueprints work? I see the option for variables to be replicated, but I couldn't find any examples in the docum
    • What's the recommended way to persist data across levels? Any gotchas to be aware of?


    Misc Comments:
    • When spawning 2 clients for testing network stuff, I get this warning repeatedly and I don't know what it means, but it kills performance (60fps->7fps) if I have the output log visible:

      Code:
      LogNetPackageMap:Warning: FNetGUIDCache::SupportsObject: LandscapeHeightfieldCollisionComponent /Game/Maps/UEDPIE_2_arena_1.arena_1:PersistentLevel.Landscape_0.LandscapeHeightfieldCollisionComponent_44 NOT Supported.
      I have a similar issue if you're standing on top of a BSP brush instead of a landscape.
    • I'd really love to see a tutorial around creating an animated mesh in blender and importing it into UE4 with scale/orientation/etc all handled properly. We've found a set of steps that is (mostly) working for us but a straightforward set of steps to follow would have been hugely useful.


    I'll post again if I think of any other questions/issues but that's what I've got for now. Looking forward to the stream!

    Comment


      #17
      [Question] What is the preferred method of syncing a non-root motion full body animation across a server to all clients? For example, a full body attack montage from an AI that is triggered via server side logic/behavior tree. Currently I have a custom struct that is replicated and plays the animation via a repnotify.
      If the animation needs to be synced with a specific player's animation than I run into lag/delay related issues as I currently haven't baked in any ping based or latency delay for the execution of the Animation on the server.

      [Question] Is there any chance there will be added support for nested replicated sub-objects or more specifically, components within components? By default when a subobject is replicated the owner is always set to be the root actor regardless if it's owner is the root actor or a child component. See this forum post for more context. I could implement the bunch modification side of things, but I worry about issues I would introduce with setting the stable name logic for proper serialization.

      [Question] For a multiplayer game with a large # of gameplay significant rigid body related actors. Is replicating all of them the only/simple way to maintain some sense of syncing/determinism among the actors since physx in Unreal is not deterministic? I know for some of the vehicles more sub-stepping is done on a thread different from the main so using logic based on game state would probably not be valid.

      [Question] Does Epic route all RPC calls through player based actors to get their actor channel? I've ran into a few situations where I want to execute an RPC on a dynamic replicated actor and find that I have to find an associated player to get its net connection in code. It seems this is the default case as its whats done in the gameplay abilities module. It would be nice if there was an easier way of doing this, but I guess its the nature of the system.

      Thanks in advance.
      Last edited by dzeligman; 11-13-2014, 01:26 PM. Reason: logic error

      Comment


        #18
        Hey everyone, thanks a lot for your questions. We look forward to seeing you soon.

        Cheers,
        Dana

        Comment


          #19
          A couple more questions I forgot to ask before-
          I've heard some multiplayer games not needing players to go through the trouble of setting up port forwarding or just ticking a button to have it port forward automatically, this would be especially helpful for adding accessibility to a game and giving people an easier time trying it out. Is there any available way of doing this with blueprints or is this something only accomplish-able via a service like Steam?

          Is there an easy way to setup animation synchronization for non-character blueprints. The mesh of the character blueprints synchronizes automatically, but regrettably there are still some limitations caused by the character blueprint that make it unavailable for use in certain game types which still need a character with animation. Trying to setup character animation synchronization manually is a nightmare right now compared to it simply being done automatically, is there any recommended method besides having to tell the server each time your animation changes which is easier, or is animation synchronization a potential feature addition in a near-future release?

          Comment


            #20
            Questions

            Originally posted by crowl View Post
            Questions? Let's hear 'em!
            I'm very interested in networking performance tips:

            What is the reasoning behind the default 10kbps channel limit? What's a good limit for a PC game? What about an XBone / PS4 game?

            How many simultaneous Characters can be well supported in a listen-server game? - Even a crude ballpark on this would be great.

            How can we optimize AI & Player Characters for network efficiency?

            What's the best approach to avoid movement lag with fast-moving actors? For example a replicated rocket actor with a ProjectileMovementComponent can be pretty choppy on the client. Using a PhysicsThruster on a physics-based actor doesn't seem any better.

            Thanks!

            Comment


              #21
              If making a networked game with Blueprints, whats the fastest way to check if networking and replication is working correctly for late joiners?

              Comment


                #22
                Originally posted by intoxicat3 View Post
                - how to get server list from blueprints? https://answers.unrealengine.com/que...without-c.html
                I just wanted to second this question! I think these days players just can't be expected anymore to enter an IP adress to be able to join a game.
                So since making MP games easier/possible with only BPs is a topic, I would like to hear if there are any plans to add BP nodes that can create servers and output a list of available servers?
                This could be as simple or complex as you want to make it, as long as it's not necessary to use C++ to get a list of available (local or even better web) servers for the player to connect to.

                Comment


                  #23
                  Nice... The networking model isn't exactly intuitive nor easy to get a new developers head around. You guys have a lot to cover for a single broadcast!

                  {Edit} Thinking about it a bit more, I'd like to hear a discussion on planning networking from a design-first perspective (top down), how to predict performance (& manage performance expectations), and debugging strategies.

                  From my (very limited) experience, and IMHO, networking seems to be a bit of a ad-hoc thing that tends towards a "try it, if it seems to work then it works" approach that can be deadline-problematic...
                  Last edited by 12many; 11-12-2014, 10:52 PM.

                  Comment


                    #24
                    Are there any plans to move the sexy network voodoo out of CharacterMovementComponent so we can use them in Pawn derived classes?

                    If not, I would love a tutorial going over how this component works so we can replicate it on our own.

                    Comment


                      #25
                      Can you give any indication when networking will be supported in HTML5 games?

                      Comment


                        #26
                        Could you please eloborate on how to replicate data per connection and not per actor?

                        I mean as of today, if you set COND_CUSTOM, you can manage per actor the replication of the variable but you have no access to the scope of it (connection).

                        Let's say you want a replication to only happen for the owner (COND_OWNER) but you want to manage it (COND_CUSTOM)... as of today, I didn't find a way to do it.
                        More, let's say that I want to send the actor life to all his teammates, today replication system doesn't seems to manage that case.

                        Can we we some insight on this on how to manage those cases? Is there any plan to manage this in the future?

                        Thanks,

                        Comment


                          #27
                          Any plans for making UObject multi threading easier ? (like creating, destroying, communicating between UObjects over separate threads).

                          Another question. Is replication multi threaded or everything is just done by single thread ? This is another area which could probably benefit most from multi threading, especially with huge amount of replicated actors and properties on them. (bandwidth aside).

                          It would benefit everyone but probably server most, where they are not really limited by performance of other systems (like graphics).
                          https://github.com/iniside/ActionRPGGame - Action RPG Starter kit. Work in Progress. You can use it in whatever way you wish.

                          Comment


                            #28
                            I can't follow the stream live because of timezones, but I do have generic questions I hope to get answers of.


                            1. Replicated Timeline based elevators (such as elevators used in UT) don’t work properly, is there any progress on this?

                            2. Does the Online Subsystem notifies the steam ‘master server list’ when a dedicated server has booted?
                            If not, could we get more details about it on the Steam online subsystem help page to make it work (there is nothing about it on steam documentation and nothing about it on Unreal's side as well, please help!)?
                            (The steam ‘master server list’ allows users to find servers to play on. Additionally the server provide details on what game mode and map is running)

                            3. Related to building dedicated server:
                            At this moment building a dedicated server fails if you use UMG in your project.
                            LogLinker:Warning: Can't find file '/Script/UMGEditor' LoadErrors: Info Failed to load etc.
                            Is this fixed for 4.6? We really hope to release before Christmas.

                            4. We made a custom animation node through an additional editor module. It works fine for our clients but its impossible to build our server now. When compiling the server with visual studio the builder tool crashes completely and sais it can't find unrealed. How can we make custom animation nodes that compile well on dedicated servers?

                            5. Related to animations:
                            In an animation sequence we are able to trigger sounds on the animation timeline. That’s very convenient but in some cases we need to stop the stound in the middle of the playback. (Ex: you reload your weapon but switch for another weapon before the reload animation is completed). Is there a way to do that cleanly?

                            6. And last question just to keep traditions: when do you expect to release 4.6?

                            Thank you guys and keep up the great work, we love you
                            David Hanson
                            You can follow our FPS development here: https://www.facebook.com/storm.united.mmofps

                            Comment


                              #29
                              [QUESTION]

                              What is the best workflow to trigger "one-shot" montages in a replicated environment, and react to events / branching point events?

                              As an exemple, I will take a case from the basket ball game I'm developping:
                              • A PlayerController pushes a button to make the pawn pass the ball
                              • I check if we are on the server. If not, I call Server_Pass. If we are, I call Multicast_Pass
                              • In Server_Pass_Implementation, I call Pass, which will then call Multicast_Pass
                              • In Multicast_Pass, as it is called on the server and all clients, I play the montage everywhere.
                              • I have a branching point in the animation to actually mark the moment the ball should leave the pawn's hands to be passed to a teammate. I catch this "event" and detach the ball from the character's hand and do the AddImpulse on the ball. But only on the server, as it is the only one to manage the gameplay. The replication will do the rest.


                              Is this "ping-pong" between the player who initiated the action and the server the correct way to do this?

                              Thanks!
                              My game dev blog : http://www.emidee.net/

                              Comment


                                #30
                                One more thing I ran into, more of a potential issue/bug than a question really. But thought I'd raise it to see if it's a known issue or not:

                                https://answers.unrealengine.com/que...d-windows.html

                                Comment

                                Working...
                                X