Temple of The Roguelike Forums
Development => Programming => Topic started by: Etinarg on July 20, 2010, 02:38:12 PM
-
I'm wondering how to group the ASCII symbols into "sets" of related symbols, so that players quickly get an idea what a new symbol might be about. I tried to group them, but I'm not entirely pleased with the chosen groups:
Shops? 0123456789
Beings? abcdefghijklmnopqrstuvwxyz
Beings? ABCDEFGHIJKLMNOPQRSTUVWXYZ
Items? ?!"§$&/()[]{}=`'^°*~-_|\
Terrain? .,;:
Features? +´<>#%
Players? @
I'm not sure if the § is normally used in roguelikes? Also the group of ´`and ' seems odd, maybe use only one of these? The ~ seems to be an item symbol in some roguelikes and a terrain in others?
Are there usable ASCII symbols that I have forgotten in the list?
How do you group the characters in your roguelikes?
-
I tend to lean towards something very similar to the list, with the exception being that I've replaced shops with letters, for clarity -- it's a lot easier to think "where's the blacksmith?" and look for a big blue letter B in a wall, rather than trying to remember if it's number 2 or 3.
I think the items/terrain/features sections tend to be fairly interchangable, though; I personally think there's nothing better than ~ to represent water, for example, though some RLs use that for items. And * is useful for some terrain features, though if I recall correctly it's also used in Angband/ToME (I forget if it's one, the other, or both!) to represent orbs of light, and also in ToME for alchemy essences; not such a big deal though, since the colour chosen usually makes it clear which is which.
So in conclusion, personally I just go for whatever seems appropriate at the time, with a few exceptions set in stone such as # for walls, . for floors, @ for the player (other humanoids are 'p' for person, rather than being confusing with multiple @'s), and so on. As long as things are used in a fairly clear context, then there can easily be some bleed-over between categories without adding confusion. :)
-
I agree on the ~ water idea. The * is a wall treasure in Angband, I believe, and I seem to remember the essence thing from Tome, too. I assume both the ~ and the * can be color coded to make the use clear (water should be blueish).
The numbers for the shops I found confusing too. Maybe I will rearrange that.
Thanks for the feedback that helps a bit to sort my symbols :)
-
Tools in Nethack are (.
" is a universal symbol for grass.
" seems to be a good idea for grass. In vanilla Angband (and I think in Moria too) the " were amulets.
What do other roguelikes use for amulets then?
-
What do other roguelikes use for amulets then?
Nethack has also " for amulet. But they are all wrong. " is grass.
-
I've checked the Angband item types:
, : Food, Mushrooms
| : Edged weapon
\ : Hafted weapon, Shovel, Pick
/ : Polearm
} : Sling, Bow, Crossbow
{ : Ammo
] : Armor
( : Armor
[ : Armor
) : Shield
= : Ring
" : Amulet
? : Scrolls, Books
! : Potions
- : Wands, Rods
_ : Staffs
~ : Junk, Chest, Torch, Bones, Some magic light sources
$ : Treasure
& : Pile of mixed items.
§ : Not used
' : Not used (too similar to ` and ´ maybe?)
° : Not used (Is this 7-Bit ASCII ? Edit: No, and § also isn't)
Also, are there symbols that other roguelikes use better? The Angband symbol use seems a bit strange sometimes, particularly if I look at the things within the armor class that have 3 symbols but I can't figure out the logic of the assignment.
-
The Angband symbol use seems a bit strange sometimes
Because Angband sucks. In Nethack there actually is some kind of logic, but with ascii you are always in trouble.
-
I'm wondering how to group the ASCII symbols into "sets" of related symbols, so that players quickly get an idea what a new symbol might be about. I tried to group them, but I'm not entirely pleased with the chosen groups:
There's obviously no immutable canon to go by, except maybe that letters represent creatures. This is how thigs are orginized in my game Squirm:
THE HERO is a greek alpha, and CORPSES are greek omega signs.
ORGANISMS are represented by uppercase letters. Letters with long stems (BDEF...) are humanoids, the rest are animals, monsters and vegetation.
TERRAIN/FEATURES are punctuation marks: .:,;!¡?
WEAPONS are left brackets: ([{
ARMOUR are right brackets: )]}
DOORS/PORTALS/OBSTACLES are mathematical operators: +±÷<>=
STUFF is represented by various, leftover signs.
I'm not sure if the § is normally used in roguelikes?
In most games, S are snakes. Thus, § should represent copulating snakes.
As always,
Minotauros
-
I see. I expected minor differences in the characters, but since all the roguelikes evolved from one source, I thought there would be more similarities there.
So, thanks for showing the big diversity :)
-
I personally like ADOM's symbol set best, since it simplifies a lot of groups (only one symbol for all armours for instance) whilst using generally recognisable symbols for most items. It also uses colour well to make it fairly obvious if something is terrain or an item. The importance of good colour choices should never be underestimated (otherwise you'll end up with something ugly like Dwarf Fortress).
-
Because Angband sucks.
Hey, I like Angband more than Nethack :)
-
I personally like ADOM's symbol set best, [...] It also uses colour well to make it fairly obvious if something is terrain or an item. The importance of good colour choices should never be underestimated [...]
I'll see if I can find documentation about the symbols in ADOM. I never played it so far.
Colors are quite important to me. I'm not sure if I'm good at choosing colors, but it's something I'll care about for sure. Particularly with such abstract aesthetics like ASCII.
-
ADOMs itemset:
[ Armor, shields, cloaks, boots, girdles, gauntlets and helmets
* Gems and rocks
] Tools (keys, writing sets, elemental orbs, and various other things)
' Necklaces
( Melee weapons (all of them)
} Missile weapons (bows, crossbows, slings)
/ Missiles (arrows, quarrels, etc)
= Rings
\ Wands
! Potions
? Scrolls
~ Bracers
% Food (inc corpses and herbs)
$ Gold
{ Musical Instruments
" Books
Most items have certain colour sets to represent certain types (wooden weapons are brown for instance), whilst artifacts tend to be particularly identifiable based on their colour.
Monsters are almost all represented by upper or lower case letters. Important NPCs (including shopkeepers) tend to be @, whilst demons are usually &. The letter/monster grouping is a bit odd but functional - various races are generally grouped into a letter type, with colour distinguishing between individual types. For instance many small humanoids are h, whilst giants are H. Lesser undead are z, and more powerful undead Z.
Terrain is mostly . and # with different colours for terrain type. Also used are T for trees and = for water. The world map also uses various symbols like ^ for mountains and ~ for hills.
There's various faults I'd raise with it too (like arrows and open doors looking the same), but it's mostly very functional, and importantly I think the aesthetics of the colour and symbol choices work very well.
-
Thanks for the overview, this is quite helpful :)
How many colors does ADOM use? It seems there is a traditional limit of 16 colors, since many terminals used 16 (fixed?) colors, but I could imagine that more modern roguelikes expanded beyond that.
At the moment I have 14 colors defined, but I might go and rework that list.
-
ADOM uses the standard 16, though some colours (like the cyans and magentas) see very little use. It never uses different background colours - always black.
Going beyond the normal terminal colours means using a different display library than the standard and easily portable curses. A popular choice is libtcod (which has a large number of other extras). Haing more colours is very nice since terminal colours are horribly restrictive. One problem though is when games go colour mad and try using the full palette with lots of shading etc - can produce some very ugly games. On the other end of things some developers spend more time creating immensely pretty settings, but ultimately don't spend enough time on basic gameplay and features, never getting a real game released. It's easy to get stuck in the 'tinkering with colours' trap. Personally I think keeping it simple is best, both for development ease and player interpretation. Too much detail can be bad.
-
At the moment I render my game to a graphical context, so I'm free to choose colors. Only questions of tradition, usability and such are to be guidelines.
Also, I'm not really working on a specific game right now. The question I pose here are kind of research. I have never made an ASCII based game so far, only tile based games. Actually I made tiles for ASCII based games, like in my Iso-Angband try ;) So there is a lot of things about ASCII that I want to learn first.
Do you have links to the "extremely pretty" settings, or game suggestions for such research? I'd like to take a look, to learn what works well, or how the people use ASCII and colors to the best effect.
-
I suggest you check out Brogue, it's ascii and beautiful :)
It's also very funny to play if you havn't already.
(http://www.file-pasta.com/thumb/c0c85676cf6cce85712729fd9aca926edd2451d2.jpg) (http://www.file-pasta.com/file/0/brogue.jpg)
http://sites.google.com/site/broguegame/
-
Thank you for the suggestion! Looks interesting, although I think someone told me that I should not use background colors other than black with my project ...
I think I have now found a set of 16 colors that are somewhat good looking and well distinguishable. I don't want to go beyond 16 colors for my experiments.
I'm working on assignments of symbols and game elements, and found that is is somewhat tricky.
-
Going beyond the normal terminal colours means using a different display library than the standard and easily portable curses.
I am not sure if you mean to include ncurses or not, but ncurses supports, dependent on terminal capabilities, both more than sixteen colors as well as redefining colors by specifying arbitrary RGB values. That is in addition to the other attributes many terminals support such as standout, dim, bold, reverse, underline, etc.
Of course, if one chose the ncurses library to provide portability, then to make the display both aesthetic and functional on the widest variety of terminals one would need to pride some sort of fall-back strategy.
I redefine my colors to be a little better suited to my world, but I try to keep them roughly in-line with the standard eight terminal colors and their brighter variants so in the case that I cannot redefine colors on some terminal I do not get a really bizarre looking map. To nicely support more than sixteen colors I just use a bitmask on the palette index to strip it down to the correct size for that terminal. Since I know that color 23 will fall back to 7 in sixteen color mode as well as eight color mode I make sure that color 23 is similar (or at least will make sense) as color 7. I only redefine the standard eight and brights to make them "nicer" but if the terminal doesn't support that it's no problem.
By the by, I'm a RL developer who has recently come out of the closet. I've been harboring ideas and code snippets for years, nay decades, and just recently decided to do something about it. Hence, this is my first post ever to the RL community on any fora or newsgroup despite having read r.g.r.d for too many years to count.
-
Welcome to the Temple aBeing---it'll be interesting to see what you come to cook up an think up! 8)
-
Nice approach, aBeing. Most people consider working in 256 colours with ncurses to a painful experience, especially where portability is concerned, but your idea is quite sensible.
Good to see another dev popping up - let us know about your projects some time :)
-
I found a few symbols that are not 7 bit ASCII, but seemed available on many systems: « » ± ¥ £
Are there known problems with those? I mean, systems which are still in use, and cannot display those?
-
Resources for those who want to use a very extended character set in roguelike games.
http://roguebasin.roguelikedevelopment.org/index.php?title=Unicode
http://roguebasin.roguelikedevelopment.org/index.php?title=Ncursesw
-
Besides these technical aspects, you still need fonts with the required glyphs. Unicode inside the program will not help much if the font used for display does not have the glyph.
Problem is that many fonts are platform specific, and almost all fonts are lacking some glyphs - and if you as a programmer do not know which glyphs will be lacking on which system, you have a problem if you use those for something important.
This was why I asked about the glyphs shown above. I think those are in most fonts, but I'm not sure. Under the hood my roguelike game kit uses unicode, but that doesn't help much with the glyph availability problem of the fonts.
-
While there are a lot of fonts that don't have those (or any non-ascii) glyphs, as far as I know there are very few systems which, by default, use such a font in their default setup for term programs. In any Unicode locale, I'd be comfortable with assuming AT LEAST all of latin-1 and latin-2, plus most of the operators from the mathematics area.
-
I agree on the ~ water idea. The * is a wall treasure in Angband, I believe, and I seem to remember the essence thing from Tome, too. I assume both the ~ and the * can be color coded to make the use clear (water should be blueish).
The numbers for the shops I found confusing too. Maybe I will rearrange that.
Thanks for the feedback that helps a bit to sort my symbols :)
For water cells, you can use the ASCII character number "247". That is a duble "~": "≈". That is used in Dwarf Fortress and looks better since it makes the water pool to look more dense.
Also, I found some roguelikes that uses the "~" to represent bandages.
-
Strictly seen character number 247 is not ASCII. ASCII is only 7 bits, 0...127
It's a nice character for water, just as with all "high" characters suffers the question of portability - if it will display correctly on all systems.
But maybe these problems are now past. It seems a good number of roguelikes use unicode or other sorts of extended character sets with good success.
-
Strictly seen character number 247 is not ASCII. ASCII is only 7 bits, 0...127
It's a nice character for water, just as with all "high" characters suffers the question of portability - if it will display correctly on all systems.
But maybe these problems are now past. It seems a good number of roguelikes use unicode or other sorts of extended character sets with good success.
I don't think you have problems with Linux Systems und that character.
I don't have right now installed a penguin on my computer, but you can just ask someone to try a simple program that writes that character on console and tell you if it does exist.
In the other hand, FreeBasic (and surely C too), has a serie of libraries to implement a more advanced version of the simple print or printf, independently of the system font's, unicode, or whatever. The first example that comes to my mind is XFonts (for FreeBasic), and probably FreeType can be usefull too for this purpose, although i never messed up with this last one. And they are 100% portable.
Whatever it be, a blue "~" always (wants to) mean "water cell".
The only problem comes when you use such symbol for bandages or something that has a kind of wave or torsion in it's form. Only color coding, as you say, could save the troubleshoot. ;-)
-
Nice to see another one making roguelike-development using FB.
I'm learning as I try but someday (not to far away) I'll give it a go and try to make a roguelike.
Are you developing something right now?
-
Nice to see another one making roguelike-development using FB.
I'm learning as I try but someday (not to far away) I'll give it a go and try to make a roguelike.
Are you developing something right now?
Yes. Developing a Roguelike with a "classical" looking (i.e. looking like rogue or larn), but with certain special features that I will not reveal.
-
Yes. Developing a Roguelike with a "classical" looking (i.e. looking like rogue or larn), but with certain special features that I will not reveal.
Cool. Good luck coding and hope some day we can try it out.
-
This is a useful thread, particularly because this question gets asked from time to time by new members. I even search for this thread on some occasions as a reference. So, I propose that we sticky this thread for easy access :)
Second, I just realized that Rogue's symbols have been totally unmentioned here! Well, here they are, ripped verbatim directly from the original manual:
@ This symbol represents you, the adventurer.
-| These symbols represent the walls of rooms.
+ A door to/from a room.
. The floor of a room.
# The floor of a passage between rooms.
* A pile or pot of gold.
) A weapon of some sort.
] A piece of armor.
! A flask containing a magic potion.
? A piece of paper, usually a magic scroll.
= A ring with magic properties
/ A magical staff or wand
ˆ A trap, watch out for these.
% A staircase to other levels
: A piece of food.
A-Z The uppercase letters represent the various inhabitants
of the Dungeons of Doom. Watch out, they can be nasty
and vicious.