wildmender clone reportback
it's been a while since i posted here! i've definitely been more active on tumblr lately.
anyway so, this month i've been working on a wildmender clone in godot, basically just to try out what it's like to make something without 100% writing all the code myself. get used to using an engine, that kind of thing. there's a bunch of posts in my tumblr archive. i managed to take it from "draw a random heightmap" to "most of a game prototype" in about four weeks, which i'd call pretty decent turnaround having never used any of the tools involved before.
i started to lose steam near the end as the remaining Big Structural Mechanics started to narrow down to "just work on water flow simulation", which is another thing i've never done before. another factor was starting to recognize just how many visual options i had available that i had no clue how to use -- godot has all these color-grading options, and this whole builtin pbr model, etc, and actually figuring out how to make any of that produce an output i thought looked good seemed kind of intimidating. plus, as i started running up against the limits of what i could simulate, it was a little disheartening that i couldn't make something bigger. i wanted a huge map, but in practice once i got to 19x19 chunks, the cost of having them all loaded was starting to eat up all my memory. one of the downsides of using an engine is that many of the allocations are invisible to me -- it seemed like mesh chunks were taking up like, 50%, 100% more memory than they ought to, in part, presumably, because they were doing some internal marshaling.
the other thing i realized is that making a clone is so much easier than having to make all your own design decisions. pretty much all of my game projects have been hamstrung by needing to decide about mechanics: what do i want to do? what do i not want to do? how specifically should this system work? etc. starting with "let's mostly do things the way this other game does things" takes so many decisions out of your hands. for a while i was just going down the list checking things off b/c i would just be coding one thing, finishing up a simple implementation, and then immediately going to the next thing, which i knew exactly how to do. basically it's the first time when coding something where "typing speed" started being a limiting factor.
i'm planning on coming back to it at some point, because... i mean, i really liked wildmender & i'd want to get to the point where i'm completely remixing its systems instead of just having a janky clone. i spent a lot of the month doing what amounts to low-level mesh generation, which is fairly unusual for godot; i imagine doing things like "making a crafting ui" or "adding spline-based builting tools". "making a title screen", etc. would let me work a little more with godot as an engine instead of ignoring most of it to do some very particular rendering stuff. water flow simulation remains a pretty intimidating problem, but i think beyond that the Primary Systems of the game are pretty much done.
anyway so, this month i've been working on a wildmender clone in godot, basically just to try out what it's like to make something without 100% writing all the code myself. get used to using an engine, that kind of thing. there's a bunch of posts in my tumblr archive. i managed to take it from "draw a random heightmap" to "most of a game prototype" in about four weeks, which i'd call pretty decent turnaround having never used any of the tools involved before.
i started to lose steam near the end as the remaining Big Structural Mechanics started to narrow down to "just work on water flow simulation", which is another thing i've never done before. another factor was starting to recognize just how many visual options i had available that i had no clue how to use -- godot has all these color-grading options, and this whole builtin pbr model, etc, and actually figuring out how to make any of that produce an output i thought looked good seemed kind of intimidating. plus, as i started running up against the limits of what i could simulate, it was a little disheartening that i couldn't make something bigger. i wanted a huge map, but in practice once i got to 19x19 chunks, the cost of having them all loaded was starting to eat up all my memory. one of the downsides of using an engine is that many of the allocations are invisible to me -- it seemed like mesh chunks were taking up like, 50%, 100% more memory than they ought to, in part, presumably, because they were doing some internal marshaling.
the other thing i realized is that making a clone is so much easier than having to make all your own design decisions. pretty much all of my game projects have been hamstrung by needing to decide about mechanics: what do i want to do? what do i not want to do? how specifically should this system work? etc. starting with "let's mostly do things the way this other game does things" takes so many decisions out of your hands. for a while i was just going down the list checking things off b/c i would just be coding one thing, finishing up a simple implementation, and then immediately going to the next thing, which i knew exactly how to do. basically it's the first time when coding something where "typing speed" started being a limiting factor.
i'm planning on coming back to it at some point, because... i mean, i really liked wildmender & i'd want to get to the point where i'm completely remixing its systems instead of just having a janky clone. i spent a lot of the month doing what amounts to low-level mesh generation, which is fairly unusual for godot; i imagine doing things like "making a crafting ui" or "adding spline-based builting tools". "making a title screen", etc. would let me work a little more with godot as an engine instead of ignoring most of it to do some very particular rendering stuff. water flow simulation remains a pretty intimidating problem, but i think beyond that the Primary Systems of the game are pretty much done.