Friday, June 20, 2008

Two Hundred and Fifty-Three Sided Dice

Anyways that roofing stuff gave me time to think about the game.

And I was sorta stuck anyways 'cause I hit a wall where I needed to think up a lot of crap at once.

Like specials for every single kinda guy and how exactly to do combat in a game with infinite levels and attributes and all the item stuff with weapons and armor and the monster junk and how exactly I wanna do the "level-up" stuff.

'Cause I need to do all that stuff in one pass so I can play the game a little and see what I need to nudge around some.

I don't gotta do it perfect and do all the icons for specials or anything on the first pass, though, y'know, 'cause its easy to go back and soup things up once you've brought the monster to life.

But its still a lot of junk to think about at once.

I got what I think is a totally cool idea for how to do combat but I never seen nobody do anything like it so I can't wait to put it in and see what it ends up feeling like.

What I'm planning on doing is using your attribute scores as the Max Value for random number generation.

Like, let's say your Dexterity is 251 after all things are considered (bonuses from items and all that).

And your Luck is 154.

You'd basically have a 251-sided dice you rolled whenever you used your Dex, and a 154-sided dice your rolled whenever you used your Luck.

So you might roll anything between a 1 and 251 for any equation that involved your Dex, and a 1 to 154 for your Luck.

And then I could use your character's Level as something to tack on there, either as a Minimum for the random roll, or as an adjustment for the end result or a combat equation, so that you were always guaranteed to do a little better as you got bigger.

Which would be mitigated by the Level of the enemy you were fighting, 'cause he'd have his own equations involving his Dex and stuff to try to avoid your attacks and all that, and then he'd add his Level on to that mess to adjust stuff.

So like, a very basic equation for hitting a guy might look something like this:

Player Character: (1-to-Dex) + (1-to-Luck) + Level= Player's To Hit Score


Monster : (1-to-Dex) + (1-to-Luck) + Level= Monster's Dodge Score

And if your To Hit score was way above the Dodge score, by some percentage, then mebbe it'd be a critical hit.

And a Humanoid (like the Player Characters) might not only Dodge, he might also Parry (if he's got a melee weapon) or Block (if he's got a shield), and then there' s the Damage Calculation afterwards, which would be modified by your Strength if you were using a melee weapon, or a flat range for ranged weapons (that's why they need crits to do anything exciting), versus the "toughness of the monster's armor" and whatever (his Constitution would be involved, Constitution needs love), and blah blah blah.

And I might make it more complicated than that, by giving weapons and armor a "weight attribute," and using your Strength to mitigate that, in order to simulate the speed at which a dude could put a weapon into position (which would give Strength some extra love in the equation, although the accuracy of the "final position" would be Dexterity's Jurisdiction, some weapons are just too damn heavy for a weak guy to use no matter how coordinated he is), and have heavy armor affect your ability to Dodge, and I know I need to "weight" Luck (by dividing it by some number) to make it have a weaker effect on the equations if I'm gonna use it in every equation or else combat would favor Luck way too much over all the other attributes (and I was thinking of giving Lucky Characters a Special that allowed them to randomly use their Luck score in the place of another attribute anyways).

And there's some other stuff with that whole thing that I'm thinking about, like the opposite of a critical hit, when you totally duff it, or what the hell a Critical Dodge or Parry or Block might do.

But I think that's how I'm gonna do it.

I'd also like to make some cool little thing that showed you your character's rolls (and your buddies' rolls) in a way that wasn't totally annoying, y'know, something smooth that didn't slow the speed of the game down with all that minutia, 'cause its cool to watch dice and see how lucky you get and shit so you can groan when you roll crappy and cheer when you really blow the top off the thing heh.


Squash Monster said...

That sounds like it will work. It'll be swingy as all hell though so make sure you need to roll a given thing more than once during a combat.

Also, you mention making level effect your rolls somewhat. I think you should use Luck for that.

What you could do is make it so every time you roll anything, it also rolls 1-Luck and that's your minimum roll for the real roll. And if your minimum roll ends up higher than your maximum roll it just doubles your maximum roll until it's high enough to fit.

So for most people Luck is just a little bonus that stops them from rolling really shitty.

But for the people who took Luck as their main trait, that doubling thing comes up all the time ('cause their real stats suck). So if they roll shitty and only double their max roll once or twice, their roll just sucks. But most of the time they get something a little higher than whatever they actually rolled. And occasionally they get lucky, which is appropriate.

Squash Monster said...

Dunno how clear that was so take this:

int roll(int max)
int min = random(1, luck)
while( min > max ) max *= 2;
return random(min,max)

Ole Bald Angus the Monk said...

I like your thing of using Luck for the minimum, that adds a layer of mitigation to bad rolls that doesn't completely rule out a totally bad roll ('cause you might still roll a 1 for that).

I dunno if I should double a max though, I think I might just do your thing with Luck for the min and then do a (if min>max { roll=min; } for that particular roll.

I think I'm gonna give 1st level Lucky guys a permanent class-defining special that randomly inserts their Luck in the place of another Attribute in the combat equations, so that'll give them their "jack-of-all-trades" thing and "lucky wobble," and make their other attributes work almost in the exact opposite way of what they do for everybody else (as something that brings up their average damage over time, sorta like a minimum, instead of their maximum).

"Level" is probably going to be a much smaller number than any attribute I put it in an equation with (since attributes start out higher and there's also going to be all kinds of items that add to your attributes), and since all combat rolls are a "dice fight" between a character and a monster, where both of them are trying to roll higher than the other, Level is something that gets completely canceled out of the equation if you are fighting something your size, or it becomes a -1 if you are fighting something a level bigger than you, or a +1 against something smaller, y'know?

Well, at least the way I did that basic equation, I could easily go in there and weight Level a little more or less, if I want to make "level difference between combatants" matter more or less.

But your attributes go up as you level too, so that will also provide some of that "Level difference" effect.

And attributes are also sorta "canceled out" in the dice fight against the thing you are fighting, the same way that level is.

I suppose I could calculate the difference between the character's stats and the monster's for each roll, before I do anything else, and use that for the mins and maxes, and that would tighten things up a lot more and not allow for the kind of humongous range that I would have in the original setup, if you rolled really bad for everything and your opponent rolled really well, but that would make all the rolls smaller and less sexy ahaha.

The other thing going on here that makes it even scarier than you are probably imagining is the way I did Hit Points, where they're averaged between your three physical stats, and they'll sorta keep in line with your stats as you level (every three points of phyiscal stats is another hit point, sass works the same way on the mental side), and what that does is bring back the old "one good stab with a dagger will kill a wizard" deal, which I like a lot better than the "chisel away at each other" kinda fight, but I gotta make sure my "dodge and parry defense systems" work pretty well or that won't be so fun heh.

And because damage is a separate "dice fight" from the "to hit" dealie, that'll mitigate an unlucky wobble some too, y'know, 'cause while you might get lucky and hit something that you shouldn't normally be allowed to hit, you might not put much of a dent in the thing.

And then there's the way that I can "cheese" the stats of the monsters up, which I can't imagine not doing, 'cause I wanna end up with something where a fight with something littler than you is pretty much a steamroll, and things should only start getting crazy when you get unlucky on an equal level fight, or you start going after things bigger than you.

The other thing to consider here is my death penalty, which right now is "half the gold in your pockets and a free trip to town where you can put the rest of it in the bank," which makes it okay to do some pretty nasty stuff in fights heh.

Y'know, with a death penalty like that, I don't feel too bad about some little kid who doesn't understand half of the words I used for things playing the game and getting killed a lot, 'cause he's still getting loot that he can use or sell (that I don't take) and experience points any time he does manage to kill anything.

And we do need some wobble to get back those rolls that make everybody groan and cheer and stuff, and to keep things from getting too repetitious, to keep smart folks from creating a pattern or formula that "always works" which they end up using to bore themselves to death.

But you're right, we don't need TOO much of that ahaha.

Loot distribution has a little bit to do with this, too, 'cause it sorta controls what size things people will want to hunt, but I think I'm gonna write a separate thing about that 'cause this is getting too long.