Had a nice dream about walking around by this river near where it met a lake. Along the lakeshore was a bit woodsy, and I had been climbing back and forth through it to get from place to place. There was a bridge across the river, and a path. It was a lot like the region around Vilas park. And the dream was probably inspired by my trip to Elver park yesterday that I took to see how well I could bike with my broken finger (good enough, it seemed, that I'm riding my bike to work again at least for a few days). Also I'm reminded of a dream I had a few nights ago in which I was with some friends (relatives?) canoeing around exploring some lakes. It was very similar to several other boat-based dreams I've since my canoe adventure with Joh last summer.
I recently noted that making worlds with the world designer was about the most fun part of D5.2 (aside from those first few days that were just rediculously fun because none of us had done such a thing before, and I should also note that being able to actually walk around in your world and get a sense of its scale certainly enhanced the fun of the world designer), I've decided that a good project is to re-create that into a more...flexible...thing. One obstacle is that I'm not exactly sure what I want it to do different from D5.2's world designer. I've also been thinking about / half-prototyping some ideas for how to go about this.
- I'm thinking that the idea I was going with in D5.2 of having more
than one 'channel' of terrain data (one channel for height, another
for ground type (sand, water, grass, etc)) is probably the way to
go.
- This would probably mean 2 classes of functions - those that return a single value (perlin noise, the ridged multifractal), and those that return multiple values (one for each channel).
- Those single-return functions are easy.
- Not sure how those multiple return values would be implemented, as most languages (most importantly, C(++) and Java) don't support multiple return values. Maybe pass in an array for outputs? Ick...
- I could then do cool things like have several terrains interwoven, with only the texture of the highest showing.
- Language: thinking C++ right now. Java ain't necessarily slow, but it eats memory, and I'm not a big fan of needing its huge runtime or of the language itself.
- Or I could invent a new language (probably as a C preprocessor) optimized for defining all these functions. Not sure how that would work.
- I probably need to think about these 'channels' some more.
- Thinking about this way too much.
- On a somewhat related note, Dan says he's making progress with Tornado.