oh right been a while
okay so my two week project as of four weeks ago was actually 'work on hell's half-acre more', which i did somewhat (i looked into how the 'tiled' map editor works and how its maps can hook into game code, and i implemented a very basic little map loader. and also fixed a few bugs) but didn't really make a whole lot of progress with. and then from the last two weeks the project was basically, uh, "do your taxes", because i had put them off until the last minute. so that wasn't really ideal.
but what i ALSO did was some misc other work. for one, i opened up my graph-expansion level generator and expanded its ability to collide and render shapes -- previously, i had basically hardcoded in the rendering code for 1x2, triangular, and diamond rooms, and anything that wasn't precisely that exact size would just fail to render entirely. i parameterized that rendering code so that i could generate 1xn rooms, and triangles and diamonds of any size, including asymmetrical diamonds. (i also wrote collision code for trapezoids, but i didn't try to do any rendering code for them, so they're still not fully implemented. e: i did some rendering math and got trapezoids to work too. yayy this means i can generate every convex shape except for arbitrary irregular hexagons. which is, you know, the biggest shape domain that includes the most values, but you know w/e trapezoids is still progress) this pretty radically expands the ability of the dungeon generator to make big maps, since... like in my head each 'tile' in the map is basically the space for one item or monster, which means all the maps generated so far are pretty compact. but now it would be possible to make maps that are only made from very large pieces, which means more space for variation.
(also, the only convex shapes remaining are trapezoids and irregular hexagons, and those are both realistically possible to implement. at that point you could make any kind of convex shape and have it work correctly, which would be really good. in part because the easiest way to represent a concave shape in this is as a collection of convex shapes glued together.)
ALSO i worked on some 3d rendering stuff. so when i was working on the plant generation, i needed a little 3d renderer so i could output plant models. it worked pretty well. but recently i was like "hey i'd like to get back into larger-scale generation", so i was like, hmm, well, procedural buildings maybe? so i repurposed the 3d svg generator for things other than plants, and made a little generator for houses. there are a few examples up on my screenshots blog. so far i've only been generating buildings by hand, since i'm not 100% on how i'd want the generator to work, and there are uhhhh more than a few glitchy houses that generate busted geometry. listen i've only been working on this for like a week, cut me a little slack here.
this is CONCEPTUALLY modeled via use of constructive solid geometry -- all these houses as globs of primitive objects intersected and unioned together to make coherent 3d geometry with no messy hidden faces -- but uh i've never done any CSG stuff before, really, so right now the code is more than a little broken and inefficient.
one of the goals for this whole set of procedural products is to kinda create a procedural almanac? so like, have a procedural history that produces procedural cultures, which are filled with procedural people, who live in procedural settlements in a procedural world and who are surrounded by procedural flora and fauna. and be able to trace the connections of things, like, such-and-such adventurer is from this culture, and here are their settlements, and this settlement uses this grain staple, and here's the biological tree of that grain going back through time, etc. you can see the 'people' part of that with the whole nemesis system, random orcs or humans or monsters setup, and you can see the 'flora' part with the plant generator; these houses would be part of the 'settlements' part.
i don't really know how close any of that is to any kind of fruition, but you know, that's the concept at least. it also gives me some direction for future generators, like, hey what would a procedural animal generator look like?
anyway my schedule got kinda messed up but i guess it is time to pick a new two-week project. i might pick up the graph generator again and try to fix the big three problems with it currently (after which it would become a much more useful and interesting tool). or maybe not. i guess we'll see what i've been up to in two more weeks.
okay so my two week project as of four weeks ago was actually 'work on hell's half-acre more', which i did somewhat (i looked into how the 'tiled' map editor works and how its maps can hook into game code, and i implemented a very basic little map loader. and also fixed a few bugs) but didn't really make a whole lot of progress with. and then from the last two weeks the project was basically, uh, "do your taxes", because i had put them off until the last minute. so that wasn't really ideal.
but what i ALSO did was some misc other work. for one, i opened up my graph-expansion level generator and expanded its ability to collide and render shapes -- previously, i had basically hardcoded in the rendering code for 1x2, triangular, and diamond rooms, and anything that wasn't precisely that exact size would just fail to render entirely. i parameterized that rendering code so that i could generate 1xn rooms, and triangles and diamonds of any size, including asymmetrical diamonds. (i also wrote collision code for trapezoids, but i didn't try to do any rendering code for them, so they're still not fully implemented. e: i did some rendering math and got trapezoids to work too. yayy this means i can generate every convex shape except for arbitrary irregular hexagons. which is, you know, the biggest shape domain that includes the most values, but you know w/e trapezoids is still progress) this pretty radically expands the ability of the dungeon generator to make big maps, since... like in my head each 'tile' in the map is basically the space for one item or monster, which means all the maps generated so far are pretty compact. but now it would be possible to make maps that are only made from very large pieces, which means more space for variation.
(also, the only convex shapes remaining are trapezoids and irregular hexagons, and those are both realistically possible to implement. at that point you could make any kind of convex shape and have it work correctly, which would be really good. in part because the easiest way to represent a concave shape in this is as a collection of convex shapes glued together.)
ALSO i worked on some 3d rendering stuff. so when i was working on the plant generation, i needed a little 3d renderer so i could output plant models. it worked pretty well. but recently i was like "hey i'd like to get back into larger-scale generation", so i was like, hmm, well, procedural buildings maybe? so i repurposed the 3d svg generator for things other than plants, and made a little generator for houses. there are a few examples up on my screenshots blog. so far i've only been generating buildings by hand, since i'm not 100% on how i'd want the generator to work, and there are uhhhh more than a few glitchy houses that generate busted geometry. listen i've only been working on this for like a week, cut me a little slack here.
this is CONCEPTUALLY modeled via use of constructive solid geometry -- all these houses as globs of primitive objects intersected and unioned together to make coherent 3d geometry with no messy hidden faces -- but uh i've never done any CSG stuff before, really, so right now the code is more than a little broken and inefficient.
one of the goals for this whole set of procedural products is to kinda create a procedural almanac? so like, have a procedural history that produces procedural cultures, which are filled with procedural people, who live in procedural settlements in a procedural world and who are surrounded by procedural flora and fauna. and be able to trace the connections of things, like, such-and-such adventurer is from this culture, and here are their settlements, and this settlement uses this grain staple, and here's the biological tree of that grain going back through time, etc. you can see the 'people' part of that with the whole nemesis system, random orcs or humans or monsters setup, and you can see the 'flora' part with the plant generator; these houses would be part of the 'settlements' part.
i don't really know how close any of that is to any kind of fruition, but you know, that's the concept at least. it also gives me some direction for future generators, like, hey what would a procedural animal generator look like?
anyway my schedule got kinda messed up but i guess it is time to pick a new two-week project. i might pick up the graph generator again and try to fix the big three problems with it currently (after which it would become a much more useful and interesting tool). or maybe not. i guess we'll see what i've been up to in two more weeks.