10/16/2012

on races

say you're an orc.  or, you were an orc.  you've gone off the straight and narrow (so to speak), given up a bit of yourself to become a stronger adventurer, exposed yourself to strange magic in a dungeon, and drunk a few under-the-counter potions that you hope will help you impress your lady friends.  between the dark red scales, viciously clawed hands, and serpentine tail you look more like a dragonkin now...  but everyone still greets you as an orc.  what?

this game is going to have lots of races.  orcs, dwarves, humans, wolfmen, and more exotic creatures like the golems and slimes.  race isn't exactly a single uniform slider that can be controlled by a single number.  so how does it get identified?  there's two basic solutions:

first, keep a 'bloodline' count for each racial archetype (human, orc, dragon, etc), and define it by what preset race you're closest to.  so humans are 100% human, orcs are 100% orc, and orckin have at least 25% human and 50% orc (or 25% orc and 50% human).  each time you get exposed to a type of mutative force, you gain or lose a chunk of the appropriate bloodline.  when you reach certain levels of a given bloodline, certain changes either kick in or go away; for instance, 10% dragon might give you horns, 20% might be clawed hands, 30 would be scales and 40 would be a tail.  if you go from 0 to 50, you gain horns, hands, scales, and tail.  if you get mutated another way and go down to only 30% dragon, you lose the tail.

this has a few problems from a gameplay perspective: how do you piss around with the fractions?  if you're 25% human, 25% orc, 25%dragon and 25% dwarf and drink a potion that adds 5% horse, where does that 5% come from?  1.25 from each of your existing?  if you just assign each bloodline a static number (rather than a percentage) you can calculate percentage easily enough...  but then you end up with things like a character that's 0.5% orc, 1.25% dwarf, 2.25% cat, 3% dog, etc, etc.  although, this could easily end badly, with characters becoming increasingly difficult to change as time goes on; while this could be good thematically, if the player only has the ability to gain demon wings after defeating demons at higher levels in the game, even a powerful potion could only move their race a fraction of a percent, since they would have already drank countless potions to get there.

you could go into things like introducing bloodline decay (eg, if you have 5 points in orc blood and 100 points in human blood, every day the orc blood goes down by one until you're free of it's taint), but that would require a lot of tweaking to see how fast things should decay, avoiding making it too high to make it impossible for characters to get the transformation they want without making it too low to make the decay worthless.  if a specific item or effect doesn't occur often enough, frustrated players can't get their dragon wings and quit.  and what about the people who want dragon wings, but not scales?

or, the second solution: just apply transformations on either an absolute  (use item x, transformation y always occurs) or random/semi-random (use item x, transformation w, y, or z all have a chance of happening) basis, and then 'audit' the players race.  essentially, this would require programming a flow chart:

does the player have humanoid legs, or something else?  (humanoid -> go to elfkin, humans, dwarves, imperials, plainsdwellers, etc) (else -> go to slimes, centaur, naga, etc) from humanoid, ask does it have fur?  (yes -> go to roamers, foresters, imperials, trolls, etc) (no -> go to humans, goblins, etc) and keep narrowing things down until you've narrowed them down to a specific race.  if they simply don't fit any of the categories (for instance: pointed ears, bright blue fur, reptillian claws, four tits and a giant throbbing tentacle cock), they either get classified as a 'mongrel' (for mundane differences; looking humanoid, but not quite being orc, elfkin, human, or etc), 'mutant' (for more bizarre mutations, as the one mentioned previously) or 'abomination' (for the guy that modifies their character to have a foot long dick growing out their forehead).

i think i prefer the second method - it would allow the player to custom pick their body modifications, it'd be overall easier to code, and i still wouldn't have a good answer for things like 99% dragon pc's or people that became 10% 10 races.



worked on organs some more tonight.  in addition to all the old stuff, the game now tracks your mouth, tongue, 'lungs', 'stomach', and tentacles, as well as tattoos and piercings.  the mouth thing should allow for features like fangs and tusks, tongue should allow for kinky blowjobs, lungs and stomach will be able to track things like ingested or breathed toxins (i figure, it could lead to some fun events like certain toxin-resistant races spiking their own drink with aphrodisiac, then handing it off to someone else).  tattoos and piercings should be obvious, but as a side note, tattoos will also include natural patterning, like tiger stripes or other fur and scale patterns.  'tentacle' is another sexual organ class, like dicks.  because all organs use the same basic format with variables identifying what body part they represent, they all share methods: lungs will have a 'get color' function, although it only applies to skin, hair, and the like.  still, the actual coding should be smart enough not to try and call for the color of a lung-type organ, so this shouldn't be an issue, and the method itself can always check to make sure the call is relevant to the organ type and return a specific answer as an error message if it's not.

on a side note, the existing system makes it much easier to add (or remove) certain organs from certain entities, so for all of those out there who hate furries, there'll be a file to swap out that turns all of the mean, nasty horse-like imperials into safely human half-giants by removing the lines that tell the game to generate fur, hoofed feet, a tail, and so forth.  it'll take a bit more work before races can actually be added via these files (there will need to be a way to tell the game how to identify that race, as an example), but eventually it should be possible.


1 comment:

  1. I enjoyed reading your musings on racial determination. My own game idea (still only a pipe-dream at this point) will use the percentage method you went over, but since it won't focus as much on character appearance/customization, it works a bit better for what I have in mind.

    Your flow-chart idea looks promising, and I look forward to messing around with it in-game once things get back to a playable point. Keep up the good work 'till then!

    ReplyDelete