buttonmen-dev / buttonmen

Buttonmen - an online dice game
Other
16 stars 24 forks source link

Play with a randomly-generated button #779

Closed jimmosk closed 8 years ago

jimmosk commented 10 years ago

The previous site had an option to create a game where the players had randomly-generated buttons, with different skill-densities ranging from no skills (though perhaps one Swing die?) up to what I think was termed the CRAZY level (most dice having one or more skills).
Can someone recall what those levels of skill-density were? And more importantly, I'd officially like to request this functionality be added. [edited title to make clear I didn't mean simply selecting an existing button randomly]

irilyth commented 10 years ago

The old site's options and definitions were a little (heh) random. Among other things, the "type" was different if you picked RandomBM on a Create Game page vs on a Create Tournament page.

I have notes on this, for whatever reason, sorted by (my opinion about) how crazy they really are:

Create page     Tournament page  Description

Vanilla         (nothing)        5 Dice, no Swing, no Twins, no Skills
Soldier Type    Soldier Type     4 Dice, X Swing, No Twin or Option Dice
Fantasy/Foglio  Fantasy/Foglio   4 Dice, Swing
Anime           Anime            4 Dice, 4 reserve dice, Twins possible

Fixed           Fixed            5 Dice, no Swing, One skill on 2 Dice from cfd
Mixed           Mixed            5 Dice, no Swing, Three skills on 2 Dice each
Standard        Expansion        4 Dice, Swing, One skill on 2 Dice
Multi           Double Set       4 Dice, Swing, Two skills on 1 or more Dice
Freaks          Freaks           4 Dice, Swing, Three skills on 1 or more Dice
CRAZY           CRAZY            4 Dice, Swing, Five skills on 1 or more Dice

I'd be happy to have opinions about options and names for this.

blackshadowshade commented 10 years ago

So, apart from general discussion on this, I'd like some discussion on the mechanics of generating such a recipe.

For example, how would die sizes be selected? Which skills might appear?

irilyth commented 10 years ago

Die sizes could be one of the parameters: "Standard" polyhedral (4 - 30), any number from 1 - 30, or some other options.

For skills, it might make sense to divide the available skills into categories, such that "more weird" options would have more of the wacky skills, and "less weird" options would have more of the normal ones.

In the long run, it'd be cool to allow users to define these sorts of things, so I could define an irilythRandomBM that picks two of these particular six skills and has them on two dice each, which are thus and so sizes, etc. That's probably more complicated a UI than we want to bother with for the first cut, but making the back-end implementation flexible enough to take basically arbitrary parameters, seems advantageous to me.

AdmiralJota commented 10 years ago

Huh, I didn't remember there being nearly so many options on the old site. I thought it was just three or four. I guess I didn't use that feature very often.

But I agree that weirder (or perhaps just more powerful) skills and normal-er (or less powerful) skills should probably be treated differently. Not least because a button with "One skill on 2 Dice" can be very different depending on whether that skill is something like trip or something like speed.

As an alternative to the old categories, we might consider giving each level some kind of skills "budget", where each skill would be worth a certain number of recipe points (and maybe allot points to very large and very small dice as well), so that a die recipe with three trip dice might be worth the same as one with one time and space die (or whatever).

blackshadowshade commented 10 years ago

BTW, if either Fog or ElihuRoot want to chime in on this one, I'll turn this into a bugfix-of-the-month for April, since jimmosk has already requested it.

jimmosk commented 10 years ago

Like AdmiralJota, I remember there being fewer options for generated buttons on the old site (Fixed, Mixed, Multi, Freaks, CRAZY, and Anime), but that may be because I only ever used it when Creating Games, not Creating Tournaments. Also, ooh, bugfix-of-the-month! I am not worthy!

ManvilleFog commented 10 years ago

I like the idea of giving different skills different values and the levels being costs. Stuff like swing, option, twin, wildcard, and anything outside the standard polyhedral range would likely have a very low cost and multiple skills on one die would be a cost modifier.

But thinking on that some more, that would make creating random dice more difficult.

Plus I think doing this now would be jumping the gun a little. This should probably wait until more die types are implemented.

@irilyth , on Fixed, what is the cfd ?

blackshadowshade commented 10 years ago

So, let me give you a proposal for a Soldiers type:

I could take all the types of dice that are currently used in Soldiers and select randomly from those.

Does that sound reasonable?

The same would then be true for the first four types listed by irilyth.

irilyth commented 10 years ago

In "5 Dice, no Swing, One skill on 2 Dice from cfd", I think the "cfd" is for the die codes for Chance, Focus, and Stealth. I'm not sure that's all that interesting; shrug.

As a starting point, the Random Soldiers Type sounds great. Random Anime Type sounds like a great second choice, since it's the most different from anything else. For the Random Fantasy/Foglio Type, would you only pick from the specific dice that are part of those sets? e.g. Fogio has Poison dice, but no one in Foglio has a p12, so would p12 be a possible random option? I sort of think it should be, but don't feel strongly about it. I also don't think there's anything special about those sets -- you could imagine a "Random Brom Type", allowing any of the die sizes in Brom, with one or two dice with Poison or Shadow, for example.

I like some of the other ideas that folks have suggested here, and am happy to try to tie them into a coherent proposal, unless someone beats me to it. But I think that starting with Random Soldiers Type and Random Anime Type would be great.

blackshadowshade commented 10 years ago

My thought is that I would keep the original probability distribution of die sizes too, unless anyone has any objections there.

ManvilleFog commented 10 years ago

The button images I received from Cassandra include several for the Random BM. It got me to thinking that we might want a place to store alternate images for potential future use.

@blackshadowshade Are you sure I've earned a bug fix of the month for April? My name wasn't included in April's announcement.

blackshadowshade commented 10 years ago

From the email:

The following dev site players were super close to completing 20 games, but didn't quite yet there: ElihuRoot, jimmosk1, rcw. Feel free to join forces and tag a bug that more than one of you wants to see fixed, or better luck next month!

blackshadowshade commented 10 years ago

I see no problem with storing button images in the normal place where button images are stored, only with perhaps a prefix to signal that they're not being used, for example punctuation characters like leading underscores.

jimmosk commented 10 years ago

I'm naming this my Bugfix of the Month, in hopes that it's not made more difficult by the fact that not all skills are implemented yet. If it'd be easier to wait until we've gotten all the skills in place rather than have to retweak the random-generator code every time a new skill comes into existence, please say so and I'll withdraw this as my BotM

blackshadowshade commented 10 years ago

I'm pretty sure that it won't be difficult to start this with some sort of Vanilla settings that won't be affected by skills that we don't have.

blackshadowshade commented 10 years ago

Having a think about this, I think the easiest way to implement this is to have a button RandomBM that has an empty recipe, much like Echo. It then also has a button special skill which causes the game to wait until its recipe is non-empty.

We would have a BMInterface function that would allow for the generation of the empty recipe, which could take whatever parameters we want to give it, and is independent of the implementation of RandomBM.

blackshadowshade commented 10 years ago

@ManvilleFog, I'm going to need a free button id for RandomBM. Could you allocate me one please?

blackshadowshade commented 10 years ago

The distribution of non-swing dice within Soldiers is: (4): 7 (6): 7 (8): 7 (10): 7 (12): 7 (20): 11

Did we want to keep this, or make it rather a uniform distribution, considering that Iago (a button with only four dice) is skewing the distribution?

irilyth commented 10 years ago

(a) Huh, I had no idea that the Soldiers buttons were so evenly distributed in terms of dice. Neat. (b) My vote is to ignore Iago and just make it a uniform distribution, which will make "a randomly generated Soldiers-like button" look more like the other Soldiers type buttons, than if 20-siders are more common. They're only more common if your name is Iago. :^)

jimmosk commented 9 years ago

Given that December is probably a busy month for most everybody, I'm not going to pick a new issue for my BFotM, but just give this one a bump.

Oh, and I concur with irilyth on the above question.

blackshadowshade commented 9 years ago

So, just to give you a heads-up, in November, I managed to set up the structure for a RandomBMVanilla. Considering that we're still waiting for front-end devs, I decided to see if we could avoid making any changes to the front end for the moment, and just add a new button called "Random BM Vanilla" to the list of buttons.

irilyth commented 9 years ago

Hey, so, yay! What's next on this ticket, come up with some other flavors of RandomBM? (Given "vanilla", should the others in fact be named after flavors too? Chocolate, Strawberry, CookieDough, Salmon, Sriracha... Ok, perhaps not. :^)

I'd be happy to help with figuring out a full set of flavors; or to just suggest a perhaps-obvious idea for the next flavor: Soldier (four regular dice plus one X swing).

irilyth commented 9 years ago

Huh, here is another random idea: We could make the RandomBM buttons based on other buttonsets. (Possibly even part of those buttonsets? Maybe that's not desirable, not sure.) So we could have RandomBM Vampyres, RandomBM Brom, RandomBM Foglio, etc, with the algorithm for creating them designed to give you results very much like the other buttons in those sets.

And then maybe other other things too, but that might be an interesting start. And I actually kind of like the idea of "give me a random button that looks like the other buttons in this set" for a wide range of sets.

Other thoughts?

yawetag commented 9 years ago

Didn't the old site have random buttons based on several sets? Or am I mis-remembering?

Andrew Senger asenger@gmail.com

On Thu, Jan 8, 2015 at 9:57 AM, irilyth notifications@github.com wrote:

Huh, here is another random idea: We could make the RandomBM buttons based on other buttonsets. (Possibly even part of those buttonsets? Maybe that's not desirable, not sure.) So we could have RandomBM Vampyres, RandomBM Brom, RandomBM Foglio, etc, with the algorithm for creating them designed to give you results very much like the other buttons in those sets.

And then maybe other other things too, but that might be an interesting start. And I actually kind of like the idea of "give me a random button that looks like the other buttons in this set" for a wide range of sets.

Other thoughts?

— Reply to this email directly or view it on GitHub https://github.com/buttonmen-dev/buttonmen/issues/779#issuecomment-69199687 .

irilyth commented 9 years ago

Didn't the old site have random buttons based on several sets? Or am I mis-remembering?

It had different types, and they were sometimes labeled as being related to sets, but only a few. I happened to have written it down once, and I put a list in a comment early in this ticket. (Short summary: Soldiers, Fantasy/Foglio, and Anime. I think things like Brom, Brawl, L5R, Button Brains, Diceland, and Samurai, would also make good additions.)

blackshadowshade commented 9 years ago

For information, adding a new RandomBM type is close to trivial---and would be a great place for an up-and-coming back-end dev to jump into adding new button skills!

Pinging @nkmcalli, @ManvilleFog. ;)

nkmcalli commented 9 years ago

Soon - almost there...

jimmosk commented 9 years ago

Okay, so I'm going to make my January BFotM adding another few types of RandomBM -- say, the Fixed and Mixed types listed above. Or any others that you think would be easier or more fun.

irilyth commented 9 years ago

Okay, so I'm going to make my January BFotM adding another few types of RandomBM -- say, the Fixed and Mixed types listed above. Or any others that you think would be easier or more fun.

Ok! Here's a list of suggested types, based on button sets; all with five dice, for simplicity's sake:

For the ranges (e.g. "3 - 4 regular dice"), I think an even chance of any of the outcomes is probably fine. If anyone wants to look more closely, and argue that a non-even chance would be more consistent with the buttons in the set, I'm totally fine with that, I just didn't bother most of the time.

Corrections and other feedback welcome too, of course.

If that sounds generally good: Jimmosk, pick your favorite, and maybe a few runners up? Or whoever takes the ticket can, of course.

jimmosk commented 9 years ago

Josh, you may not have noticed that 'Vanilla' was taken from your own copypasta in the first comment to this Issue -- it's one of the types of RandomBM from the previous site. The two types which I requested as my BFotM are from your paste as well: Fixed 5 Dice, no Swing, One skill on 2 Dice from cfd Mixed 5 Dice, no Swing, Three skills on 2 Dice each [taken from as many skill types as currently exist, was my assumption, since it doesn't specify types the way Fixed does]

irilyth commented 9 years ago

Sure, that's fine; I don't think those are all that interesting, because they're all a fixed set of dice with no swing or option, but as you like.

I also don't like "Fixed" and "Mixed" as names -- I don't think the names on the old site made much sense in general -- any suggestions?

jimmosk commented 9 years ago

Whereas I don't think Swing and Option are as interesting as the interplay between many different sorts of skills, which is why I want to make progress along that track. CRAZY, here we come!

blackshadowshade commented 9 years ago

Well, jimmosk, if you want CRAZY, then request CRAZY! There's no difference in difficulty between different types, since all we're doing is generating strings that conform to the spec, and then using all the standard machinery to parse them.

irilyth commented 9 years ago

There's no difference in difficulty between different types, since all we're doing is generating strings that conform to the spec, and then using all the standard machinery to parse them.

Does the spec have a way to express things like "a 32% chance of five 20-siders, a 17% chance of four buttons with 3 - 14 sides plus two 20-siders, and a 51% chance of one of each type of swing die"? Or less nutty things, like "two skills, each on two dice, but no dice with more than one skill" vs "...and dice can have more than one skill"?

What does the spec say? :^)

blackshadowshade commented 9 years ago

We are defining the spec here, and once I have the spec, I will program to it.

More exactly, all I am doing is generating recipe strings that conform to any describable spec, as long as it is consistent and unambiguous (and resolvable, but that's another matter altogether). If you can generate recipes that conform to the spec by hand, then I can generate them in code. If you have trouble generating recipes by hand, then I'll probably have some difficulty generating them in code.

jimmosk commented 9 years ago

Thanks, blackshadowshade, but I think introducing them "in order" to get people gradually acclimated to the possibility of CRAZYness is the way to go.
To make the specs more, er, specific:

Fixed: Five dice, chosen from standard button sizes, with two of them having a single skill chosen (independently) from c, f, and d.

Mixed: Five dice, chosen from standard button sizes, with three skills chosen from all existing skills and each given to two of the five dice (independently, so some dice may get no skills and one or two could end up with all of them).

blackshadowshade commented 9 years ago

For those who are interested, I have a branch up with Fixed implemented. I won't submit a pull request until I have Mixed done, but since my Internet access is sporadic for the next few days, you may wish to see what is necessary to implement a new RandomBM type in the meanwhile.

blackshadowshade commented 9 years ago

I've just put in another two hours, and you can see the pull request that is up with both RandomBMFixed and RandomBMMixed implemented. Enjoy!

jimmosk commented 9 years ago

Should I add explanations of these RandomBM 'levels' to the Skills page? Or is that the wrong place since these aren't skills? And, is the Question tag still up on this issue because we're still awaiting a consensus on some particular aspect of RandomBM? Or can it be removed?

irilyth commented 9 years ago

I think it'd be good to have a separate page for RandomBM, since I think (hope!) there will be many types eventually.

I don't have a strong feeling about whether for now it should be on the dev wiki or the Wikia wiki. Eventually, it should presumably be on a page as part of the site itself...

cgolubi1 commented 9 years ago

Hmm: http://dev.buttonweavers.com/ui/buttons.html?set=RandomBM has links to each of the buttons, and the individual button pages there describe each button. I think that's the authoritative source. How can we make it more useful?

irilyth commented 9 years ago

I figured we were talking about a single page that would describe all of the types. I don't know what Jimmosk had in mind.

jimmosk commented 9 years ago

I was talking about the same thing as Josh, and wondering if it should be on the same page as explains the skills. The page Chaos linked to does describe all the RandomBM types, but you have to look at each one separately. I think something like the condensed list Josh pasted in as the very first comment to this thread would be more useful than http://dev.buttonweavers.com/ui/buttons.html?set=RandomBM is.

Ideally, I think the consistent way is to put thumbnail descriptions of each type right into the pulldown menu, in parallel with (nearly?) every other button in them... is that doable?

cgolubi1 commented 9 years ago

I agree that that would be useful, and it doesn't seem out of the question that if a button has a blank recipe, we could put something else in the pulldown. Do you have in mind a format for thumbnail descriptions that would fit in the available space?

irilyth commented 9 years ago

Some feedback about the current implementation of RandomBMMixed on the dev site:

I think Slow should be removed from the skills list, because it's purely negative and not any fun. All the other skills, you might well say "ooh, my random button got Foo", and be excited about it, or "ooh, a die with both Foo and Bar, that should be interesting", or something positive; I don't see a situation where I would ever say "ooh, a die with Slow, yay".

Shadow and Maximum is a pretty funny combination. :^) Do we want to try to start a list of combinations to exclude? I don't know that sM is one of them, because it isn't totally useless, just a little weird; but there might be others where we'd say "oof, that is not a good idea" or some such. Maybe not, though; any thoughts? (In particular, do you want to hear about it on this ticket when weird combinations come up, or enh?)

blackshadowshade commented 9 years ago

In case anyone following this conversation hasn't noticed, on pull request #1500, we decided initially to exclude a number of skills from BMRandomMixed, because Chaos was hitting real bugs in her automated testing.

Currently, the excluded skills are:

We'd like to remove a number of skills from this list eventually, but we're also open to adding skills to this list, including Slow as proposed by irilyth.

irilyth commented 9 years ago

Jimmosk, you wrote up Fixed as

Fixed: Five dice, chosen from standard button sizes, with two of them having a single skill chosen (independently) from c, f, and d.

My recollection is that on the old site, the skills were not chosen independently: Any given RandomBMFixed would have two dice with c, two with f, or two with d.

I don't feel strongly about it, and having them mixed here has turned up some interesting issues (like what happens with a button with both Chance and Focus), but if your goal was to faithfully recreate that types on the old site (for whatever reason), I don't think the current implementation does that.

jimmosk commented 9 years ago

Good catch! Yes, I think it ought to be the same single skill, on two dice. My apologies for incorrectly parsing the original description. Blackshadowshade (or anyone), can you make that correction?

blackshadowshade commented 9 years ago

Sure, I can do that. Feel like fixing the description for me?

jimmosk commented 9 years ago

Fixed: Five dice, chosen from standard button sizes, with two of them having a single skill chosen from c, f, and d (the same skill on both).