hi! sorry, I'm a bit late replying to this as this post got auto-flagged for spam and I didn't see it.
I got the idea for the gravity mechanics a long time ago probably 2017ish. At the time I had zero idea how to actually make games, so it was just idea guy nonsense. It came from wanting a space terraria type game ( i really didn't like starbound ) and for it to have a more immersive world. It's impossible to create a block based game on a circular gravity planet without doing some trickery, so I had the idea to just make the planet square and have the gravity be rigid instead.
in 2021, I tried making a version of the idea, when I didn't know godot very well. This one used tilemaps, and its pretty ass. Tile maps are mostly bad for sandbox games because Godot doesn't have the option to not redraw after changing a single tile, so generating a world that's for example 100 by 100 blocks means 10,000 draw calls which is extremely laggy. If you can chunk things out and draw them separately you can generate huge worlds with one 1 draw call per chunk on the screen.
To actually answer ur second question tho, while I used tilemaps for the 2021 original project, I had learned not to use them by the time the 2024 version came around. Waxweaver just has every block texture loaded in memory at all times, and whenever the world is updated, it redraws the effected chunks. It does this by generating a 64 by 64 blank image (8x8 blocks), reading the data of the world, and then stamps the corresponding block textures onto it.
Most of the intensive scripts in waxweaver ( chunk drawing, world generation, lightmap drawing, chunk simulation, world saving ) are done in C++ rather than godot's gdscript. GDScript is an awesome and easy to use language, but its very slow when its comes to big for loops. Originally the game didn't using C++, and it ran decently well, but I wanted to make this game run on web, and the web performance was NOT good. C++ speeds up things by a huge margin, it still chugs on web a bit but it leagues better. I had never used C++, so it was pretty challenging for me to get everything working (especially on web GOD)
honestly, it's probably a good idea to avoid using a premade engine for these types of games, they are pretty intensive and require a good amount of gamer knowledge to pull off well. as for design things you should avoid, I really have no idea! There's so many things you can do it's hard for me to point at any specific thing to avoid, other that stuff that just applies to any game, like avoiding overscope or taking too much control away from the player.
I'm going to answer both of the next questions simultaneously: YES and YES. I guess that's what you should avoid, DON'T MAKE GAMES ABOUT SPACE!! The original 2017 idea was square planets that you could travel between, not by menu, but by getting in a ship and flying there. For waxweaver, I scoped it down to just 1 solar system, then eventually again to just the 1 singular planet. Doing multiple planets was just too ambitious, it took so long to just do the one singular planet. Also, it just wasn't as fun as it sounds to fly a ship to a nearby planet. There was nothing to do in space, flying between planets was janky since the game is 2D ( flying was really just staring at a map menu it sucked ) So as much as I wanted to make the ambitious space game, I found it just ended up being a more fun experience without it. ( technically, the planets kind of merged. There was gonna be a forest, desert, and snow planet. But I just merged them into one for a more interesting world overall )
the main menu theme was made in 2022 for a unrelated project that I just reused to waxweaver, I believe most of the synths used are from a totally legal copy of the AX73 vst. The main menu theme is the only song in the game made by me, the rest of the soundtrack can be found here.
your base is pretty sick, i like the armor stand pedestals and the cool bonsai tree lookin' thing
