Should I REALLY use Godot 4 to create a small, multiplayer, third-person, arena shooter in 3D? (Serious Question)

Background

So, I’ve been developing my project for a few months, it’s a third-person arena shooter about inventing your own weapons.

I’m not a new developer or new to the Godot Engine (You’ve probably seen me on this forum), but I’m also not a professional and I intend to work independently on my own whims.

However, about 30 minutes ago as of posting this topic, I was in a VC in the Godot Café discord to network and improve my socialization skills.

When I told them about my project and the vertical slice I was making, I was politely; but sternly; warned to NOT use Godot for a serious 3D project and especially NOT multiplayer. This warning was from developers with much more experience than me, so I have to consider it.

I’ve done research about Godot 4.x’s limitation before even jumping into this project, so this didn’t shock me. And I choose Godot intentionally for a variety of reasons listed below this. However, this warning has put a dent in my psyche, so I need to address it immediately.


Even More Background

So, a little background on myself. (This is relevant, I swear)

I really enjoy using the Godot Engine. I came from Unreal 4/5 and I have about 1 1/2 years of experience building features, failing, debugging, redesigning, and showing shoddy prototypes to my old friends.

I never made a finished project, but that was ok. I had so much fun failing that I really didn’t care. I enjoy the journey over any destination.

I then tried out Unity. Say what you will about it, but for me, the Unity workflow wasn’t my cup of tea. (My opinion is not swayed by misc controversies, I just don’t enjoy using it)

Then, I tried Godot. Man- I loved everything about it.

  • The workflow (nodes and scenes) is pristine and easy to follow.
  • The programming language (GDscript) has easy to read syntax with great documentation (I know other languages and programming fundamentals to design systems and solve problems).
  • It’s lightweight as heck. So, it’s smooth to work with. (Cough Cough Unreal Cough)
  • It’s open source and I can open the source to my Godot project easily (in comparison to Unreal and Unity).
  • The community. I really enjoy the tight-knit nature of this place. I’ve always worked better in smaller, but deeper, environments.

I really didn’t mind less power or the comparatively underdeveloped feature base. For actual daily work where I actually design systems, implement features, and fix problems; it’s my go-to engine.

And as for my true personal goals as a game developer…

  • I have no desire to make money. Money is very obviously important, I’ll never say otherwise, but I see it as a means to an end; and not an end in of itself. I hope you don’t see me as naive for having such an perspective.
  • I do not strive to be the biggest fish in the sea. Meaning, I don’t have to be the next Fortnite to be happy. In fact, I’m very satisfied with a small, but dedicated community of peers, friends, and players. This isn’t theoretical either, I’ve lived through it. (It’s a long story)
  • I do not have to have the most advanced graphics or the most bloated feature set. I prefer depth over breadth, and only really care about seeing my vision in action to gain real feedback from real players that really playing it.
  • I do not care to develop multiple/other projects. I prefer to be laser focused on one thing and committing to it. I have a set vision in mind and I’m going to go through every trail and tribulation to make it happen; this is the life I want to live. I actually enjoy failing! (By the way, I learn by doing the thing I want to do. Not beating around the bush with separate projects that’ll go nowhere)
  • I intend to stay independent and be my own leader. Working under someone else is already draining for me. But for game development in general, I do things my own way. I need to flexibility to do what I need to do and change what I need to change. Even if I had qualifications for a professional job, my chance of getting hired are low and chances of staying are zero.
  • I don’t even need a complete game! Sounds crazy, but I prefer updating an imperfect project than perfect a finished product. “You can’t edit a blank page”. (This my live-service game preference talking)

So, my actual goal and reason for pursuing this project is to create a fun game I enjoy, share it with a community other people, and continually refine and add new things based on feedback. I’m more after a lifestyle than a finished product.


The Actual Question

Is it feasible to create a 3D, third-person, PvP multiplayer, real-time, arena shooter with Godot 4? (I’m using 4.3, but will upgrade to 4.4 when it’s fully released)

I’m almost finished with my vertical slice’s netcode. So, the project is still small and manageable. However, I don’t really want to switch engines for the reasons above. I’m willing to brave uncharged waters to make my game real. Not some fantasy I have in my head.

I really want to keep using Godot and stay in this community. And hey, I can improve my programming skills even further and update the engine (easier said than done). That’s not really possible with Unreal or Unity.

I want a second, third, or fortieth opinion on this.

3 Likes

I think you’ve answered your own question. You want to do it in Godot because it’ll be fun and you want to have fun with this. Do it in Godot.

If you run into performance issues, you can address those by switching to the .NET version of the editor at any time and replacing GDScript with C#, which according to other people on here performs 3-10 times faster in math-heavy areas.

Also, you said you’re not a new developer. Problems may come up. You can solve them. I remember back in 1999, people were shitting all over the Unreal Engine because they were using OpenGL instead of Direct-X. There were tons of discussions about how it would never be as good. There were problems. People solved them because they believed in OpenGL or Unreal.

Do what you want. You’ll have a lot more fun. And . . . you’re more likely to finish.

7 Likes

Ha, I was going to say the same thing. They have thought about it, said they can take risks, so why not Godot, the future is unwritten for the framework, it can only get better.

OP Sounds like you have a good head for thinking and problem solving, you might end up being a really important part of the community in the future with that attitude.

Fun is the flow and that is creativity, if Godot makes you smile because others didn’t, sure sign you resonate with the architecture/etc.

4 Likes

Can it be done? Yeah, probably.

My own experience with 3D Godot is it usually works fine, but occasionally you run into a bug or other limitation that really ruins your day and makes you lose your faith in Godot. I’m therefore scared of using it on big projects. But your project doesn’t sound big to me. Competitive multiplayer games don’t need a ton of content or complex systems in order to be fun. You can probably find a tutorial online that takes you 50% of the way there.

1 Like

@rainerdeyke

Technically yes, but I you have to design and implement my own systems to support this specific game. The nitty gritty if you will. I enjoy it better that way.

Plus, the netcode is most likely the hardest thing programming wise. My project is really design heavy. Plus plus, I’m almost done with the core foundations of it.

1 Like

Thanks for these replies everyone.

While I might (will) encounter problems, I can work around them and/or implement my own solutions.

Hey, I might even be a trailblazer for 3D and multiplayer Godot games. That’s fun to think about.

4 Likes

Analysis paralysis. Just do it. In Godot.

2 Likes

Given that you seem to not be dissuaded by the kinds of issues people have in mind when they say to not use Godot for 3D and multiplayer, there is no reason for you to avoid Godot for your project.

All of my games are in Godot. While making money is one of my primary objectives, it is not the engine that is holding me back. Consequently, I can say with confidence that Godot will not be what holds you back. Time and skills have a much larger impact. As the saying goes, it’s a poor craftsman who blames his tools. Godot has enough tooling to make a huge variety of games, so go for it.

3 Likes

Curious, what are the “kinds of issues people have in mind”, specifically 4.4 and onward.

Asking because I am not that involved in reading things like that.

1 Like

They typically claim that Godot is too slow for multiplayer 3D, which is not true.

2 Likes

It all depends on your motivations. The big commercial engines come with so many prefab components and “time saving” features that, for many genres of game, the game is already built and you are just applying a distinct art style (and optionally, writing) to it. This is good if you are a studio trying to limit resources spent on redundant labor, but it is also a consequence of the fact that many titles being produced by the industry are extremely formulaic and derivative at this point. The thousandth first person shooter created in the mold of Halo or Call of Duty is never going to be as impressive as the original, even if they innovate around the margins.

If you are motivated by trying to do something unique, or by learning the process, or by playing with the nuts and bolts, then the limitations of the engine shouldn’t stop you. The fact that the road in front of you has not already been paved in asphalt is a sign that you are working something new and innovative (whether or not an end user would notice or care).

For instance, I am trying to build a planet-scale spherical LOD terrain system. Maybe Godot isn’t the best choice for this. There certainly isn’t an out-of-the-box solution (though Terrain3D is very cool), and to build my own, Godot doesn’t even support geometry / tessellation shaders, which means I will need to deviate from a lot of the modern academic literature on the subject (or find a way to make Godot do geometry shaders).

Maybe this isn’t the most productive path, but I feel inspired by the fact I am doing something which has never been done before (at least, in Godot). Instead of skinning some prefab game template, my project has become a rich multidisciplinary endeavor. I’m checking out calculus textbooks from the library, downloading GIS data from NASA, building various processing pipelines for scientific data, learning advanced geometric algorithms. Progress is slow, but because there is so much to do, I can always put something on the back-burner when I get stuck and jump to something else. I am having a good time, challenging myself, and if the game is ever playable, that will be the icing on top.

Finally, while I did kind of dis the shooter genre for being derivative, I really have a sweet spot for the classic arena shooters. I spent countless hours playing Doom 2 multiplayer. Loved the lightning-fast pace of it. I enjoyed Quake 3 a lot too, for the same reasons.

3 Likes

Probably coming from inexperience. I wouldn’t say Godot is easy though. But im doing something on the same lines as you.

Im not an expert on 3D, but there are plenty of examples out there were Godot has proven itself.

The multiplayer aspect on the other hand is probably a skill issue. As you know, Godot, out of the box, does the bare minimum for network quality.

2 Likes

Won’t read that, but as always, the answer for this question is:

  • Depends.

Don’t overthink and just do whatever you want to do. Godot is just a tool. It’s like if a carpenter overthinks which hammer to use.

1 Like

I am a hobbyist programmer and a Godot newbie So I really can not give you much help with the coding or developement. But I would like to keep track of your project My vision is to one day create a multiplayer aerial combat flight simulator

1 Like

Multiplayer is hard, and competitive multiplayer is harder. If this is your first multiplayer game, then I would suggest a rep without the competitive aspect. I would suggest this prior to any engine-specific considerations.

This is exactly the kind of motivation that people who build frameworks have. That would be a great contribution. I always like using a battle-tested framework because they’ve done a lot of hard work for me so I can concentrate on the important stuff such as silly features that I trash a couple weeks later :slight_smile:

1 Like

There is so much truth to this it’s not funny. :rofl:

2 Likes

Hey, to add a bit of closure to this thread (and for posterity), I wanted to point out that I’m actually making that multiplayer shooter.

It’s called Monkanics. (Monkey + Mechanics)

It’s about being a cyborg lab monkey escapee that blur the line between smart and stupid while building weapons of mass misconstruction.

In the game, the main goal is to collect more Bean-anas (intentional name) than the other team.

The pillars of Monkanics’ game design are crafting, collecting, moving, and fighting:

  • Crafting/Repairing weapons and/or utility items known as inventions.
  • Collecting important resources like scrap, objective items, upgrades, and power-ups around the map to boost chances of survival and victory.
  • Moving around via a freeform climbing/movement system. Allowing seamless vertical and horizontal map traversal and interaction with diverse arenas.
  • Fighting enemies with all of the above to collect more Bean-anas.

At the time of this reply, I’ve just made devlog #2. In it, I discuss what I got done in my first 2 week period, Monkanics’ core gameplay, and a solid development roadmap for future devlogs.

Here’s the forum thread for the devlogs:

Here’s the link to the YouTube channel where I post my devlogs as well:
https://www.youtube.com/@DIX_ON_DEV

1 Like

Yes, you should use Godot IMHO.

On another note, I guess it is just a working name: Monkanics, but I don’t think that is too easy to remember to be honest. I have some alternate suggestions for you.

  • MechaMonkeys
  • Monkey Mechanics: Arena Wars
  • Monkey Gear: Battlezone
  • Monkey Mayhem
  • Monkey Mech Masters
  • Simian Squad

Or my favourite:
Banana Bandits: Arena Wars

Then in the future you might have:

  • Banana Bandits: Survival
  • Banana Bandits: Urban Rampage
  • Banana Bandits: Jungle Quest
  • Banana Bandits: Tower Defense
  • Banana Bandits: Island Escape
  • Banana Bandits: Space Odyssey

Arena Wars could be free. Then the other variations are paid for. Just an idea.

Just got AI to do an image of Banana Bandits.

No thanks. AI really can’t convey the vision I have in mind. (Plus those AI generated names, and especially the “art”, are so generic, it hurts)

I’m going to hand craft the art direction and character designs myself and/or with the help of another artist.

Also, Monkanics is very likely the final name.

1 Like

I’m currently creating said prototype as we speak.

I’ve got networked movement with server-side reconciliation and client-prediction implemented and working at 200 ping/2% packet loss (The max before the game becomes unplayable).

I use RPCs and a simple-enough chain of 3 scrips to get a server authoritative experience.

It’s not perfect, but it’ll do for now. I’ll have to get it ironed out when the prototypes done and people are using it in practice.