Independent Project
Multiplayer research / What makes a good multiplayer game.
I am going to be prototyping a multiplayer game, more specifically a MMORPG Type game as I have never attempted something like this. MMORPGs normally consists of aspects of a roleplaying game and multiplayer whether instanced or a massively multiplayer online game.
Popular examples would be World of Warcraft, Lost Ark, Black desert Online, Final Fantasy Online and many others, all of these follow a basic concept of cooperation and levelling as they tend to try and not put restrictions on player interaction as this is an important component to MMO games.
There is Many Factors to a Multiplayer game whether a First Person Shooter or a Massively Multiplayer Online game that includes:
Latency Tolerance which can very based of distance between networks, which would increase input delay when translating that to the game world, to combat against high latency techniques like prediction and reconciliation would be used to mask the high latency.
Player Per Session player connections on a single server can vary with how good the client servers are and as well as personal home pcs as they are simulating players and their movement, The more players you have in the game the more you have to account for network activity, commonly the more players on screen the more you have to lower detail to account for all the simulations running which would increase FPS for players and lower the server load.
Synchronized Simulation Scale, this is a factor to take into account as this could help with the players FPS and the server load, this allows for the player to only need to simulate and environment or players in a certain location where the player resides, you could also partition the world so that when the player moves to a different location it is no longer receiving data from that location and has now moved onto simulating a different part of the world.
Precision, the precision needs of your game affect every system relation to the calculation of the world sims and its actors. To have a more precise result requires greater resources to handle all the operations and higher memory, these effects the speed in which the server runs, not everything needs precision as somethings won’t be as essential to the game which you could use approximation to save on performance.
Cost Is a big factor as this could determine the quality of the game and stability as the more you put into the game the more resources are available to you to Host servers of higher quality or enough time to develop a quality game of a high fidelity and gameplay systems, solo and indie developers often move towards server-less solutions as this lowers the cost of creating the game which sometimes leads to issues with cheating arising in those games.
Developer complexity, making a multiplayer game is complex with different network models, total players, range of latency and a good, synchronized simulation scale. This could lead to longer development times, harder and slower patches to fix the game pre or post launch.
Sources:
https://unity.com/how-to/multiplayer-game-development-factors
I started with creating a trello with what i thought i would need for the project, it is small because i am focusing mainly on the multiplayer testing.
I first started with creating the project and adding a blank level to demonstrate how multiplier works in unreal engine 5.
I then added basic movement blueprints so a character can move around and demonstrate movement,
here is a updated Trello.
i then created a jump blueprint as that is what i normally do when creating a new project.
I started by clicking on the 3 buttons near where you simulate the project and then you change the number of players to 2 or whatever i wanted, i could of had 10 or 20 players if i wanted to.
This then allowed me to simulate multiplayer.
Here is a video demonstrating movement.
I then once i loaded the project i made a widget blueprint which will be the base of the joining session and hosting a local sever so that 2 different clients can join the game.
I created a IP adress bar which the player can type into, which will come in handy at the end of the project as the player needs to type in the local IP adress IPV4, I also created a Host and Connect button for whoever wants to host the server and join a server.
I then in the event graph for the widget needed to create the blueprints so i could get all the buttons to work, to allow the player to host and create a level for the other one to join.
This worked by just allowing the player to create a game with the IP address given
I then had to load the level blueprint and add the widget to the players viewport.
Overall having multiplayer in unreal is easy to do as its just checking boxes but I can see how complicated I could become to have 2 or more players interact with each other, which would be my next goal within future projects. I found having testing more with the project that some interactions are different on one screen vs the other and this is where I find it becoming complicated.
Comments
Post a Comment