I'm building a game that is very similar to minecraft. I'm trying to figure out a good general architecture for the game. Something like ECS in Unity. I'm not sure that Godot's OOP style is too slow, but I have a feeling it is. I have access to the de obfuscated Minecraft source code which I havent studied too much yet, but I assume its not well programed and probably doesnt use ECS, and therefore I cant' learn too much from it. Does anyone have any ideal practices for such a minecraft-like game? Perhaps with examples? Or know of a similar opensouce project that is more modern? I'm already using the Voxel Tools engine in godot, but I'm interested in how to build the networking part and the entities, AI and general game mechanics. I'm aware of an ECS add on to Godot and also aware of Entt which is a c++ ECS library. But I'm just interested in overall design right now and figuring out what the best design is for a minecraft-like game. Thanks!

Since you mention best practices, I'd advise taking a nice long read here: https://gameprogrammingpatterns.com/ After that my only 2cents is: try to make it so only edited terrain is saved. Let all the rest be determined by your noise function on each visit. And yes, I'd also be hesitant about Godot's OOP style's speed, but remember MC was originally in java so... if there's a will there's a way.

@Erich_L Thanks, I'll give that a read for sure. And incase anyone else has a similar question to me I found this: https://www.youtube.com/playlist?list=PL_xRyXins848jkwC9Coy7B4N5XTOnQZzz This guys has two free online courses one on AI in games and the one I linked to that builds an ECS system for enemies/players/projectiles in C++ and uses OOP for simple high level scenes like menus. So it seems literally perfect for Godot since we use OOP at the script level and can go lower level by writing our own c++ modules for more performance critical stuff.
If anyone else has any good big-picture articles or courses please share.

@itgiawa said: and also aware of Entt which is a c++ ECS library.

This doesn't help with Godot, but EnTT is a great library, I'm moving my C++ game stuff over to it. EnTT was actually used in the non java version of Minecraft.

That might work. I've been digging through Godot source code (mainly physics code), but I have zero experience at actually adding stuff to the engine. I just know I like EnTT in my own C++ projects. :)

10 months later