Why no non-keyboard characters?

Archived from groups: rec.games.roguelike.development (More info?)

I've noticed that in most roguelikes, all the characters used as
graphics are those that appear on keyboards. There are no ASCII
characters like the hearts, diamonds, smiley faces, etc, nor any
extended ASCII characters.

Is this for portability reasons? Tradition? I can't think of any other
reason not to use these, as it seems if your only graphics are text
characters, the more variety you have available, the better.

Just curious.
26 answers Last reply
More about keyboard characters
  1. Archived from groups: rec.games.roguelike.development (More info?)

    "J. W. McCall" <jmccall@houston.rr.com> wrote in message
    news:vzRge.81996$hu5.27948@tornado.texas.rr.com...
    > I've noticed that in most roguelikes, all the characters used as
    > graphics are those that appear on keyboards. There are no ASCII
    > characters like the hearts, diamonds, smiley faces, etc, nor any
    > extended ASCII characters.
    >
    > Is this for portability reasons? Tradition? I can't think of any other
    > reason not to use these, as it seems if your only graphics are text
    > characters, the more variety you have available, the better.
    >
    > Just curious.

    In most Roguelikes, yes, and this is because of portability. Linux, Macs,
    etc. don't have those funky DOS characters. Certain ones that are made only
    for DOS/Windows use these characters. Also, with different definitions you
    can have one OS display a specific set of chars and another OS another-- I'm
    not sure of which RL has taken this approach, but I'm sure some have.

    Cheers, Nolithius.
  2. Archived from groups: rec.games.roguelike.development (More info?)

    Nolithius wrote:
    > In most Roguelikes, yes, and this is because of portability. Linux, Macs,
    > etc. don't have those funky DOS characters. Certain ones that are made only
    > for DOS/Windows use these characters. Also, with different definitions you
    > can have one OS display a specific set of chars and another OS another-- I'm
    > not sure of which RL has taken this approach, but I'm sure some have.

    With unicode, and given the system specs considered even "low end"
    nowadays, it's increasingly viable to have a reasonably portable
    roguelike using extended characters and more than 16 colors. NPPAngband
    now has 32 colors or some such, and there's another *band with a patch
    available for using unicode characters to render trees and other
    terrain. The major issue that remains is that using untypable characters
    for monsters will make looking them up in monster memory nontrivial. :)
    Creating a special monster memory category browsed with some typable key
    for collecting all of the "miscellaneous untypable character monsters"
    can be done though.

    A variant of that idea is to use accented characters for unique
    critters, e.g. 'o' umlaut for an orc unique, or just for a powerful orc
    type. An 'o' with a '^' over it would nicely convey an orc wizard. All
    of them would show up under a query for just plain 'o' in monster
    memory, of course, to make sure you could look up these orcs even if you
    aren't a resident of Europe.

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  3. Archived from groups: rec.games.roguelike.development (More info?)

    Twisted One wrote:

    > A variant of that idea is to use accented characters for unique
    > critters, e.g. 'o' umlaut for an orc unique, or just for a powerful
    > orc type. An 'o' with a '^' over it would nicely convey an orc
    > wizard. All of them would show up under a query for just plain 'o' in
    > monster memory, of course, to make sure you could look up these orcs
    > even if you aren't a resident of Europe.

    I'm using unicode and not yet even thought about this, great idea!
    *take note*
  4. Archived from groups: rec.games.roguelike.development (More info?)

    Twisted One wrote:
    [...]
    > A variant of that idea is to use accented characters for unique
    > critters, e.g. 'o' umlaut for an orc unique, or just for a powerful
    orc
    > type. An 'o' with a '^' over it would nicely convey an orc wizard.
    All
    > of them would show up under a query for just plain 'o' in monster
    > memory, of course, to make sure you could look up these orcs even if
    you
    > aren't a resident of Europe.

    This idea could be implemented, assuming they are supported by fonts
    and rendering libraries, with combining diacritical marks
    (http://www.unicode.org/charts/PDF/U0300.pdf
    http://www.unicode.org/charts/PDF/U20D0.pdf
    http://www.unicode.org/charts/PDF/U1DC0.pdf
    http://www.unicode.org/charts/PDF/UFE20.pdf ): juxtaposing the plain
    letter and the combining mark automatically produces a single marked
    letter, with the two advantages of not enumerating thousands of
    combinations in the game and not being restricted to ready made
    accented letters.

    Unicode has many useful symbols
    (http://www.unicode.org/charts/symbols.html ):
    the box-drawing set (http://www.unicode.org/charts/PDF/U2500.pdf ) has
    single, double and thick walls; the block set
    (http://www.unicode.org/charts/PDF/U2580.pdf ) has stippled blocks and
    all combinations of block quadrants; the geometrical shape set
    (http://www.unicode.org/charts/PDF/U25A0.pdf) has a variety of oriented
    triangles and other figures. There are also hundreds of arrows
    (http://www.unicode.org/charts/PDF/U2190.pdf
    http://www.unicode.org/charts/PDF/U27f0.pdf
    http://www.unicode.org/charts/PDF/U2900.pdf
    http://www.unicode.org/charts/PDF/U2190.pdf
    http://www.unicode.org/charts/PDF/U2B00.pdf ).

    Another way to adopt Unicode is drawing monster letters from various
    alphabets (http://www.unicode.org/charts/index.html ) beyond ASCII.
    There is a set of scripts from the phoenician group that should be
    graphically coherent in most fonts and (for most players) easily
    readable and not too exotic: Latin and extensions thereof, Greek,
    Cyrillic, IPA, Runic (Futhark), Cherokee and a few others.

    For cryptograms and flavour there are a lot of dead language scripts;
    Ogham (http://www.unicode.org/charts/PDF/U1680.pdf ) is particularly
    cool.
    Tolkien's Cirth and Tengwar and Egyptian hierogliphs are proposed but
    not yet approved; Klingon has been rejected.

    Lorenzo Gatti
  5. Archived from groups: rec.games.roguelike.development (More info?)

    Twisted One wrote:
    > gatti@dsdata.it wrote:
    > > Tolkien's Cirth and Tengwar and Egyptian hierogliphs are proposed
    but
    > > not yet approved; Klingon has been rejected.
    >
    > Rejected? On what grounds?

    The Unicode consortium has strict rules
    (http://www.unicode.org/standard/stability_policy.html ) about changes,
    which is understandable since once a code point is assigned to a
    character moving the character is very expensive and recycling the code
    is unacceptable.

    The main criteria are actual usage and importance (dead languages are
    encoded because scholars use them), economy of code points, good
    proposal quality.
    Motivations aren't public: Klingon is probably too frivolous or maybe
    it can be treated as a variant of ASCII (letters correspond directly to
    English ones), while Tolkien's scripts are used in many publications
    and by many reputable people and more complex.

    > There's plenty of room, especially if they do go 32-bit.

    Unicode is already 32 bit.

    Lorenzo Gatti
  6. Archived from groups: rec.games.roguelike.development (More info?)

    gatti@dsdata.it wrote:
    > Tolkien's Cirth and Tengwar and Egyptian hierogliphs are proposed but
    > not yet approved; Klingon has been rejected.

    Rejected? On what grounds? There's plenty of room, especially if they do
    go 32-bit.

    More unicode possibilities:
    * Storing a plain-ASCII char as well as a possibly-fancy char for each
    type of monster, feature, item, etc. enables not only using the plain,
    typable-anywhere char at lookup prompts but also gracefully degrading
    on unicode-unavailable platforms. This can be as simple as defining or
    undefining USE_UNICODE in various ports' makefiles, which affects
    everything else via conditional compilation.
    * Greek letters have possibilities. Capital theta can be an orb or stone
    of power. Pi can be a dolmen (a trio of stones like at stonehenge) and
    a circle of them could represent stonehenge. Some of the odder ones
    can represent snakes or various demons by resemblance rather than
    name.
    * Ancient/runic/exotic-looking character sets make great scroll labels.
    * Likewise if the PC can encounter unknown languages and have to get a
    method of magical translation for the player to see them rendered as
    plain English. (It should be gibberish with plausible letter
    frequency, rather than actually readable foreign-language text,
    though, or players that actually know that language will have an
    unfair advantage in not needing to get the PC that babelfish amulet or
    whatever. :))

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  7. Archived from groups: rec.games.roguelike.development (More info?)

    How hard is it to design the cursor/map selected query, as in crawl,
    NH?
  8. Archived from groups: rec.games.roguelike.development (More info?)

    J. W. McCall wrote:
    > I've noticed that in most roguelikes, all the characters used as
    > graphics are those that appear on keyboards. There are no ASCII
    > characters like the hearts, diamonds, smiley faces, etc, nor any
    > extended ASCII characters.

    Probably because ASCII doesn't include any hearts, diamonds and smiley
    faces and that extended ASCII doesn't exist. You've got codepages
    instead and the ( probably ) most used codepage doesn't include hearts,
    diamonds or smiley faces.
  9. Archived from groups: rec.games.roguelike.development (More info?)

    On Thu, 12 May 2005, J. W. McCall wrote:
    >
    > I've noticed that in most roguelikes, all the characters used as graphics
    > are those that appear on keyboards.

    Better: The characters which appear on common keyboards are also
    the characters that appear in all common character encodings. And
    the characters that appear in all common character encodings are
    precisely the characters you want to use in a game intended to be
    played on all common platforms. :)

    > There are no ASCII characters like
    > the hearts, diamonds, smiley faces, etc, nor any extended ASCII
    > characters.

    (Because they don't exist, as already remarked elsethread.) But
    this isn't quite true. In fact, it's not true at all, on WinDOS
    platforms at least. Every roguelike I've ever played (not counting
    The Tombs) uses at least one of the non-ASCII characters encoded
    decimally as 176, 177, 178, 219, 249, and 250 (a range of four
    shaded gray blocks and two centered dots, in that order).
    NetHack uses many more "non-keyboard" characters in its Windows
    command-prompt interface: fountains and the Rogue level come to
    mind immediately.

    > Is this for portability reasons? Tradition? I can't think of any
    > other reason not to use these, as it seems if your only graphics
    > are text characters, the more variety you have available, the better.

    Excessive use of non-portable character sets seems to have gone
    out of fashion. If you want to see what a semi-RL looks like with
    extended characters, download ZZT. :)

    -Arthur
  10. Archived from groups: rec.games.roguelike.development (More info?)

    jasonnorthrup@yahoo.com wrote:
    > How hard is it to design the cursor/map selected query, as in crawl,
    > NH?

    What do you mean, exactly? (No context save subject line...not very
    clear language...sorry!)

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  11. Archived from groups: rec.games.roguelike.development (More info?)

    so to conclude..

    how do i use unicode chars with c++ and pdcurses?

    thanx


    vooood
  12. Archived from groups: rec.games.roguelike.development (More info?)

    vooood a écrit :
    > so to conclude..
    >
    > how do i use unicode chars with c++ and pdcurses?
    >
    > thanx
    >
    >
    > vooood

    http://www.mail-archive.com/pdcurses-l@lightlink.com/msg00071.html
  13. Archived from groups: rec.games.roguelike.development (More info?)

    Christophe wrote:
    > vooood a écrit :
    >
    >> so to conclude..
    >>
    >> how do i use unicode chars with c++ and pdcurses?
    >>
    >> thanx
    >>
    >>
    >> vooood
    >
    >
    > http://www.mail-archive.com/pdcurses-l@lightlink.com/msg00071.html

    not much helpful.. i learned that the person does not know how to use
    the windows api functions.. :)


    vooood
  14. Archived from groups: rec.games.roguelike.development (More info?)

    vooood a écrit :
    > Christophe wrote:
    >
    >> vooood a écrit :
    >>
    >>> so to conclude..
    >>>
    >>> how do i use unicode chars with c++ and pdcurses?
    >>>
    >>> thanx
    >>>
    >>>
    >>> vooood
    >>
    >>
    >>
    >> http://www.mail-archive.com/pdcurses-l@lightlink.com/msg00071.html
    >
    >
    > not much helpful.. i learned that the person does not know how to use
    > the windows api functions.. :)

    What was writen was that the windows API and the windows console don't
    play well with unicode. Maybe it can work on Windows XP ( look at the
    msdn, there are 2 new events you can catch on XP which are Unicode key
    down and Unicode key up more or less ) but then, the code wouldn't work
    on an older version of windows.

    You'll have more luck if you look for a complete console rewrite for
    windows. Most people here suggest already to do that on top of SDL for
    example :)
  15. Archived from groups: rec.games.roguelike.development (More info?)

    "vooood" <vooood@IHATESPAMgmail.com> wrote in message
    news:d628qg$aso$1@ss405.t-com.hr...
    > so to conclude..
    >
    > how do i use unicode chars with c++ and pdcurses?
    >
    > thanx
    >
    >
    > vooood

    Use the string "\x00" where 00 can be any hex number up to FF. This will
    give you the IBM extended ASCII charset, which works on DOS. YMMV ;)

    There is a partial chart of the higher chars at
    http://telecom.tbi.net/asc-ibm.html , although there are some interesting
    chars at the lower levels (such as "\x01" for happy face and "\x07" for
    system beep! ;).

    Just experiment with them.

    --Nolithius
  16. Archived from groups: rec.games.roguelike.development (More info?)

    Nolithius wrote:
    > There is a partial chart of the higher chars at
    > http://telecom.tbi.net/asc-ibm.html , although there are some interesting
    > chars at the lower levels (such as "\x01" for happy face and "\x07" for
    > system beep! ;).

    And among these, \x07 is actually standards-compliant! ;)

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  17. Archived from groups: rec.games.roguelike.development (More info?)

    [Crossposted to the ToME list on Yahoogroups]

    > Twisted One wrote:
    > [...]
    >> A variant of that idea is to use accented characters for unique
    >> critters, e.g. 'o' umlaut for an orc unique, or just for a powerful
    > orc
    >> type. An 'o' with a '^' over it would nicely convey an orc wizard.
    > All
    >> of them would show up under a query for just plain 'o' in monster
    >> memory, of course, to make sure you could look up these orcs even if
    > you
    >> aren't a resident of Europe.


    Hmmm. If T-Engine 3 allowed monster symbols to go Unicode, I can see my
    modules using "å" for a lesser celestial and "Å" for a greater one...that
    would free up plain "A" for use with another monster category. It would
    also form a good parallel to other "lowercase = lesser/upper case = greater"
    pairs (especially demons). Finally, the "ring as halo" is a memorable
    graphic touch which corresponds nicely to your "ô for wizard Orc"
    example.Only trouble is, few non-Scandinavians would be able to look up the
    monster memory for celestials if I used the marked letter
    consistently...*shrug*


    --
    ----
    Ingeborg S. Nordén
    (runelady@chorus.net)
    Ek Ingwibergô stabaz fahiðô
  18. Archived from groups: rec.games.roguelike.development (More info?)

    "Ingeborg S. Nordén" <runelady@chorus.net> wrote in message
    news:42862330_3@newspeer2.tds.net...
    [...]
    > Hmmm. If T-Engine 3 allowed monster symbols to go Unicode, I can see my
    > modules using "å" for a lesser celestial and "Å" for a greater one...that
    > would free up plain "A" for use with another monster category. It would
    > also form a good parallel to other "lowercase = lesser/upper case =
    greater"

    I associate a with ants, so å to me is like a holy ant or something, lol.
    But Å for celestial is a good idea.

    > pairs (especially demons).

    What's the lower case of '&' ? ;)


    > Finally, the "ring as halo" is a memorable
    > graphic touch which corresponds nicely to your "ô for wizard Orc"
    > example.Only trouble is, few non-Scandinavians would be able to look up
    the
    > monster memory for celestials if I used the marked letter
    > consistently...*shrug*
    [...]

    You can have the following feature for monster memory, then: The same way
    that you'd have to scroll through different color monsters, scroll through
    the different modified versions of the letters. (You can have a 'search
    results' page or a key such as PgDown that shows the next monster depicted
    by that letter).

    --Nolithius
  19. Archived from groups: rec.games.roguelike.development (More info?)

    "Nolithius" <Nolithius@hotmail.com> wrote in message
    news:Ayshe.1096$M36.880@newsread1.news.atl.earthlink.net...
    >
    > I associate a with ants, so å to me is like a holy ant or something, lol.
    > But Å for celestial is a good idea.
    >
    >> pairs (especially demons).
    >
    > What's the lower case of '&' ? ;)

    The roguelikes I play (Angband and its derivatives) have used 'U' for
    greater demon, 'u' for lesser demon for years; I haven't seen '&' for demons
    since the late 80s/early 90s. Since ToME is an Angband derivative, it too
    has 'U/u' for the demon pairs; 'Å/å' for celestials of varying strength
    would make sense there (especially with some weak ones existing in my T-Plus
    module already).

    > You can have the following feature for monster memory, then: The same way
    > that you'd have to scroll through different color monsters, scroll through
    > the different modified versions of the letters. (You can have a 'search
    > results' page or a key such as PgDown that shows the next monster depicted
    > by that letter).

    Ooooh, cool idea. :-) I swear, if I had the technical ability to code a
    whole variant...that feature would be in it.


    --
    ----
    Ingeborg S. Nordén
    (runelady@chorus.net)
  20. Archived from groups: rec.games.roguelike.development (More info?)

    Ingeborg S. Nordén wrote:
    > Only trouble is, few non-Scandinavians would be able to look up the
    > monster memory for celestials if I used the marked letter
    > consistently...*shrug*

    You'll want to separate the display character from the lookup character
    (isn't that done anyway in *bands, also affecting genocide?) ... use
    plain a and A. Of course, your A and A-halo monsters will then appear in
    monster memory together in one unit, with all monsters in both
    categories being stepped through by using /A to do lookup. That's better
    than some of them being accessible only in certain countries. ;)

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  21. Archived from groups: rec.games.roguelike.development (More info?)

    Nolithius wrote:
    > What's the lower case of '&' ? ;)

    *band demons are u and U -- horns, get it? & makes more sense as a snake
    or some other weird coiled-up thing. Even a drake perhaps.

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  22. Archived from groups: rec.games.roguelike.development (More info?)

    "Twisted One" <twisted0n3@gmail.invalid> wrote in message
    news:Wd2dnXqhr8XwbBvfRVn-hw@rogers.com...
    > Ingeborg S. Nordén wrote:
    >> Only trouble is, few non-Scandinavians would be able to look up the
    >> monster memory for celestials if I used the marked letter
    >> consistently...*shrug*
    >
    > You'll want to separate the display character from the lookup character
    > (isn't that done anyway in *bands, also affecting genocide?) ... use plain
    > a and A. Of course, your A and A-halo monsters will then appear in monster
    > memory together in one unit, with all monsters in both categories being
    > stepped through by using /A to do lookup. That's better than some of them
    > being accessible only in certain countries. ;)


    T-Engine (the basic code for ToME and its modules) currently doesn't require
    typing a character to genocide monsters: the player just clicks on a square
    occupied by a monster of an appropriate type, which is a blessing for those
    of us who prefer tiles to ASCII mode. Since my modules will use T-Engine,
    the only time that new symbols would cause problems is when the player
    accesses monster memory. And if some "base" monster category gets assigned
    to a modified letter, then perhaps Nolithius' suggestion for handling them
    might work best.


    --
    ----
    Ingeborg S. Nordén
    (runelady@chorus.net)
  23. Archived from groups: rec.games.roguelike.development (More info?)

    Ingeborg S. Nordén wrote:
    > T-Engine (the basic code for ToME and its modules) currently doesn't require
    > typing a character to genocide monsters: the player just clicks on a square
    > occupied by a monster of an appropriate type, which is a blessing for those
    > of us who prefer tiles to ASCII mode. Since my modules will use T-Engine,
    > the only time that new symbols would cause problems is when the player
    > accesses monster memory.

    Of course, the most common situation for accessing a monster in monster
    memory is when there's an example on the screen, too -- and I guess
    'l'ook and then 'r'ecall will still work. :)

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
  24. Archived from groups: rec.games.roguelike.development (More info?)

    Twisted One wrote:
    >The major issue that remains is that using untypable characters
    >for monsters will make looking them up in monster memory nontrivial.

    How hard is it to design the cursor or map directed lookup, as in
    crawl,
    NH (rather than relying on ability to type the same symbol displayed as
    the creature)?
  25. Archived from groups: rec.games.roguelike.development (More info?)

    On 17 May 2005 12:22:37 -0700, "jasonnorthrup@yahoo.com"
    <jasonnorthrup@yahoo.com> wrote:

    >Twisted One wrote:
    >>The major issue that remains is that using untypable characters
    >>for monsters will make looking them up in monster memory nontrivial.
    >
    >How hard is it to design the cursor or map directed lookup, as in
    >crawl,
    >NH (rather than relying on ability to type the same symbol displayed as
    >the creature)?

    Angband already has that, as well, but sometimes you want to look
    something up when it isn't in sight. But there are variants that take
    care of that, as well, offering a scrollable list of monster types.

    So, what it really means, is a little more UI work that some people
    would be glad to see anyway.

    --
    R. Dan Henry = danhenry@inreach.com
    Dance, Puppet, dance!
    But why are there *humans* dancing for the puppet?
  26. Archived from groups: rec.games.roguelike.development (More info?)

    jasonnorthrup@yahoo.com wrote:
    > How hard is it to design the cursor or map directed lookup, as in
    > crawl,
    > NH (rather than relying on ability to type the same symbol displayed as
    > the creature)?

    That works until you want to look up information on a creature when
    there isn't an example handy to aim at.

    In Angband, at least, killing a monster for the first time with a char
    adds to your knowledge of it but also removes it from the display. If
    there isn't another one around you need to type its symbol to look it up
    and find out, say, how much XP it just netted you.

    Crawl, OTOH, has no monster memory feature that I could discover.

    Anyway I provided two suggestions for lookup of monsters given untypable
    symbols (or symbols untypable in some geographic regions):

    1. Visual lookup when there's an example in view to target, of course;
    2. Each creature has a plain-ASCII symbol as well, which is used for its
    "genociding race" if applicable and for its lookup category. (Or the
    lookup can be made to accept full monster names and substrings
    thereof, ADOM style.) In the case of an accented letter the obvious
    symbol to use for this is the unaccented version. For "weird things",
    a catch-all letter not otherwise used, say 'x', can be the
    plain-ASCII alternative symbol. An alternative symbol also provides
    portability to platforms where you for whatever reason can't support
    full Unicode. You can gracefully degrade by showing the plain ASCII
    symbol instead of the fancy symbol. (This is similar to how having
    both ASCII and tile support tends to be handled, and how genocide and
    lookup are handled with tile support, in *bands anyway. Think of the
    unicode chars as a tile set.)

    --
    http://www.gnu.org/philosophy/right-to-read.html
    Palladium? Trusted Computing? DRM? Microsoft? Sauron.
    "One ring to rule them all, one ring to find them
    One ring to bring them all, and in the darkness bind them."
Ask a new question

Read More

Development Keyboards Graphics Video Games