Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)  (Read 7011 times)

G-Flex

  • Bay Watcher
    • View Profile
Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« on: November 17, 2009, 10:43:10 pm »

So I've started making a creature graphics pack.

The reason: I want to start playing the game using ASCII, but I like how extensible the creature graphics are. Without them, you can't properly differentiate between child and adult, undead and normal, and so forth, and a lot of creature share the same letter/color combination, even in the same biome.

On the other hand, graphical creature packs tend to look ugly sometimes (your mileage may vary, I guess), still have difficulty differentiating similar-looking creatures (lion vs. giant lion vs. tiger vs. leopard vs. giant tiger vs. giant leopard?), and at any rate, simply don't mesh well with an ASCII tileset.

So I decided to try my hand at a compromise, as I've mentioned before on at least one other thread, at some point.


The compromise: Pseudo-ASCII graphics made using a combination of two letters per tile, with use of some tricks to increase the information-density of each tile. Normally, all you have is character, case of that character, and color, but with two characters, you have both, the color, and the case of each one, exponentially increasing the number of possibilities. Also, since it's not really ASCII, you can throw other stuff in there as well, which I'll get to.


Basically, I've gone with a formulaic system of sorts.

Each creature has one of each of the following pieces of information associated with it:
  • Creature type
  • Adult / Child (babies usually aren't required; see below)
  • Normal / Zombie / Skeletal
  • Normal / Giant (giants are technically different creature types, but it helps to associate a creature with its giant version somehow)

How the formula works is as follows:
  • Creature type is determined by the letters (not their case) used and their color.
  • Adults have a capital first letter, and children have a lowercase first letter.
  • Non-undead have normal characters, zombies have diacritic marks applied to the bottoms of the letters, and skeletons have diacritic marks applied to the tops of the letters (sort of weird, but it should get recognizable and it's not a huge issue). On some letters (say, lowercase "q"), a diacritic at the bottom won't fit, but that's okay because there are two letters to work with.
  • Giant type creatures are the same as their normal counterparts, but they get an uppercase second letter.

So the majority of creatures just have fairly normal-looking symbols sort of like chemical elements: a dark grey "Gn" for a typical dark gnome, a bright yellow "Lp" for an adult leopard, etc (a leopard kitten would be "lp", a giant leopard would be "LP" and a giant leopard kitten would be "lP", which all looks better when it's in a decent monospace font, trust me).


I could easily also incorporate some other basic conventions. For instance, maybe all the animal-men get "m" as the second letter, and nobody else does, just as an example of being consistent. Some things might be tough, like finding letter/color combinations for the absurd number of sharks and gibbons. There are few enough gibbons to maybe use colors in order to do it, but there are way too many sharks to do that, so I'll probably need to give them different letter combinations too, unfortunately. Maybe I'll have them all start with "S", for instance, and make sure they're the only sea creatures who do.


Here's a basic proof of concept:


(100% magnification)

(200% magnification)


From top to bottom, left to right, we have alligators, sasquatches, lions, giant lions, dark gnomes, fire men, giant eagles, and blizzard wolves.

In order from left to right, each example has the normal version, the zombie version, the skeletal version, and the child version. I didn't make mockups of weird stuff like zombie children (I'm not sure those even occur), but if they're necessary it would be easy enough to do.

I used Terminus Bold at 12pt as the font for these, because it's the best one I could find. Unfortunately, they tend to run up against the side of the tile too much for my taste, but I'm not sure how to fix that. They don't really collide into each other, at least, because even though they tend to run into the right side of the tile, there's always room on the left.

The giant lion cub graphic looks a bit weird because it's a lowercase "l" mixed with an uppercase "I", and although they are differentiable in that font, it looks slightly weird. I could always just change lions to "Ln" though.

Most of the diacritics I end up applying by hand, since they tend to be unavailable for the letters I need. Not a big deal.


I have no idea how I'd handle babies, if I decide to mess with intelligent creatures' graphics. Maybe I won't mess with them at all; they'd stand out, but then again, they deserve to, and they wouldn't conflict with anything since even if elves are still "E", elephants are something else anyhow.

I also don't know how I'd manage professions; I've never played without creature graphics applied before, so I don't know how well the color-coding works. Do babies and children get their own color code? If that's all well and good, I might just leave it as-is.

There are also some other cases where you want things to stand out, like megabeasts and demons. Maybe I can just keep those as-is too to some degree, but I don't know how weird that would get in the next version.



If anyone has any comments or suggestions, I'd like to hear them. Another font suggestion, suggestions on how to otherwise differentiate things, pointing out anything I might have missed, etc. Or just tell me it looks like trash, but be gentle.
Logged
There are 2 types of people in the world: Those who understand hexadecimal, and those who don't.
Visit the #Bay12Games IRC channel on NewNet
== Human Renovation: My Deus Ex mod/fan patch (v1.30, updated 5/31/2012) ==

Halconnen

  • Bay Watcher
  • Danmaku Fortress
    • View Profile
    • Certaincake
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #1 on: November 18, 2009, 02:15:57 am »

Babies and Children default to a dark red color in ASCII, and they're normally very easy to distinguish from adults.
Logged

Doomshifter

  • Bay Watcher
  • Deal with it.
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #2 on: November 18, 2009, 02:33:08 am »

Babies and Children default to a dark red color in ASCII, and they're normally very easy to distinguish from adults.

Except for macemen, which leads to a lot of fun during town-massacres.
"Oh, it's just a child, pay it no mind WHY IS IT BASHING ME WITH A MACE OH ARMOK"
Logged
Add me on PesterChum! My chumhandle is doomedHermit.
Right now Rampages seem to be Godzilla quietly walking into Tokyo, biting the leg off of one reporter... then creeping off again without a sound.

Autodaf

  • Escaped Lunatic
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #3 on: November 18, 2009, 04:36:03 am »

I think that it is wonderful way how to convey information. There may be a minor problem with differentiating animals in large groups, but it should be limited to giant variants or child/babies. I can't really tell how it would look in the game itself, but it is a amazing idea.

Keep at it.
Logged

Deon

  • Bay Watcher
  • 💀 💀 💀 💀 💀
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #4 on: November 18, 2009, 07:02:18 am »

After Sphr has created his animals, I see no more "uglyness" in creature graphics. However I understand your desire to use ASCII symbols only, it makes the game to feel in a special way, so from that point of view it's a good decision. It's a clever move to use diactric marks to note undead/skeletal things, and while giant lion child looks like 1I , other things are OK.
Logged
▬(ஜ۩۞۩ஜ)▬
✫ DF Wanderer ✫ - the adventure mode crafting and tweaks
✫ Cartographer's Lounge ✫ - a custom worldgen repository

G-Flex

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #5 on: November 18, 2009, 01:56:47 pm »

Minor update:


I got annoyed at how a lot of the letters bordered the right side of the tile too much, because it would result in some potential illegibility; there should ideally be at least a pixel of background on either side of every tile.

Unfortunately, pretty much any font at that size is going to be one damn pixel too large for this to happen. So I manually edited the font myself to make all the letters 6 pixels wide at the largest (most of them were 7-8 before). This didn't really harm the font much, and I think it's worth it.

The only problem is that this is practically impossible to do for "W" and "M" in a way that actually looks good; those are still 7 pixels wide. However, this should only become a problem if I have to use a combination of those alone in a graphic, which probably won't happen, unless we have Giant Magma Men (MM) or something crazy like that.


And yeah, I'll probably just change lions to "Ln".


I'm going to do another mockup using the edited font and submit it for the approval of the masses soon. Some of the letters look slightly worse for wear, but I find them legible.
Logged
There are 2 types of people in the world: Those who understand hexadecimal, and those who don't.
Visit the #Bay12Games IRC channel on NewNet
== Human Renovation: My Deus Ex mod/fan patch (v1.30, updated 5/31/2012) ==

DennyTom

  • Bay Watcher
  • !!Urist!!
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #6 on: November 18, 2009, 02:13:12 pm »

Very interesting. Someone care to actually create screen or mockup?
Logged
It is so much easier to measure life in experience points...

G-Flex

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #7 on: November 18, 2009, 05:42:17 pm »

Very interesting. Someone care to actually create screen or mockup?

I might create a stupid mock-up at some point, but I'm still toying with things at the moment.



I decided that I didn't like how much the characters were up against the right sides of the tiles so much. I feel that there should always be at least SOME background space on the right and left side, even just a pixel.

Methods for dealing with this:
  • Use a different font entirely. This is tough, because there's pretty much no font that actually looks good at the required size. It's ridiculously annoying; pretty much any font is just a single pixel too wide. I'm not going to even try this unless I can get a good recommendation, since I couldn't find anything.
  • Manually edit the font to make the letters a bit narrower (6px each max). Tried this, created a mock-up of it. I could get all the letters down in size except capital "M" and "W", which are... challenging, but unless the creature is "WW" or "MW" or something, it should be fine. Might not look quite as good though, especially for complicated letters.
  • Remove the space between the letters inside the tiles themselves. I created a mock-up of this too, and it looks better than expected. Some combinations look a tad odd, but it might just work.


Here's the comparison image:



I intentionally focused on some of the more problematic combinations/letters, so it won't usually look this bad (hell, NOTHING in the game would probably use "x" right now).

Grey text is using the original font, but with the letters against each other. This is more legible than anticipated, but imperfect.

Yellow test is using the font as narrowed by myself (except "M" and "W"), with spacing to either side and in between the letters. Some letters look a bit off and in general the letters themselves don't look exactly as good as before, but it might be more legible.

I'm not sure which I'm going to go with, and I've looked at them too much myself over the past hour or so to be trusted with an opinion at the moment, so which one looks better to you guys? I'm leaning a bit towards the original font with the letters smashed against each other, because it's recognizable enough and makes the tiles a bit more cohesive, but I'm not positive.


Oh, here's another version with both fonts the same color, so that the different contrast doesn't put any bias on it:


Logged
There are 2 types of people in the world: Those who understand hexadecimal, and those who don't.
Visit the #Bay12Games IRC channel on NewNet
== Human Renovation: My Deus Ex mod/fan patch (v1.30, updated 5/31/2012) ==

G-Flex

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #8 on: November 18, 2009, 08:31:02 pm »

Okay, I have a crappy thrown-together screenshot with those graphics edited in, as they are now, one in each version.

Spoiler: images (click to show/hide)

Here we have a bunch of migrants traveling to the fortress with a bunch of puppies (dg), a musk ox (Mk), a donkey (Dk), a cat (Ct) and a dog (Dg). They're being chased by some rhesus macaques (Rh), including whatever you call the child version of a monkey (rh). There are also a giant cougar (CG) and giant cougar kitten (cG) to the south, which I forgot do not actually exist.

Top image is narrowed letters and the lower image uses the ligature-style letters. I'm still torn between the two styles, but these shots do show an advantage to the ligature-style ones, in that they make it more clear which tile is which (see: the rhesus macaque and rhesus macaque child standing next to each other).

It's certainly a bit busier than the regular graphics, but it could work. Keep in mind that this would be more legible during actual gameplay, since creatures are normally either moving around or have some kind of status symbol(s) applied, or are prone or sleeping or whatever.
Logged
There are 2 types of people in the world: Those who understand hexadecimal, and those who don't.
Visit the #Bay12Games IRC channel on NewNet
== Human Renovation: My Deus Ex mod/fan patch (v1.30, updated 5/31/2012) ==

phi2dao

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #9 on: November 19, 2009, 04:09:55 pm »

I think I like the ligature style letters more.  The quite readable, and, as you said, they make it easier to tell which tile the creature is in.

Making the M and W look good in that style looks like it will be a problem though...
Logged

G-Flex

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #10 on: November 19, 2009, 04:15:06 pm »

I might just bite the bullet and make both styles.

The only problem is how much goddamn work this is going to take. Lots of tedious cutting and pacing. I have half a mind to just figure out how to write a C++ program to paste the letters together after parsing a file containing them written out.


Ironically, I'm going to leave the most important creatures alone for the most part, since I'm cool with things like entity-forming creatures and (semi)megabeasts having a single letter, provided there's no ambiguity. I need to do more research, though, since I'm not used to playing with just ASCII.
Logged
There are 2 types of people in the world: Those who understand hexadecimal, and those who don't.
Visit the #Bay12Games IRC channel on NewNet
== Human Renovation: My Deus Ex mod/fan patch (v1.30, updated 5/31/2012) ==

DennyTom

  • Bay Watcher
  • !!Urist!!
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #11 on: November 20, 2009, 05:47:24 pm »

This actually looks pretty usable! Can not wait for more progress from you.
Logged
It is so much easier to measure life in experience points...

G-Flex

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #12 on: November 21, 2009, 06:08:31 am »

Thanks.

I don't have any example images at the moment because it's really late and I cannot be bothered looking for one, but I'm working on a way to differentiate trianed (war/hunting) creatures from the others. Currently I'm thinking of doing it by having a sort of overlay pattern placed between the foreground (letters) and the background.


I have some more programming to do by then, though. On the plus side, when I'm done with that, it'll be a piece of cake to make both versions (narrowed characters and ligated characters), or otherwise use different character sets.
Logged
There are 2 types of people in the world: Those who understand hexadecimal, and those who don't.
Visit the #Bay12Games IRC channel on NewNet
== Human Renovation: My Deus Ex mod/fan patch (v1.30, updated 5/31/2012) ==

Bricks

  • Bay Watcher
  • Because you never need one brick.
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #13 on: November 21, 2009, 03:00:31 pm »

Native support for this would be sexy.  Very cool idea.
Logged
EMPATHY - being able to feel other peoples' stuff.

Aeltar

  • Bay Watcher
    • View Profile
Re: Pseudo-ASCII Digraph Creature Graphics (proof-of-concept, WIP)
« Reply #14 on: November 21, 2009, 09:59:01 pm »

I love it!  I prefer the ligatured style as well, but it would be nice having an option to use both.  I can't wait until this is completed - I plan on using it by default.
Logged
Pages: [1] 2