Sign in with
Sign up | Sign in
Your question

Why no non-keyboard characters?

Last response: in Video Games
Share
Anonymous
May 13, 2005 3:23:07 AM

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.

More about : keyboard characters

Anonymous
May 13, 2005 4:31:51 AM

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.
Anonymous
May 13, 2005 4:31:52 AM

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."
Related resources
Anonymous
May 13, 2005 5:13:46 AM

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*
Anonymous
May 13, 2005 6:30:56 AM

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
Anonymous
May 13, 2005 10:17:12 AM

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
Anonymous
May 13, 2005 10:34:36 AM

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."
Anonymous
May 13, 2005 1:50:35 PM

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

How hard is it to design the cursor/map selected query, as in crawl,
NH?
Anonymous
May 13, 2005 2:19:16 PM

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.
Anonymous
May 13, 2005 3:01:44 PM

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
Anonymous
May 13, 2005 4:58:12 PM

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."
Anonymous
May 13, 2005 7:07:25 PM

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

so to conclude..

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

thanx


vooood
Anonymous
May 13, 2005 7:22:35 PM

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/ms...

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



vooood
Anonymous
May 13, 2005 7:56:12 PM

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/ms...
>
>
> 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 :) 
Anonymous
May 13, 2005 9:55:29 PM

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

"vooood" <vooood@IHATESPAMgmail.com> wrote in message
news:D 628qg$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
Anonymous
May 14, 2005 2:43:58 AM

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."
Anonymous
May 14, 2005 3:31:42 PM

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ðô
Anonymous
May 14, 2005 11:44:32 PM

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
Anonymous
May 14, 2005 11:44:33 PM

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)
Anonymous
May 15, 2005 6:52:02 AM

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."
Anonymous
May 15, 2005 6:53:13 AM

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."
Anonymous
May 15, 2005 6:39:07 PM

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)
Anonymous
May 16, 2005 2:09:01 AM

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."
Anonymous
May 17, 2005 4:22:37 PM

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)?
Anonymous
May 18, 2005 3:31:21 AM

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?
Anonymous
May 18, 2005 1:14:05 PM

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."
!