entwine

joined 1 day ago
[–] entwine@programming.dev 2 points 10 hours ago

being inserted automatically.

Aka the entire point of RAII

[–] entwine@programming.dev 2 points 10 hours ago (1 children)

This non-sarcastically. The operating system is better at cleaning up memory than you, and it's completely pointless to free all your allocations if you're about to exit the program. For certain workloads, it can lead to cleaner, less buggy code to not free anything.

It's important to know the difference between a "memory leak" and unfreed memory. A leak refers to memory that cannot be freed because you lost track of the address to it. Leaks are only really a problem if the amount of leaked memory is unbounded or huge. Every scenario is different.

Of course, that's not an excuse to be sloppy with memory management. You should only ever fail to free memory intentionally.

[–] entwine@programming.dev 1 points 10 hours ago

Software. It's a phone that can't make phone calls, with a camera that can't take pictures. It doesn't matter if some coding genius manages to port Crysis to it, if the phone can't phone, it's DOA.

[–] entwine@programming.dev 2 points 11 hours ago (1 children)

I haven't used it that much (never even done a jam with it). The weird licensing of the editor rubs me the wrong way, and IIRC it even has some telemetry enabled by default. That's kind of a red flag when you consider the engine came from King, a mobile game developer. I don't think I want to trust them, but other people might not care.

But I do like the design of the engine. Message passing is actually a great pattern in general, and it's used by other engines like O3DE to great effect. It does take some getting used to though, and I personally never was a fan of Lua. If you've ever done any Objective C or Swift, it'll be familiar. It provides a way to build decoupled systems effortlessly, and long-term keeps your codebase flexible and maintainable, which is exactly what you want for a game that needs to constantly evolve its design throughout development.

[–] entwine@programming.dev 2 points 11 hours ago

based on my anecdotal experience your comment sounds rather biased.

That's called an opinion. Usually, you can identify those when someone writes something like "I don't like it"

Godot's easy to use, that's its strength. Past that, it is riddled with issues. A lot of APIs are either poorly designed, half-implemented, or outright broken. The engine has terrible extensibility support due to a shitty build system, which is why you need to download a separate build of the engine if you want C# support. Third party native plugins like Spine also require a custom build of the engine to deal with this (want to use multiple third party "plugins"? Start learning C++ and scons so you can glue them together yourself). The internal organization of the code is sloppy, and while understandable due to it initially being a one-man project, the situation has not improved despite the massive increase in volunteers and money it has had over the years. There's a lot of bike shedding that goes on, and leadership doesn't seem to have a clear vision of where to take the engine.

GDScript sucks. The events system sucks. The hierarchical entity design sucks (although the nestable scenes helps smooth that over). Godot physics sucks. Jolt physics is better, but the integration sucks (Try making joints. The only reliable one is the 6DOF joint, but that requires you to fiddle with dozens of parameters to try and achieve what you want). A lot of the rendering features suck and/or are broken, even basic things like static lighting and shadowmaps fall apart with basic geometry. Everything is buggy as hell, and that's something you just need to accept if you're going to make games with it.

I don't hate Godot, and I do use it because of its main strength: ease of use. It's my go-to for game jams and prototyping, and I have used it a lot. But if I'm going to invest serious time/effort into a project, I'm not going to disadvantage myself right out the gate by choosing Godot.

[–] entwine@programming.dev 1 points 12 hours ago

Best way is to use open source software yourself, and then when you encounter a bug, fix it. Looking for open source alternatives to stuff you currently use is easy.

[–] entwine@programming.dev 2 points 13 hours ago (5 children)
  • HaxeFlixel is a popular choice for 2D stuff. You can use it with Tiled or LDTK for level editing. This sounds more like what you're looking for

  • Defold might interest you as it has a full editor built in, though I've barely used it so don't ask if it's good

  • Gamemaker is a classic, but idk what pricing is like nowadays

  • Godot will work, but I don't like it. Once you get past the highly polished editor, everything else kinda sucks