Live data from Hacker News

Godot 4 Beta 1

godotengine.org

41–50 of 119 posts

Re: Godot 4 Beta 1

#41
post #38

Early pandemic I was playing around with making a network shooter in godot but I got hung up on a good way to make a shared lib for the client/server "projects". Anyone solve that or have tips? It seemed like I either needed to make a mono repo and toggle the build for client=true but I really wanted to make 3 repos, client, server, and game-core-lib. Would love tips/guides if you have them!

In my experience, you’re better off having a single codebase with client/server/shared code and using either the equivalent of ifdefs or conditional blocks gating execution for these states. Unreal uses a different architecture where the codebase allows you to define who owns what, but it’s ultimately the exact same thing, and more confusingly done. Further, they have some actor states which are never actually used.…

Thanks! I think it makes sense, as a non-game programmer it felt "weird" so appreciate the confirmation from your angle.

Re: Godot 4 Beta 1

#42
post #7

Earlier quoted context omitted.

A few years ago, as someone who has worked on physics engines for robotics simulations, I would have agreed with you. But now a lot of people are doing greenfield physics engines for games and having it work out pretty well. There's a ton of established academic and conference literature in the area now and it's not nearly as scary as it used to be. For example, Horizon: Forbidden West uses a custom physics engine th…

How complicated were the physics engines you worked on? How exactly did they differ from turnkey solutions like Bullet, Havok, etc.?

Lots of simulators for robotics use ODE or Bullet, actually, and they're quite good for lots of things that you might want to simulate. But there are some people who would argue that they aren't the best for it, especially for simulating legged locomotion, because of the way physical constraints such as joint limits are enforced (via Lagrange multipliers). A popular alternative formulation is Featherstone's Method[1], which is becoming more widely available and goes by other names sometimes; for example, Rust's `rapier` physics engine refers to this type of dynamics model as "reduced coordinates" (they don't yet support it, but it's on their roadmap). Featherstone's method is becoming more popular but it's still not widely used in a lot of physics engines because most physics engines are targeting games and Featherstone's doesn't always have the best performance characteristics, instead favoring physical fidelity. Bullet can run using Featherstone's Method, by the way. One of the few FOSS engines I know of that supports it out of the box.

Additionally, there are people in robotics who like to say that simulators are like lightsabers, you haven't become a true Jedi until you've built your own, so there's a lot of home grown physics simulators in robotics.

[1]: https://en.wikipedia.org/wiki/Featherstone%27s_algorithm

Re: Godot 4 Beta 1

#44
post #3

HN hug of death? godotengine.org is offline for me at the moment. Regardless, really looking forward to trying it out! Here it is on the wayback machine: https://web.archive.org/web/20220915181526/https://godotengi...

In the discord they said it's pretty typical for the website to go down a bit when they @everyone like they did for this post

Re: Godot 4 Beta 1

#45
post #4

Fantastic news. I'm really looking forward to Godot 4.0 exposing more of the ENet wrapper into GDScript etc. I've been writing a game server in Erlang and very much looking forward to offering ENet as an option in addition to WebSockets!

Whoa, that's interesting -- does ENet have a good integration with Erlang, or something like that? I'm interested in both Elixir/Erlang and Godot, but haven't seen an opportunity to use them together previously. I'd love to hear more details about this project of yours, and how the Godot 4.0 release impacts it.

Re: Godot 4 Beta 1

#46
post #3

HN hug of death? godotengine.org is offline for me at the moment. Regardless, really looking forward to trying it out! Here it is on the wayback machine: https://web.archive.org/web/20220915181526/https://godotengi...

What, the whole five of us? Impossible.

Re: Godot 4 Beta 1

#47

I played with Godot back in the early 3.x timeframe (3.1? 3.2?) and then fell away and spent some time with Unity. But between some of Unity's missteps and Godot getting dotnet 6 support it is time to give it another go, plus a bunch of nice changes to gdscript that might make it something I'm okay with using (functions are first class citizens now unlike before where you just passed the name of the function as a str…

Yeah callables are a great addition to 4!

Re: Godot 4 Beta 1

#49
post #23

from the article, >>As much as we love exciting new features, we also want to see people create games on the full spectrum of devices for everyone to enjoy. This is one of the main attitudes of the Godot team I really appreciate a lot. It might be easy for people in more developed nations to upgrade their hardware every few years, but there's people still playing games running on computers from 2002 and before. I use…

Optimization levels of many newer games are terrible. Low-poly, visually simplistic games like Fortnite, Risk of Rain 2, Valheim, and Deep Rock Galactic barely run on a friend's computer (that was made only 5 years ago). Visually more complex games like League of Legends run buttery smooth on the exact same hardware. (ironically, he says that Valorant, made by a non-Epic company, apparently runs significantly better…

Valorant has a solid engineering team and invest heavily in optimization, can't speak for the others. I could be misremembering but there was an interesting bug that was featured in an Unreal profiling case study where a Fortnite font was eating ~2ms (or similarly obscene) CPU budget.

Re: Godot 4 Beta 1

#50
post #38

Early pandemic I was playing around with making a network shooter in godot but I got hung up on a good way to make a shared lib for the client/server "projects". Anyone solve that or have tips? It seemed like I either needed to make a mono repo and toggle the build for client=true but I really wanted to make 3 repos, client, server, and game-core-lib. Would love tips/guides if you have them!

In my experience, you’re better off having a single codebase with client/server/shared code and using either the equivalent of ifdefs or conditional blocks gating execution for these states. Unreal uses a different architecture where the codebase allows you to define who owns what, but it’s ultimately the exact same thing, and more confusingly done. Further, they have some actor states which are never actually used.…

Yeah you can easily compartmentalize client/server with ifdefs but it's pretty hideous. Do serious shops on MP titles stick with UnrealNet? I find it performs poorly even with some of the bandaids like Replication Graph.
Post reply on HN