Design and documentation journal for my interactive fiction (text games); also reviews and other miscellaneous stuff.

Tuesday, April 27, 2010

Forest for the trees

I am doing a lot of ecology reading right now, trying to figure out what happens when and why. Ecology is really complicated, and there's no nifty table that tells you what to program. Things are going to be a bit dodgy. (Awesome.)

My notes are an absolute MESS.

Here's what I've got:
- a list of native trees in Wisconsin.
- a list of native communities in Michigan.
- the sketchiest understanding of forest succession in the history of ecology.

Basically, a forest proceeds from grassland -> shrubland -> shade intolerant forest (aspen/pine) -> shade tolerant forest (usually maple mix in the fictional world of Minneconigan).

This is driven mostly by the relative shade tolerance/intolerance of the species involved.

But clearly, some sites do not progress beyond grassland. Or, rather, they progress to a mature prairie type grassland. Why? That's what no ecology text seems to want to tell me. I've been able to identify a few factors by looking around: rise and fall of the water tables can drown out trees. Beavers cut them down. Fire burns them. It looks like beavers were a much bigger presence I thought, both in actual tree removal and in creation of dams that created wetlands (or destroyed them, depending on whether the land was upstream or downstream of the dam).

So designing a model of progression is a bit iffy right now, because *everything* would proceed merrily to a maple-fir forest. Also, all shade tolerant species would grow in a mature forest, whereas usually it's a weird balance.

So I'm trying to tease out other factors that are decisive.
Other factors, arranged in what I'm hoping is descending order:
- soil moisture (saturated, wet, moist, dry, parched - I'm pretending this stays mostly constant right now, because I don't really understand how and when it changes)
- soil fertility (changes over time, but am pretending it doesn't, except on actively farmed land)
- soil depth (also changes over time)
- soil type (ie clay, loam, sand, loamy sand . . .)

It really tough, though, because many of the different types are pretty similar, except for a small difference, some not even easily codeable. So it's a case of trying to figure out how to manage all the data available, and make it realistic without being total overkill.

Fun fact of the day: As far as Catholic dietary rules are concerned, beavers are fish.

Square two

Past few months have been rough - I experienced a debilitating injury that's meant a lot of time recuperating, and a computer switch-over that somehow ended up discarding some of my experimental projects.
I am not exactly back to the drawing board, but I am not in the midst of a particular problem any longer, which makes it hard to dive back in.
A lot of stuff that seemed clever four months ago doesn't now. Instead of scrapping that, I'm putting it on hold, and looking at a different segment of the game altogther.
It's really worked well in terms of rejuvenating my interest, and it's a bit I'd formerly been bored to tears with, so I'm very pleased with myself.
I've been looking at the wild areas of the game, and thinking about it in terms of world gen and post-world gen changes.

Things that have become clear:
1) I'd originally planned to let the player select climate, soil types, and weather patterns - in short, to instruct the world how to model, so it could make a fair approximation of any US climate, and most non-US climates, barring Australia and Africa in favor of Central and South America. This is not going to work - not if I want the modeling to happen normally.

There's far too many biomes in even one climate to handle easily. For example, Michigan has a list of dozens of natural communities, broken down into half a dozen rough divisions. I feel like the choice is between a deep implementation of one climactic region, or a very shallow, unsatisfying implementation of a handful. Since there's not good information for all the areas I'd want to implement, that skyrockets the chance I'd mess up the ones I'm not familiar with, which would be worse.

So the game is taking place in Minnsiconigan, a mash-up of the contiguous states with the best information publicly available. The extension offices, forestry services, and departments of natural resources in Minnesota, Wisconsin, and Michigan are outstanding, and make the info pretty easily available for those with determination.

2) There's not a good way to represent a full-scale forest. Two problems: of primary concern is the ease of play, or at least the ease of understanding what's in a location and specifying what you want to do to it. So far, I've found this easy in a location with 1-5 trees, and doable but slightly more difficult with 6-10. After that, all bets are off.

I'm still trying to figure out how to let the player specify things like "the tallest oak", but I'm sure I can do it eventually. No, the problem is just clutter, especially if I want these places to be somewhat distinct.

Of course, no community is made up of ten trees, much less five. On the other hand, 100 rooms with 10 trees each is neither interesting nor helpful.

Potential solutions:
- model a "forest" object, or maybe a "stand" object, that fakes a number of trees. Downside - I like the idea of individual trees that I can track stuff for and create individual descriptions of. Also, stands and forests are going to be very very bug prone, and they need to work perfectly.
- pretend that a room is representative of a bigger community. Give the player more wood, etc. to represent the large number of aspens being cut down (or whatever). Downside - the *character* is supposed to be only one person, so giving extra wood or food is unbalancing and would be hard to explain in game.
- say fuck it, include enough rooms that the player probably won't run out of wood if she manages well, and just pretend pocket-sized communities exist all over the place. Downside: player may be weirded out to discover she turned a forest into a grassland by cutting down five trees.

I am leaning towards the last implementation. At least the player will have a clear effect on the environment, and with enough room, that should be okay. I hope.