I'm building a game like minecraft. I'm wondering if I should design it to work on multiplayer first and then work backwards to build a single player mode? In other words, does it make sense to simulate a server locally for single player mode? Thanks!

If you want it to be multiplayer then you best design for it from the ground up. So yes.

Yes many if not most multiplayer games with a singleplayer mode go this route.

If you are making a multiplayer game only, is it bad to get basic gameplay working before worrying about networking?

@OpinionatedGamer I'm an amateur at this. But I'll give my 5 cents.

I think it's fine if you're actually talking about basics. Like a few hundred lines of code. But when you get into thousands of lines of code I would assume it starts to become really confusing to "backport" the multiplayer into it.

If you have a new or an experimental game concept then it's probably best you first try to build the basic gameplay and see if it can be any fun.

I think video is worth a watch if you're thinking about first building up the basic gameplay. I enjoyed it.

Well, Minecraft uses a built in dedicated server when launching a single player world but I don't think this is good because then it can lag but in MC 1.2 (when the server code wasn't merged to single player) it's fine so maybe don't make a local server.

@OpinionatedGamer said: If you are making a multiplayer game only, is it bad to get basic gameplay working before worrying about networking?

I believe your hijacking this topic but I'll answer this with a simple: Get movement working first.

If you do the networking first, you have to do the movement after then code the movement in the networking so do the movement first then networking after as it might be easier.

@EpicDankDude said:

@OpinionatedGamer said: If you are making a multiplayer game only, is it bad to get basic gameplay working before worrying about networking?

I believe your hijacking this topic but I'll answer this with a simple: Get movement working first.

If you do the networking first, you have to do the movement after then code the movement in the networking so do the movement first then networking after as it might be easier.

If I hijacked the question, I'm sorry, I didn't mean too. =) thanks for the advice

2 months later

I have the same question, I'm a little bit separating the architecture, single player, and multiplayer, Im trying to merge things up

Is your game local or server-based multiplayer?

because if you are interested I am making a plugin for that

@TheDiavolo said: Is your game local or server-based multiplayer?

because if you are interested I am making a plugin for that

What does your plugin do? I'm going to make multiplayer games, so I'm interested in any plugins which make it easier. =)

@OpinionatedGamer said:

@TheDiavolo said: Is your game local or server-based multiplayer?

because if you are interested I am making a plugin for that

What does your plugin do? I'm going to make multiplayer games, so I'm interested in any plugins which make it easier. =)

Curiously, the plugin is called Easy Server, I am still developing it, but surely in this week I will have the first version.

Basically it is to facilitate the creation of dedicated servers.

The first version is focused on adding most of the functions for the LAN, HTTP requests (it is basically like normal requests but you only need to call a function to make the request instead of adding the corresponding node), some nodes for Voice Chat, a basic chat system and the documentation in gitbook

Then it will take out (a few days later) how important the plugin is for the dedicated server project, voice chat, normal chat, making requests to external servers and most of the things to make it as easy as possible to create one

If you want, I can notify you when I get the first version

This is the itch.io page (I have not made the repository public yet) https://thediavolo.itch.io/easy-server-godot

Does anyone have a good introductory resource on whatever this topic could be summarized as? I think of multiplayer as too much work for a one-man project but since all I know about networking is how some different packets are parsed I could be wrong. Is it about as tedious as making custom save/load functions for your games?

If so I’d definitely get it working while you’re designing the single player. As for the games I play, it always seems as though they’re simulating a server while in single player mode. I can’t imagine it having a huge impact on performance. (I literally can’t imagine)

So you're asking if it makes sense to have the networking code running on the single player mode, but doing nothing since no one but the host will be connecting?

@OpinionatedGamer said: So you're asking if it makes sense to have the networking code running on the single player mode, but doing nothing since no one but the host will be connecting?

This is already how Godot's high-level multiplayer API works :)

Check the Multiplayer Bomber demo for an example of this. You can start a game with only one player hosting and no clients.

a year later