How to make multiplayer game

How do you make a multiplayer game? Are there any APIs I can use? I'm thinking of a multiplayer trap-em-up, would I need to do anything special for this type of gameplay?
Lots of APIs you can use.

Have you made a single player game yet? To make a multiplayer game, you need all those skills and more.
closed account (DEhqDjzh)
Do you know OpenGL, DirectX or Vulkan? Do you have any experience with creating games?
Learning low-level graphics is not the same thing as making a multiplayer game. You can make a multiplayer game without ever touching a graphics API.

Salsa Boy, if you want a library that's at least somewhat beginner friendly, try looking into SFML. It can do graphics, networking, and more. But I strongly agree with Repeater; you should practice making a single-player game before you try to make a multiplayer one. But it's up to you.
Last edited on
typically you offload as much as you can locally, and keep the communications as simple and small as possible.
lets say you have 2 people shooting at each other. All you have to send to each machine is the current location of each player and their current health. The engine locally draws them and all that from the transmitted info; you don't transmit the actual graphics data. These days you often have to transmit a reduced form of the graphics data though -- such as each players settings for how their character is drawn (what outfit it is wearing, what weapon is in its hand, what face and hair style it is using, etc). So you get a lot of bloat but you can keep that pretty tight in the transmission, its still nothing like graphics data. Then the local machine re-creates the graphics from the provided settings, see?

Its exactly like a single player game except you have communications set up to send and receive data to coordinate. Some games have a central server and the data goes player 1 to server to player 2, and some have peer to peer where it goes direct between the 2; it depends on the game design. If the players are working together against an AI opponent, you use central server (this manages the AI and environment) while player vs player is often peer to peer, but that is a generalization. You can do it either way... warframe is peer to peer, even for AI enemy, it chooses one player's pc as the server (by connection performance)... as one random example.
You must handle connection problems and add artificial delays in the game to smooth out the networking. There are a bunch of things you need to do for quality of life once you get it working because a lot of people have very bad internet, many still use wireless to play games and have dropouts or lag spikes, and others have satellite or other poor connections. Its a deep rabbit hole once you get into it, but its also been studied to death and the answers are pretty well known on what you can do. At some point you have to cut the cord on players that can't hold the connection minimum requirements.

Last edited on
Oof, that is a heavy topic. However, I have to ask you a question first: have you made a game before? Because game development is hard and multiplayer game development is doubleplus hard. If you haven't made any games yet, I would back burner this question entirely and come back to it later.

But the gist of multiplayer game development is this: some entities in the game world have a shared state (generally players and other moving objects, static geometry is loaded client-side and never shared). This shared state is where the "multiplayer" comes in. Every so often you serialize (that is turn into data that can be sent over the network) the state of the objects under your control and send them off to the server. The "state" in this case are things like the position and rotation of the objects as well as game logic-related information like health. Also, periodically the server will send you serialized data about the other objects in the scene sent by other players. In this way, the state of objects can be kept in sync across different players over the internet.

But things get hard really fast with multiplayer games. If I explained it well enough it might even sound easy, but it is not. Even when you have everything working for you in a really forgiving environment like in Unity with Photon, you're still going to have a lot of really strange bugs popping up all the time unless you've mastered the black art of getting things to sync correctly and reliably. I can't drill this into the answer hard enough: multiplayer game development is hard and judging from the other posts you've made here you're just not ready for it. Keep it on the back burner though, it's an achievable goal.
or, start simple. like checkers or monopoly or something. :P
I know my mind went to first person shooter / massive activity / real time gaming but turn based board games are also multiplayer and nowhere near the trouble, to get started to learn about it.
Last edited on
Topic archived. No new replies allowed.