One of the problems with the documentation for the multiplayer side of the work when creating a game with the Unreal Engine is that it is almost exclusively hand waving.
What I would love to see is a tutorial video series that demonstrates and elaborates on the GameInstance, GameState, PlayerController, and GameMode classes.
It is always repeated that the GameMode should contain game logic, (e.g. win conditions)… but I have never seen anyone actually demonstrate this in any of the tutorials that I’ve seen and gone through about this. Everything just seems to be an after-thought, so to speak.
In the Multiplayer Documentation, the GameInstance class is never brought up at all (please correct me if I’m wrong). I only learned about it and its usefulness by watching a Polish guy’s video tutorials on Youtube via English subtitles… but even then, the guy in the tutorial just assumed I already knew about it and hand-waved like with most everything else when Multiplayer stuff is concerned. I’d really love to see some more examples of how to use the GameInstance class in the form of a video tutorial or Wiki article!
I understand very well the dynamics of Multiplayer locality (i.e. client-side vs server-side) from my experiences creating Multiplayer content in various games like in the Arma series… but I have never seen anyone explicitly demonstrate these things so that I can more easily wrap my head around the way that the Unreal Engine does this stuff.
The most common problem that I see in every community tutorial (apart from a lack of brevity or basic video editing ability) is that the core concepts of what people are doing are never explained. Community tutorials are more about the “what” than the "why and that’s not good in my opinion. It certainly doesn’t help me because I can watch every tutorial on the internet and be able to create a basic, rudimentary game mechanic… but if I can’t use that knowledge to turn around and apply it to what I want to try and create on my own, then maybe your tutorial sucks.
I would love to see a quality tutorial on RTS game mechanics with Blueprints (or even with C++). There are only a couple of very low quality examples of that right now. The best one is an 11-hour-long unedited video where a guy with a speech impediment says uhhh and breathes heavily into his mic for 6 hours, then spends the other 5 hours mumbling information. I wish I were joking.
I personally would love to make my own tutorials to help fill in these holes, but my lack of knowledge prevents me from being able to contribute. So I wanted to make this post as a sort of howl of frustration with what the community currently has to offer in the hopes that someone might hear it and either produce or point me in the right direction.
First point: Making multiple GameModes is a huge time factor. Imagine you would build a TeamDeathmatch and a Capture the Flag GameMode for a Game. This would take way too much time for normal Tutorial.
This would only make sense in a complete Game tutorial (and would still take a HUGE amount of time). So telling the viewers that you CAN make your GameModes with this should be enough.
Why use the GameMode for this? Because you can define all classes that should be used! Different PlayerStates that may hold information about carried Flags instead of kills. Different GameState that has logic to count the Flags
instead of counting the kills. Or tracking the conquered bases of the Unreal Tournament Onslaught mod. Different PlayerCharacters, maybe you have a special Character that should be used for your GameMode. And so on. You see
it’s not that easy to make a working example in a short time. I made one in my Marketplace project that only covers FFA and Team collecting simple objects. And even this takes time!
Second point: You can find an example of the GameInstance in the ShootoutMultiplayer Game in the Learn tab or in my Free Multiplayer Project in the Thread that can be found in my signature.
The GameInstance is a class that is created when the main Game is started. It is also only destroyed if you close the Game. That’s why it is surviving the Map Change. There are other ways to get additional Classes survive that, but
the GameInstance is the standard one. You can also check the API for classes (yes i know, you first need to know ABOUT the class, still now you can look it up) UGameInstance | Unreal Engine Documentation
Third point: What stuff exactly? Epic Games has a Multiplayer Tutorial Video on their Channel to explain how the Server - Client relation ship works. In easy words: “Everything a client does on its own will only affect him. If the client wants to do something that everyone sees he needs to tell the Server to do this.” Variables and Actors that are seen by everyone and updated for everyone are called “Replicated”. Only the Server can cause a Replication by setting them. Client’s can’t (anti - cheat).
To let Server and Client communicate you use “RPCs” like “RunOnServer” etc. You will likely want to learn about Replication and NetOwnerShip. This is the most basic thing and you will see that in every Multiplayer Project that is out there.
Fourth point: I can’t talk for others, but if you check out my Tutorial which is a stream recap on my Youtube Channel, you will see me explaining why. At least i think that i did that. If not, just ask! My Free project, that i talked about, also has lots of Comments explaining what happens: - YouTube
Fifth point: Ok that could be missing somewhere. Can’t help you with RTS sorry ):
I myself spent a few days reading through documentation, watching official videos from Epic Games, and a few other things to try and learn multiplayer, but in my experience, nearly every thing you might want to try and do in multiplayer has a very different solution (shooting a gun, aiming, toggling a door, etc…). At one point, I spent 3 days in a row trying to get a chest to open by walking up to it, and have it still work with everyone in multiplayer. All I can really say is that it takes doing and trying to really dive into the different scenarios.
I agree completely, I myself have looked at many tutorials, and it seems as if what they are doing only works in their specific setup, and can’t be used how I want to use whatever it is, or I simply don’t know WHY they are telling me to do something. I’m not really clear as to what it is specifically that you are trying to learn (just multiplayer in general?), but my tutorial series is explained very well (that is my goal, I couldn’t care less about what you’ve made if you don’t understand it) and has/will have many scenarios to use multiplayer (see my signature).
Rofl! That just made my day(night) Over the past 3/4 months, I have been self-learning everything multiplayer (Yep, the tutorials suck that bad), and now consider myself to be someone that knows what I am doing, just give it time if tutorials still aren’t working.
I pretty much agree with jfaw, though I can see some of the points others make. There is no doubt that often the information is ‘short’ in terms of getting you to where you are trying to get. Yeah, it’s frustrating. And recently I’ve noticed there is far less activity (or so it seems) on the forums than there was 5 months ago, so finding answers seems to be getting harder.
I am working on a FPS, and trying to learn and use all the concepts, and in the process I just started making a running tutorial (non video) so I can document as I go for me to remember in the future and so maybe it will help others. Link in my signature… but I just got started, so quite a ways to go.
I understand your frustration but you sound a bit unappreciative. You have to realize that these people also put in their time and money to create these videos in the hope to help some of us. The UE4 community is still fairly new and thus most of these people are still learning the best way to create and deliver tutorials, the same way as you are learning how to start with UE. (Most, if not all, of these people are open to criticism and feedback to improve their tutorials, so feel free to share with them your suggestions.)
Of course in a perfect world there would be a tutorial explaining everything and when completed you have a AAA game, fortunately it doesn’t work that way. I think you have to realize that tutorials are there to teach you concepts and that you will have to learn to apply those concepts yourself through practice and experience. Going through those RTS tutorials you mentioned, you should notice that most of that stuff is actually pretty basic and most tutorials (including non-rts) will teach you these basic as well. Usually what one does is follow a tutorial and then apply it to their own needs (in this case a RTS game), for example part 1 ‘create an RTS camera’ may as well been about how to create an FPS or TPS camera. Fortunately we do have some specific tutorials (like the RTS series) so you can get to the point quicker.
Just like you I am also hoping for high quality tutorials, but it is a bit of an easy exit to blame the current tutorials of ones personal lack of knowledge or learning. Most of the information is out there, however currently it is up to us to digest it instead of merely replicate it.