oh yeah two week projects
how about that global pandemic huh. that sure isn't good.
it was another kinda scattershot project this time too. i expanded CTM support a little by adding in 'property' data. no tiles or objects actually produce property values yet, but that opens up a lot of flexibility in terms of texturing objects.
(an aside: i play a lot of the regrowth minecraft modpack. my least favorite part is its deep dependendance on 'agricraft', which is a mod that changes how plants grow and gives them real basic 'mutation' values. but on reflection the reasons i don't like it break down into two categories: one, it makes plants all grow the same. no more cacti farms with their weird grids, or sugarcane farms in rows bracketed by water, or melon or pumpkin farms in rows, etc etc. instead, every single plant just grows as a single block with a basic 'crops' render. so it reduces the meaningful variation in growing stuff. two, the mutation values are all really boring and not super well hooked into what the plants do. by default they go up every time the plant spreads, so you inevitably get a maxed-out 10/10/10 seed. but also, those values are just "growth speed" and "produce amount" and then a weight "strength" value that might have to do with trampling or maybe taking cuttings? it doesn't really come up much. it's not really the concept of quantized plant values that i object to, it's that like... instead of a general 'produce' value that effectively ranges from "one produce" to "four produce", it would be neat if that hooked into specific plants' growth, so that something like witchery's snowbells could be trained to grow more snowballs or more ice needles, but not both. and then if that _also_ let you visually change what the plant looked like based on what that value was, that would be cool! you could actually visually identify yr plants, which would make needing to have a big */*/* stat overlay, uh, way less necessary. so basically i was thinking of all of this when i added in prop support, so now theoretically plants can just expose stuff like that and it's a resource pack thing if somebody wants to draw a whole bunch of custom textures for each data value variation.)
i also got into rendering somewhat more complex models. a lot of this has to do with uv-wrapping the polyhedra i'm generating, so that i can actually texture them. this takes a little extra effort per-polyhedra, and i'm still not super happy with the regularity of all these shapes (nature is famously not all spheres and geometric solids) but it's still pretty nice to be able to draw prism bushes or rhombic dodecahedra trees or whatever.
i also added some flags to the texturing code and reworked what data is made available when writing UVs. currently the only flag supported is 'linked', which is used for random textures to allow mix-and-match textures on a single object. one of the things this is useful for is drawing a few different 'leaves' textures and have them all mix-and-matched on a tree, rather than having each tree pick its leaf type across all its geometry. one of the things i'd really like to add is a wang tiling texturing mode, since polyhedra have all the edge data necessary to generate a random wang tiling. i'm just not really sure what that would mean outside of the context of polyhedra-generated models -- i definitely don't have the edge context needed to wang tile the actual landscape tiles. which is kind of unfortunate, since that would be neat.
also i did some more work on rendering indices and updating them, though that's still not really a solved problem.
this is less a synopsis of what i did and more a kind of aimless ramble but hey it's that kind of time in the world i guess. oof.
how about that global pandemic huh. that sure isn't good.
it was another kinda scattershot project this time too. i expanded CTM support a little by adding in 'property' data. no tiles or objects actually produce property values yet, but that opens up a lot of flexibility in terms of texturing objects.
(an aside: i play a lot of the regrowth minecraft modpack. my least favorite part is its deep dependendance on 'agricraft', which is a mod that changes how plants grow and gives them real basic 'mutation' values. but on reflection the reasons i don't like it break down into two categories: one, it makes plants all grow the same. no more cacti farms with their weird grids, or sugarcane farms in rows bracketed by water, or melon or pumpkin farms in rows, etc etc. instead, every single plant just grows as a single block with a basic 'crops' render. so it reduces the meaningful variation in growing stuff. two, the mutation values are all really boring and not super well hooked into what the plants do. by default they go up every time the plant spreads, so you inevitably get a maxed-out 10/10/10 seed. but also, those values are just "growth speed" and "produce amount" and then a weight "strength" value that might have to do with trampling or maybe taking cuttings? it doesn't really come up much. it's not really the concept of quantized plant values that i object to, it's that like... instead of a general 'produce' value that effectively ranges from "one produce" to "four produce", it would be neat if that hooked into specific plants' growth, so that something like witchery's snowbells could be trained to grow more snowballs or more ice needles, but not both. and then if that _also_ let you visually change what the plant looked like based on what that value was, that would be cool! you could actually visually identify yr plants, which would make needing to have a big */*/* stat overlay, uh, way less necessary. so basically i was thinking of all of this when i added in prop support, so now theoretically plants can just expose stuff like that and it's a resource pack thing if somebody wants to draw a whole bunch of custom textures for each data value variation.)
i also got into rendering somewhat more complex models. a lot of this has to do with uv-wrapping the polyhedra i'm generating, so that i can actually texture them. this takes a little extra effort per-polyhedra, and i'm still not super happy with the regularity of all these shapes (nature is famously not all spheres and geometric solids) but it's still pretty nice to be able to draw prism bushes or rhombic dodecahedra trees or whatever.
i also added some flags to the texturing code and reworked what data is made available when writing UVs. currently the only flag supported is 'linked', which is used for random textures to allow mix-and-match textures on a single object. one of the things this is useful for is drawing a few different 'leaves' textures and have them all mix-and-matched on a tree, rather than having each tree pick its leaf type across all its geometry. one of the things i'd really like to add is a wang tiling texturing mode, since polyhedra have all the edge data necessary to generate a random wang tiling. i'm just not really sure what that would mean outside of the context of polyhedra-generated models -- i definitely don't have the edge context needed to wang tile the actual landscape tiles. which is kind of unfortunate, since that would be neat.
also i did some more work on rendering indices and updating them, though that's still not really a solved problem.
this is less a synopsis of what i did and more a kind of aimless ramble but hey it's that kind of time in the world i guess. oof.