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

Thursday, August 11, 2011

Fish Waffling

Brown Trout, looking appropriately skeptical.  Courtesy New York City Public Library.
So I just finished putting some of my notes into a spreadsheet, felt the glow of a job 10% done, and then the sinking feeling of realizing that you'd done research on a bunch more fish.  Like, where's the pike?  Any of the trout species?  The burbot, which I remember because when you pull it out of the water, it tries to wrap around your arm like a boa constrictor?  And those are the ones I can think of offhand. 

Upside: there aren't going to be just 13 species.  Yay diversity. 

Downside: someone has to do more research, and until I get an intern, that someone is going to be me.  I love research, I'm just not chuffed about re-research.

I'm also sort of leery of the way the odds for fish are going.  Right now they have a base frequency, and then bonus/penalties for the cold water, warm water, shallow water, deep water, slow water, fast water, whether it's not a prime feeding time, and whether it's winter.  And data for preferred baits. 

The result is a pretty intense table.  The advantage of having these in a table is that they can be tweaked en masse to make the difficulty easier/harder, or in response to environmental pressures.  But it's not the most helpful table, and I'm thinking of breaking these out into properties: cold-water tolerant, shallow-water feeder, active-in-winter.  (Yes, the names need work.)

I'd still need some sort of hard numbers for frequency and what those penalties actually mean, but it would make fish definitions easier.  For instance, I'm thinking cold-water fish (vs. temperature-tolerant or warm-water fish) just don't show up in warm water.  Period.  But I'm not really a fish person - they're delicious, but not something I know much about - and I don't know if that's fair.  I'm not even sure what makes fish prefer cold or warm water - is it the competition?  Thermal regulation?  Enzymatic activity?  This makes it hard to make judgment calls on mechanisms. 

I also need some measurement for bait; catfish theoretically eat anything, while sturgeon are theoretically pickier.  (I garden, so I've learned to take pronouncements on biological behavior with a grain of salt.)  I don't really know if there are categories of baits that go together: live bait includes what, exactly, and if a fish eats a minnow, does that imply it would bite on a worm?  A grub?  A crayfish?  And that's dependent on me getting bait worked out. 

I think bait needs to be pretty straightforward, so here's sort of the current experimental plan:
- Live bait: worms, grubs, minnows, and small moving things.  Includes artificial bait that looks/acts like live bait - spoons, rubber worms, etc.
- Non-live bait: usually odiferous, non-moving stuff - dead salmon, cheese, sausage, etc.
- Some sort of size mechanism - sturgeon eat non-moving stuff that's at least X g; perch have a range under Y g.  Maybe by body weight.

I wouldn't mind fly fishing (isn't that a separate thing from normal fishing?) but know NOTHING about it.  And while I have no problem with our Lone Survivor sitting around embroidering her underwear, I think tying artificial flies is just a little bit silly. 

I also need a way to spear fish in the shallows (and possibly deep areas near a bank).  I think I'm going to ban swimming out into the lake with a spear.  People do it in the tropical oceans, but I don't think a lake has the same fish density or temperature. 

Fun fact: Barnacles can't move, so they mate with these long extendable penises that look like something from Doctor Who.

Monday, August 8, 2011

In Which I Realize Something Obvious About Inform 7

Just now I realized that instead of typing "Every turn when the minutes part of the time of day is 00:" eighteen thousand times, I could just make a set of every hour rules, trigger them once, and then just specify "Every hour: do stuff!"

Makes the code easier to read and write.

In Which I Make a Rock

So I've been trying for days to make a rock.  Who would have thought that a convincing rock is so much harder than a convincing tree?


Why are the background colors weird?  I dunno.
It's still not what I would call convincing - there's something non-organic about it, despite the fact that it was more-or-less based on an actual rock.  I do like the moss, though.  And I think I like the snow shading, which looks deceptively simple but actually involved about an hour's worth of gradient tools and blur and smudging and shaping and brushes.  I tell you, I cannot wait to work on a tropical island version of this game, where there are no seasons, no snow, and all rocks have been made by aliens and are *meant* to look like those plastic rocks you can put keys in.

Trying to get the grass looking decent is . . . progressing, if by progressing one means "I have tried a bunch of stuff that didn't work, and then my brain went funny and I don't know if it's better or not."  Also, I did some stuff on the wrong layer, so it's not really reproducable the way I'd like.

Here's one experiment with flowers.  It's TOO MUCH at this point, but I think there's potential in there somewhere.  It's better if I take out a bunch of the middle-distance trees.  On the other other hand, Michiconsota summers are pretty much a froth of TOO MUCH, so . . . yeah.  I dunno.  (I moved this layer down a bunch, because it was too high, and took out a lot of extra greenery, so you're missing a bunch of the effect.)  I do like that suddenly this thing has the feel of looking over hills.  How did that happen?  I wish I knew, because I kind of like it.  And I like that there's some color at midsummer.  There should be color.  Just not sure how to add color without it being all overwhelming. 

Wait, no, that's a lie. 

Just rip the middle-ground trees out, and voila.  (Note to self: Do not think about the hours you spent crafting the middle ground trees.  Just think: better one, or better two?) 

Also that grass color is subtlely wrong.  (Green is one of those really tricky colors, where it has to be just so.  Like brown.  Orange and blue are more forgiving.)  Also tried shifting the background trees a little more blue, to give the illusion of distance, and . . . yeah, that's not working.

In other news: I procrastinated this week.  (Well, not so much procrastinated as "went outside, saw the sun, met friends, drank beer, made bread, put a new video card in my computer, played Fallout 3, searched for help on game-breaking bugs in Fallout 3, marveled at how many there were, and managed to force my game into a semi-workable condition.") 

Whenever I get a little excited about Skyrim, I go watch the video of the guy demoing it and immediately feel better.  There's just something about the presentation that dulls my excitement.  I have a history of getting super-excited about Bethesda's stuff and then having them do B-quality work - enough so that I don't feel totally outraged, but most of the fun is sapped from the game. 


Monday, August 1, 2011

Crops, Part the First

Crop plants are an entirely different thing than the wild plants, and require a lot more delicacy.  There's kind of a bunch of factors, and I haven't quite sifted out "want to do" from "plausible to do" from "bad idea".  A lot of the crop planning that I did was done either before I started programming, or while learning I7; as such, it doesn't really take into account things like "difficulty" or "memory".

Initial plan: Implement lots of crops, each with lots of cultivars.  (A cultivar is a specific type of a species, like Red Delicious apples or Brandywine tomatos.  There can be dozens or hundreds of cultivars per species, each with a unique set of genes.  Sometimes those genes are better than average - maybe Jonathan apples are unusually resistant to disease.  Sometimes they're worse - Brandywines don't ship well at all.  That mix of characteristics makes it fun to play with, since you can select different cultivars based on what you want to do with a crop.)  Each cultivar would be implemented as a set of genes.  You could choose to cross pollinate plants yourself, and get a range of cross-bred plants with various characteristics, and purify those to a single strain ideal for your needs, or you could just roll with a store-bought variety.

I basically think this would be loads of fun, but I cannot see a good way to run this without horrific memory and parser issues.  A pure graphics game would handle this with more aplomb, but consider: you cross Apple A and Apple B.  You plant only 2 apples' worth of seeds, and get 10 saplings.  They're all crosses of A and B, but they're unlikely to be clones of each other; Inform will want to refer to them separately, and the PC will want to refer to them separately.  I could assign arbitrary ID's, but the player won't have good reason to be able to tell them apart for years.  Much worse is if the PC crosses and plants a field of trial corn.  In that case, there's nothing for it but to fake the cross somehow, holding the genes and then giving the player a couple improved (or unimproved) plants at the end.  That sits wrong for me.  And that's not even getting into memory issues, storage of data for new cultivars, clarifying to the player what's good and bad about specific plants/fruit, tracing the crop back to a specific mother plant, and about 26,000 other issues.  I'm also a trifle unconvinced that there's enough difference between cultivars to be deeply meaningful in 90% of the cases.  In essence, the very set-up of the game determines what uses most of the crops will be put to.  The PC is not running a gourmet kitchen, where a diverse spread of subtle and unusual flavors is important.  It's hard to even describe those flavors without sounding really, really stupid.  (Flavor description is a beast.)  And the difference amongst cultivars is usually smaller than the difference between species - that is, two tomatoes are going to be more alike than a tomato and a bean, so you get more bang for your buck with two species, and less of a rate of return for cultivars.  And cultivar information can be hard to gather and gauge accuracy for.  I can give you ballpark estimates for how many bushels come from a row of corn, but I couldn't tell you whether Silver Queen was better or worse.  And it's likely to vary depending on the part of the country and techniques used.

Given that, I'm reluctantly letting go of most of the cultivar stuff.  I'm not 100% on it, yet, largely because I think some choices are meaningful.  For example, does the PC grow green beans, dried beans, or both?  That makes an impact on play.  Green beans are likely to produce more, earlier, but requires additional time and energy to preserve for winter, during months when there's a lot of other stuff to do.  So it's a time management issue, which seems like a good option to offer.  But as to whether the dried beans are speckly or black or stripey  . . . I hate to admit it, because I *love* that stuff, but there's not nearly enough pay-off there.

I think that energy can be better spent on creating a mechanics heavy crop system, where species have certain qualities that affect growth.  In this scenario, there's far fewer individual checks, and a lot more sweeping categories and behind-the-scenes gears.  So instead of talking about species, the game would mostly be dealing with frost hardy plants, or edible-fruit plants, or cutworm vulnerable plants, or whatever.  Get enough of these categories, and the species start sorting out in interesting ways.  And, at least in my theoretical role-play scenarios, it encourages the sorts of play I want to encourage: crop diversity, attention to insects or disease, interest in the general traits of various species.  It means the player has to keep less info straight - before, the player might have had a dozen cultivars of apples growing at any one time.  In case of insect infestation, the player would need to remember or look up the resistance of each cultivar, and treat the vulnerable ones.  That info would never be retained into another play session.  And, honestly, there's just too much time in between pollination and the time the player sees results.  It's at least a growing season, sometimes more, before the results become clear, and a lot of players aren't going to go beyond one season.  (And I'd be surprised if the first year is anything except "quick, plant stuff!")

This is the first design decision I've made that really hurts, and not just because I've already done a fair amount of research.  It changes the mental picture I'd had coming in, and although I believe I'm making the right decision, it's no longer my fantasy game.  Of course, no implemented game can actually be a fantasy game - already there's stuff implemented that's a compromise or outright re-neg, but the cultivar and plant breeding piece was big, and I miss it. 

There are still a lot of implementation issues to deal with, so I'm not ready to start coding yet.  But I've got some preliminary lists of crops I'm looking for info on.

Currently, there's a couple broad divisions by type of crop, with rankings as to which to I'm leaning towards implementing first.  I have no doubt that I'll get bored at some point, so it would be nice if the mechanics allow for easy additions.  That means not implementing all the grains first - that radically increases the chances that I'll never get around to tomatoes, because it's so much work.  If I start with corn and tomatoes and beans before moving on, it means less work adding stuff.  It also means that pre-alpha testers can get a better sense for how things might progress.

All this is tentative.  1st pick is the single thing from a category that I'd want, if I couldn't have any of the others; I'd like to get the first picks done before adding other stuff.  2nd tier is the stuff I'm pretty sure I'd like to get implemented; 3rd tier is stuff I'm not sure about and/or have trouble getting info on, but haven't outright rejected.  Things are mostly listed in order of preference in tiers.  I'm pretty confident I can get through about half the 2nd tier stuff, but less confident after that.

Grains: Botanically, this category shouldn't include some of the stuff it does colloquially, but I've always suspected that botanists just don't have enough to do with their time, so I'm going colloquial on this one.
First pick: corn.  Wheat would work, too, but Winnegan is much more a corn state than a wheat state.  Besides, it's one of the three sisters, so it has nice symbolic importance, and it has a lot of finickyness.  If I can get the mechanics right for corn, that sets up real nice for a bunch of other, more forgiving, crops.
2nd tier: wheat, barley, rye, oats
3rd tier: buckwheat, millet, amaranth, spelt

Roots: One of those weird, fuzzy categories, encompassing some roots, some rhizomes, even a thickened stem or two, I think.
1st pick: potatoes, hands down.
2nd tier:  carrots, beets, sweet potatoes, turnips (I'm a little vague on the differences between beets and turnips, so maybe just one)
3rd tier: radishes (3rd tier because it's less a calorie crop than most, and how many people voluntarily eat many radishes?  I eat a ton of the big Asian varieties, but the hot thumb-joint size ones?), parsnips, rutabaga, sunchokes, scorzonera (almost definitely out, but weird and sort of tasty, so not bumped yet)

Legumes: an actual botanical category, having something to do with . . . um . . . the way the pod splits open?  Yeah, I dunno.
1st pick: beans.  The normal kind, both green and dry.  Another three sisters pick.
2nd tier: peas, soybeans
3rd tier: fava beans, peanuts (people do grow these in Minnchicon, but . . . really?)

Fruiting vegetables:
1st pick: tomatoes - should be squash to round out the three sisters, but I think tomatoes are a bit more classic.

2nd tier: squash (winter), peppers, melons (musk), squash (summer), eggplant, cucumbers

3rd tier: tomatillos, gourds, melons (water), artichokes, okra, luffa, bitter melon

Greens:
1st pick: spinach.  Yes, probably should be lettuce, but I don't like lettuce, and if anyone gets to make petty decisions based on personal preference, it's me.
2nd tier: chard, arugula, kale
3rd tier: mustard, lettuce (okay, yes, this should probably be tier 2, but ew.)

Brassicas and stuff:  Actually, a bunch of brassicas are in other categories.  Maybe this is a miscellaneous bitter green category?
1st pick: cabbage.
2nd tier: uh . . . actually, not that sure I want other brassicas.
3rd tier: broccoli, asparagus, cauliflower, endive, rhubarb

Berries: Again, the non-botanical sense - canes or ground plants or vines with berry-ish fruit.
1st pick: grapes.
2nd tier: raspberry, blackberry, strawberry
3rd tier: blueberry, hardy kiwi

Tree fruits:
1st pick: Apples.  Purely a versatility/popularity choice.
2nd tier: pears, plums, cherries (sour and sweet?)
3rd tier: crabapple, Asian pear, peach, apricot


Oil plants: Several other plants give oil, of course.  Ah, well.
1st pick: none.  This would be a strictly 3rd tier optional venture.
3rd tier: poppies, sunflower.

Aliums and things:
1st pick: onions.  (Garlic's a close second, but because of the way it's used, I've reclassified garlic as an herb.)
2nd tier: leeks
3rd tier: fennel, shallots

Herbs:
Very 3rd tier in general, as these're reliant on a cooking system that might utilize them (or being picked up by another craft system).
1st pick: garlic
2nd tier: basil, oregano, parsley, dill, chives, sage, thyme, lavender, rosemary, marjoram
3rd tier: anise, caraway, horseradish, shiso, sorrel, chamomile, horehound, bayberry, borage, hyssop

Nuts are available only in the wild at the moment; I suppose I could change that.  Something to think about, anyway.