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

Tuesday, November 23, 2010

Ongoing Color Work

Color stuff is evolving - I've come a long way since June.  It makes a nice break from actual mechanics because it's so self-contained; apart from hooking it up to test code, I don't need to think about how this piece will have cascading effects into other areas of the world.

Which is awfully nice.

Also, I realized that the color schema had gotten completely out of hand.  I've spent hours and hours importing a variety of shades, only to realize too late that most of the colors were too saturated, too garish, and too neon to work well, and were far too short on grays, browns, and shades that were variations on each other.

So I spent some time thinking about what I needed, and did some palettes and color-mockups.
Seasonal sky/earth colors: Spring, Summer, Fall, Winter, plus temp scale along bottom (alpha)

But in addition to that, I've made the first steps towards an internal color-handling system.  For now, it converts RGB values to decimals and back again (necessary for the way Inform passes colors to the interp), and determines their brightness.  This is particularly useful if you change the color of the status bar; dark colors can be paired with white text and light colors with black text.  It's remarkably legible.

I don't know how strongly people feel about their interp's color choices, though.  I've left the main window alone, but I'm not sure how changing the status bar/borders works with various interps.  Honestly, I've considered messing with the main window, but people's vision is different enough that that's a dangerous area to play with; I've got severe astigmatism and there's quite a few websites that are illegible to me due to the blurring of text. Better to leave that alone, I think.

It's excrutiating to find clear-cut information on standard color manipulation online.  Playing around with Photoshop/GIMP a little, it looks like brightness, saturation, and color mixing are biggies I'd want; other helpful things would be the ability to determine what color family a RGB value is from the value alone.

Naming is a pretty big issue; until now, I've been using color names (ie midnight blue, cobalt blue, etc.) to indicate both shade and color family.  I'm sure there's a way to determine what named shade a particular value is closest to, but it's hard to think of one that isn't time consuming, and it's not really worth it for large numbers.  

- cut out shade names entirely.  Sort of tempting, honestly; many of the color names are sort of silly.  Have you looked at a paint sampler lately?  "Roycroft Adobe"?  Really, Sherwin Williams?  (Downside: no "Ur-grue Black" anymore.)
- have names for the shades that I actively reference in-game, and let the rest go.  (Downside: some shades will look nearly identical but one will be named and the other won't.)
- randomly generate names.  I love the theory of procedural generation, but experience tells me that generated stuff needs a lot of tweaking to be even sort of okay, and I'm not deeply invested in color names. 
- carefully control what gets drawn from what, and make the names derivative.  That is, a mixture of rose + medium gray would be "faded rose", a more saturated version of moss green would be "vibrant moss", etc.  (Downside: time spent with dictionary and thesaurus is approaching infinity.  Fiddly.  Potential for multiple similar shades (moss green + 20% saturation vs. moss green + 50% saturation.)  
- ??
Current development window: three-sided border

Current display border mock-ups look something like this:

The status bar is correspondent with sky color; this gives players access to weather changes and day/night shifts.  What's actually in the status line at the moment is time and date, but I'm also hoping to get goals/reminders up there once they're implemented.  (At the least, emergencies should be easy to put in there.)

There's actually only one description bar implemented (left), but it looks like whatever bug I was experiencing with the interps is gone, so full framing works.  Currently, the bar only changes when the character examines something, but I'd like there to be a somewhat static location bar (for color/mood purposes, mostly).

The bottom line is temperature, although it needs tweakage (particularly the greens).

This setup gives a surprisingly large range of borders; these are a little bit cherry-picked to provide nice contrast, but not much; all the colors (except black) are from the palette above, or the dawn/twilight palettes I'm working on separately. They're by no means perfect, but even playing with the pre-alpha, untweaked versions, I'm pleasantly surprised how much I like them, and how much they add to the sense of the world.

Morning, winter
Midday, early fall
Afternoon, summer

Summer sunset

Cold cave

1 comment:

  1. I recently read a post by a blind person that the iPhone has an app that will say the name of a color that you point the phone's camera at. Since we've many blind gamers in I-F, using the names that that app uses might be appreciated.