← Back to context

Comment by Madmallard

8 hours ago

Has he dealt with some of the more challenging problems in game dev that engines help a lot with? Like... multiplayer netcode.

Seems like if you're doing this for a hobby or solo/small team then maybe it's reasonable.

For most people where they want to be a game dev but they probably will just work in industry, it seems like learning the major engines to competency cannot be ignored.

You should use tools that are appropriate to what you intend to achieve. If you want to make a 3D game then Unreal, Unity, or Godot are appropriate choices. If you want to make a 2D game then something like MonoGame might make more sense than Unreal. You don't need highly refined netcode if your game never needs to exchange data in realtime.

Heck, I've seen someone build a visual novel-type game with WinForms. That was actually a sensible choice for the game's presentation and interaction needs.

Of course if you want to become a game dev at a studio then you should be competent with whatever the studio uses (or something comparable so you can pivot to their stack). If you only want to make your hobby project and maybe publish it later it doesn't matter if your engine is Unreal, MonoGame, RPG Maker 2000, or vanilla JS/DOM.

> that engines help a lot with? Like... multiplayer netcode.

Rust (the top 10 most downloaded game ever on Steam) is built with Unity. However they ended up to write their own netcode anyway. Of course Unity isn't known for the best netcode, but how much an engine helps is often overstated. Genshin even bought Unity's source code to customize it.

  • Unity used to have a pretty good netcode implementation, but then they ripped it out in newer versions and still don't really have a good replacement for it

    • Interesting. I'm new to this and trying to get a grasp of the situation but there's a ton of noise.

      What's wrong with Netcode for GameObjects, and what are the odds I'll regret going with it?

      1 reply →

    • Unity used to have _____ but now they don't.

      This is the mantra of the past decade of game dev.

Well yeah, he's working with a pretty small team, and quite successfully: https://en.wikipedia.org/wiki/Celeste_(video_game)

I would say that one of the "Miscellaneous Thoughts" at the end of your article answers your question pretty well:

> I need only the best fancy tech to pull off my game idea

Then use Unreal! There's nothing wrong with that, but my projects don't require those kinds of features (and I would argue most of the things I do need can usually be learned fairly quickly).

multiplayer netcode isnt overly difficult to write unless you're at the highest lvl of complexity lol. it's not a black box, it's just transferring bytes around efficiently and keeping track of state, your "netcode" can literally just be bare tcp (+ssl), validation, and state, it's not that deep.

  • handling latency to keep a coherent experience in a real-time game is an unsolvable problem where every single mechanic requires a planned out scheme and companies go so far as buying data centers in optimized locations to help out with the illusion

    that's probably what you mean by highest level of complexity

    but even just a regular turn-based game there's a lot of questions you need to answer and decisions to make regarding latency, packet loss, and disconnects that all have to be solved in a coherent and consistent way