Training Stream - Blueprint Multiplayer Shootout Game - March 10th, 2015

We’ll definitely try to fix it up before we release any updates to the sample.

Hi. Am I the only one who cant run it becuase of crash of the editor at each Play attempt?

any update on the crashing on project startup that occurs with the shootout content?

We’ve located the cause of the crash and fixed it internally, we’re working to fully test the fix and then integrate it publicly.

I was wondering what is the best way to move to a new level and keep all of your clients connected in blueprints?

google “servertravel ue4”

and / or follow guys guide carefully, all the way through and you’ll know.

the exit menu is broken for multiplayer shootout example in 4.8.
I used the examples in game to build out my own and now my own is also broken. Can someone take a look? When exiting the game from the playing state, the menu MAP loads but the actual menu does not anymore and leaves the game in an un exitable/unreset-able state.

Same here and looks like for few others as well: Blueprint: Menu not showing - Blueprint - Epic Developer Community Forums

Even just simple open level->create menu widget->add to viewport that doesn’t touch GameInstance BP or GameStates at all doesn’t work in projects based on which is especially weird.

Hey all,
We’re aware there’s a handful of issues with project. We’re investigating shortly. :slight_smile:

Thank you for response

Hi,

I have a question about using Game Instance class for storing current game state variable.

Seems like we have only one global game state for all players. In my understanding, each player could be in different state at the same time. One would be still in MainMenu, the other in ServerList or already Playing. Shouldnt it be stored per player, in ie. Player State class rather then GameInstance?

Also all widgets(and OSS events) are associated with PlayerController0, why? My initial thought is to create widgets in PlayerController class and associate widgets with Self, so each player can have its own widgets.

Could one of the developer who created demo explain why he went way ? I do admit it all works as expected, I just dont understand how.
Greatly appreciated.

Hi tas,

The state managed by the GameInstance is only relevant to the local player - other players are only connected to the game while actually in the gameplay map. In the menu screens, the local game process is only aware of the one player currently navigating the menu. Now, if you had a game that supported splitscreen or similar functionality with multiple local players, and these players could navigate the UI independently of each other, then yes, you’d want to store some state per player.

Admittedly, using the PlayerController at index 0 here is probably not best practice in general. As above, it works in case because while the player is in the menus, he’s the only one connected to the game.

The reason I say it’s not best practice in general is for two reasons. One, servers will create an instance of a PlayerController for each client that connects. On listen servers, there’s a good index 0 will refer to the local player’s controller in practice, but that should not be relied upon. On clients, works in practice because only the PlayerControllers for the local players are replicated to them. The second reason is related - for games that support splitscreen or similar functionality, there will be multiple PlayerControllers that each represent one of the local players, and in case, you may want to associate widgets with particular local players. If the widgets are created in the PlayerController class, remember that the server creates a controller for each client that connects - so consider adding logic to prevent creating widgets for non-local players.

Thanks for explanation, now its way more clear. I misunderstood few things about GameInstance.

Few more questions:

  1. When I Create Session, can I do it on any client or only on server (with help of Has Authority node) ?
  2. Is Shootout designed only for Listen Server or for Dedicated as well ? If only one of them, what makes it not suitable for both of them.
  3. What is ServerTravel/ClientTravel for ? According to docs, ServerTravel moves all Clients and Server to new map. Is it possible to each Client change map independently, and if they choose to go to the same map, they will be able to see each other ?
  4. Do you guys have any more Multiplayer example games coming up? Learning from Epic’s examples is the best way to go.

thanks