• Nah, unity is/was a good engine. The reason why it has a bad reputation is for the same reason that Game maker used to have a bad reputation. Almost everyone who’s learning how to make games uses Unity because it’s easy to use, is extremely well documented, and has a massive store full of add-on scripts, programs, model sets, etc. As such, all the poorly optimized games and 0-effort asset flips end up being made in unity (though I’ve seen some unreal games that make even the most poorly optimized Unity game look good). The result? Even though there are a number of high-quality, highly-regarded games that use unity, it has a reputation for being a shitty engine.

      Don’t believe me? Keep an eye on Godot or Unreal. If unity sticks to their new license, then it’s highly likely that one of those engines will become the new “newbie engine” and gain a reputation for being shitty.

      •  Mikina   ( @Mikina@programming.dev ) 
        link
        fedilink
        English
        6
        edit-2
        9 months ago

        I disagree. I’ve been/am working on several pretty large projects in Unity (some of them sold hundreds of thousands copies), and especially once you start porting to consoles, the experience goes to shit. Their support is vague, documentation is plainly wrong in some places - I’ve once spent few days figuring out how to use a documented and explained feature, only to find out later that there’s a closed few years old bug on their issue tracker that it’s actually not supported, and the documentation only does not explains it very well. (The feature was multiple hits per single Raycast in jobs, here are the docs. According to the bug resolution, only one hit per ray is supported, and the docs only don’t explain it very well. The docs are still the same.)

        You also inevitably run into issues that you simply don’t have in other engines - it’s closed source. You have no idea how is something implemented, or whether something isn’t working because you are doing it wrong, or if it’s Unity bug/fault. In Unreal, if something doesn’t work, you can always just check the engine code, and either fix it yourself, or better understand why it’s not working. If you need to slightly modify some engine behavior, you’re out of luck with Unity - you have to resort to ugly hacks that sometimes work, but usually at a cost. In Unreal, you just modify the engine code and be done with it.

        Trusting Unity with any feature is also a gamble. Have you started developing a multiplayer game on Unet? Tough, we don’t want to support that anymore. But, we will create a better multiplayer system, just wait for it! Then they removed Unet, and the new networking relacement is widely regarded as pretty much unusable - or at lest it was last time I checked. Thankfully, there are a few amazing open source networking addons.

        In general, while Unity is an ok-ish game engine for smaller hobby projects (but for that, Godot is better), it’s really an awful and frustrating experience once your project size grows and you need to build bigger games, or if you start porting your games to consoles.

        And it’s also really apparent from the way they communicate and threat you company that they don’t give a fuck and only want your money.