Saturday, September 13, 2008

Things that slow STEW down...

So, STEW was reasonably documented... in SDF, which I'm no longer using. I'm now favoring RST all-around.

I had ncurses working reasonably well, but... the goal is full Unicode support, and it certainly appears ncurses wasn't the best choice there. Ncurses itself isn't available everywhere. I needed a GUI version to work everywhere.

My first thought was Tkinter. I even started working towards that end. But, of course, Tkinter doesn't reliably ship with Unicode support.

The goal is always rich colors, rich fonts, while still holding onto the heart of the roguelike genre. No graphics, except to enhance the text. I do want to have some things now normally allowed in TTY mode.

Things like, on old-school terminals:
  • 88/256 color mode on an xterm
  • unicode support (widechar in ncurses)
  • separate background/foreground color

Of course, with a GUI-based setup we can make things much better:
  • full true-color support (better than normal, as we can have fore/back colors different than each other, everything becomes more legible)
  • font characteristics (nornal, italic, bold, strike-through, etc.)
  • atypical diacritic marks (etc) (d with a cedilla.)
  • background/foreground color
  • cell boxing lines which do not interfere with primary glyph
  • cell "glow" color -- blob of color smaller than background color in the middle of the cell
  • underline/strikethrough/shadow a different color than foreground
It is possible to take it a little further, and provide the map-grid with a large primary glyph, plus a small subscript/superscript glyph.

But, of course, first I need to get something working in a GUI with some chance of success. I'm currently thinking PyGame. Yeah, I know it seems quite unlike something used by a true Rogue-like. Still, it should provide what I need, and it is portable. The native full-screen support makes it present itself more like a true rogue-like than something designed first for a GUI.

No comments: