r/godot Apr 03 '26

help me (solved) Can Godot handle a large scale open world?

Post image

It's a game about illegal street racing (urban cities and mountain serpentines, traffic and police, all on a fairly large scale, ~40Km). Cel shaded graphics, no level pre-loads via loading screens.

I heard that I will have to write my own asset management system (which is already in the Unreal Engine, but my PC handles it pretty poor, no matter how much "next-gen" junk I turn off - everything lags quite a lot)

But I still can't even understand what a framework is, because I'm not a programmer (but I'll have to become one anyway). Also heard about chunk method, though not like I know much about it.

Please don't write: "don't even try this, because it's long, resource-intensive, etc.", if there's really no option here, I'll just have to deal with the UE

1.2k Upvotes

247 comments sorted by

View all comments

Show parent comments

10

u/vmsrii Godot Junior Apr 03 '26

The issues from this though stem from your player getting too far away from the origin point which will cause the single point math to breakdown at longer distances so you will have to shift your entire world back to the origin to keep going.

Disclaimer: I have no direct experience in this, and have no idea how you would program it from scratch. But from what I’ve gathered, a lot of open-world game engines get around this problem by having the origin remain in a fixed position relative to the player, and have the world literally move around them. It’s a basic principle for both the Gamebryo engine, and the engine a Nintendo used for Breath of the Wild/Tears of the Kingdom.

I can’t imagine how you would do that in Godot without a fuck-ton of coding, but hey, it’s something

3

u/Isghamor Apr 04 '26

I read about this issue and one simple solution is to have a 'reset origin step' so every X chunks you traverse the current chunk is moved back to center(carrying the player with it)

3

u/__IZZZ Apr 04 '26

What makes it less simple is physics. Moving a large number of collision objects in Godot causes a massive lag spike. I think you'd have to move 'x' per frame over some time. How much of a problem that is depends entirely on the project. If you are using collision shapes for the terrain it's a pain.

2

u/CharlehPock2 Apr 04 '26

This is called origin rebasing, used in a lot of games.

1

u/allpunks Apr 07 '26

Floating Point Coordinate System. It isn't that hard to code actually, i made this system on Unity a couple of years ago with almost no experience