Multiplayer tutorials and documentation

I’ve searched through all tutorials and guides and I followed every tutorial about multiplayer and networking. I have to say I didn’t learn much: some tutorials (like the Programming-Network-(01)_Creating_a_multiplayer_game_project) seem promising but eventually they are quite void (the named one makes you create an empty project with multiplayer gem selected, then instructs you how to launch the server console and an empty client, not very useful imho).

The Networking System in the Developer Guide is explained in a confused way (or at least I’m totally not able to understand it). It seems it uses and requires references to other objects or projects that I cannot figure out.

The MultiplayerSample project in the User Guide makes you launch the provided working example in a very easy way, but there’s no explanation of anything on how things work, what are the game objects involved, the API called, the architecture implemented… digging things out of the bare project is quite desolating.

I feel there’s need of a (as short as possible) complete tutorial about how to create a multiplayer game from scratch, with some minimal game objects, and step by step enabling them for working in a multiplayer context, applying the required gems and other facilities (GridMate? FlowGraph elements from the Multiplayer gem?), testing it in local then uploading it on GameLift (maybe integrating/linking the existing GameLift tutorial).

Thanks in advance,

Fabio

Hello @fabiodasoghe,

Thank you very much for all of this detailed feedback. You are correct that we still have work to do to better fill out our multiplayer education documentation\tutorials. I like your idea of a complete, start to finish, series on building a simple multiplayer game. I have marked down this feedback for the future.

If you, or anybody else for that matter, has an idea on more specific details for this series, for example specific points of interest that you’d like to see in the series, please feel free to leave that feedback here. We’d love to hear it.

Thanks again. Please let us know if we can help you out in any other way.

Thanks for your reply, much appreciated.

About the multiplayer tutorial series, I would love to have these steps/subjects covered:

  1. create a multiplayer project from scratch, adding support for authoritative server (multiplayer gem? where is the component named GridMate? currently is not clear from the docs), integration with AWS (Cloud Canvas) and GameLift.
  2. create a simple level with some environment element and the player avatar
  3. add the multiplayer support (with Flow Graph? C++ API?), ideally to support different multiplay scenarios:
  4. private game lobby peer to peer
  5. private game lobby with remote authoritative server
  6. open game lobby (mmo?) with remote authoritative server (with open game lobby I mean a different approach to multiplayer session where we don’t use the game lobby facilities seen in other tutorials to let the user choose the room to join: we implement the association user <-> session server side - the tutorial should show what apis to use in order to achieve this)
  7. how to test the private game lobby peer to peer in LAN
  8. how to test the private game lobby with dedicated server in LAN (showing how the movements are server-authoritative)
  9. how to test the open game lobby in LAN (showing how the network connections work, components/api involved, etc. - what should I do if, for example, I wanted to make it work between two remote computers)
  10. upload the dedicated server on GameLift and test it (private and open lobby)
  11. add a bit of sandboxing spice: explain how the 3D environment works, how I can modify the environment programmatically (and/or with Flow Graph), implementing a user command with which the avatar put an item (for example, a tree) on the ground
  12. use Cloud Canvas to save the user-created item (type, position, other game attributes) in the cloud (DynamoDB seems to me the best bet)
  13. use Cloud Canvas to retrieve, at launch time, the terrain status from the cloud (i.e. all trees position, rotation, size, etc.) and sync it with local state (rebuild trees in the local level).
1 Like

@fabiodasoghe,
Thanks again, this is all great feedback. I’ve taken this down as possible direction.

4 years later, no good demo.
I am really wondering if Lumberyard is able to do a multiplayer game battle royal style…

Very soon there will be a series of video tutorials on the official YouTube channel, which will tell in detail how to create and customize a multiplayer game

1 Like

Thanks @didzey for sharing the plan from the Discord channel.
I’ve also shared this over to @Benoit_Marsot great list of steps posted here:

I’ll reiterate that you’re request is being heard and listened to. I am adding this to the top 2 tutorial series I work on next.

The 1st one will be building a beautiful environment that’s production ready, while I research and learn how to best do multiplayer on a technology. There is a chance that it doesn’t use flow graph. I’m not sure it’s too early in my exploration.

My best guess at this time is that I can have this completed before the end of the year. I hope to deliver this as soon as possible and much earlier.

1 Like

FYI, it’s not part of the official documentation but I wrote a book covering your topic in depth here:
https://www.amazon.com/Game-Programming-Amazon-Lumberyard-Second/dp/1790350751

Github with all the samples I wrote can be found here: https://github.com/Aristo7/LYBook_1.20

P.S. It’s a book for an experienced C++ developer, and not for a general audience.