Questions about creating a multiplayer FPS

Note : I hope I’m posting into the right category… I couldn’t find one really fitting my post.

Hi everyone

I’m planning on creating a simple FPS multiplayer game. By doing this, I hope to get a little more comfortable with UE4. Though, I have some questions about creating it since I don’t really know how it works.

First of all, should I use a projectile to represent bullets ? Or something totally different ? I know projectile could be used (since technically, it’s exactly what a bullet is) but I’d like to be sure.

Second thing, how would you handle the server thing ? It’s not supposed to be a 64 player game, just a bunch of friends, like maximum 10. Is it possible to have one of the players hosting the game directly on the client or do I have to create a server in addition to the client ?

Finally, how does a server work ? I didn’t find a lot of things about this. I think most of the actions should be processed by the server and not the player (to prevent cheating for example) but… how ? Is it something like "the client provides to the server the info about the player - keys pressed, mouse clicked… - then the server processes it and provides the client the info needed - position of the other players + current state of the character + state of the map - or am I totally wrong in the way it works ? Finally, what UE4 components should I use to do such a thing ?

Finally, is it possible to do this using Blueprints ? I saw you could do a lot of things, and I already succeeded in doing a lot of things using them, but I wonder, especially for the network part, if it would be possible, unless UE4 has some special components intended especially for this. And concerning the server… what should be done ? I mean, if it has to process the positions of the players, it has to be able to load and handle a map, but also projectiles and AIs. Should it be a game too ?

Thank you in advance

Projectiles are a total mess I have found. Its much better to base all of your weapons around ray traces. The server thing is a mega complex thing to get your head around and effects everything you will be doing.

I created an extended FPS template awhile back to see how far I can get things. The project was canceled when I learned the hard way that using structs and renaming files too often will cause the project to eat itself alive. With that said there is a ton of stuff in this project you can look over to learn about things.