I'm planning on making a player hosted server game like Minecraft. How does Godot compare to Unreal or Unity as far as Networking goes? Game development center (https://www.youtube.com/channel/UClseGZiVmeHamsjYmpbiAmQ) has a great tutorial on multiplayer. Is their solution complete?

I'd love to use Godot, but I'm scared that I'm going to start building then realize that the networking just doesn't work well, and the only way to fix it is to make lower level changes in the library and that will be really hard because there are not many tutorials or docs. And if I just went with Unreal networking would work perfectly out of the box. Could Godot networking APIs build something that works as well or better than Minecraft or terraria with just high level APIs?

So I've only done some initial investigating into Godot's networking and I can tell you it does 'work' but you're absolutely right to question how useful it will be since for me it's a relatively unknown engine compared to unity or unreal. One thing I have noticed already though is it is much easier to find information on it and get the initial setup done, I haven't though tested out properly whether or not how the networking handles things like hosting which I would like to try but maybe more experienced people who have experimented with Godot could comment on that.

If you do go with Godot, you're probably going to have to learn all about server hosting and so on yourself because of how Godot does not have any kind of third party services for multiplayer the way unity and unreal does so that's something you need to take into account. On the flip side though from what I've seen so far if you don't mind giving out external I.P addresses for people to connect to your game you can pretty much get everything set up yourself and working.

https://godotforums.org/discussion/comment/47916#Comment_47916

See this thread I made on the topic asking about this very thing, the people responding gave some pretty helpful information on it. By all means someone correct me if I'm wrong but in theory I think with the way Godot is setup by default you could probably host a game on your own server, give out the external I.P address of that machine and people will be able to connect if they have the same client and the game is running. It seems to run very much in the old school way like with Minecraft for example where you just directly connect to an I.P address rather than going through a server browser.

Bearing in mind I'm brand new to this too and still doing my own research and experimenting, I plan on getting an ultra simple 'game' set up where you can just move people about and shoot in 2D and see if I can get people to connect to an I.P address based on that. I think that's potentially where someone serious about using Godot for multiplayer should get started, just seeing if people can connect to your game from other devices.

Another example would be the way the old school Freelancer space sim game is setup now, to get around the issue of there being no multiplayer anymore players simply setup their own 'global server list' and so on which you could connect to using the I.P address provided, that would then let people make games on that server and then the list of games would pop up like the game had never died.

Is there a particular reason you don't use Godot with multiplayer 3D?

@Lethn said: If you do go with Godot, you're probably going to have to learn all about server hosting and so on yourself because of how Godot does not have any kind of third party services for multiplayer the way unity and unreal does so that's something you need to take into account. On the flip side though from what I've seen so far if you don't mind giving out external I.P addresses for people to connect to your game you can pretty much get everything set up yourself and working.

While I haven't tested it myself, it is probably worth pointing out that nakama does support godot via a build for it.

https://github.com/heroiclabs/nakama-godot

If it's 2D > you probably want to use Godot If it's 3D > you definitely don't want to use Godot.

@Sir_Connery I'll deff try to test out multiplayer first, but should I use Godot if I'm planning on 2.5D? In other words, I want a 3D engine with 2D assets and only limited camera rotation. In other, other words, why don't I want to use Godot for 3D? Thanks

Godot works fine for both 2D and 3D. It's 3D renderer is simply a generation or two behind tech wise, but that is likely not a real issue for most indie developers. Your 2.5D example included.

@itgiawa You're saying 2D assets with limited camera movement? I'm not sure I understand. When people say 2.5D they usually mean like a sidescroller in a 3D engine. With mostly 3D assets.

If you intend to make all assets in 2D then why not just make the game 2D? You're putting a lot of extra work on yourself if you choose to go with actual 3D engine and 2D layers instead of pure 2D.

@itgiawa said: In other, other words, why don't I want to use Godot for 3D? Like Megalomaniak said the rendering of lights etc. in 3D, Godot is at least a few generations behind Unity, and even more so other engines like Cryengine or Unreal. I don't recommend Cryengine or Unreal for solo projects though.

If you're aiming for a commercial level project then why would you use Godot for 3D? Just go with Unity if you're a solo developer. Lighting in 3D games makes a big a difference and the other engines are better at that. To top that you have much more tutorials for Unity. Especially in 3D.

I'm gonna add here that I'm quite new to programming and game dev stuff in general. Better contrast these opinions with someone with more experience too.

For that kind of 3D game I think Godot is quite a perfect fit. Godot Discord channel is your friend if you need to get questions answered btw, this forum is pretty quiet.

2 years later