« first day (2948 days earlier)      last day (2019 days later) » 

12:00 AM
@Momonga-sama extraordinarily belatedly, there's the Number Appearing pack-in for Dungeon World, with monster race moves and a "bestiary" that is a cynical monster's eye take on adventurers and NPCs.
 
@Glazius oh? I want to see this XD
 
@Shalvenay free-as-in-beer over here: dungeon-world.com/downloads
 
Last I checked beer wasn't free though? :P
To be fair I've never bought any
So I could be wrong
 
en.m.wikipedia.org/wiki/Gratis_versus_libre
 
user15026
@trogdor thanks for the update!
 
12:14 AM
Roughly "free because it can be, not because it must be"
 
@Ash no problem, I just didn't want anyone to switch the news on and suddenly think @BESW and I were dead or something
@Glazius fair enough XP
 
user15026
12:31 AM
@trogdor It's appreciated!
 
@Ash cool, that's always nice to hear
 
user15026
I like knowing my friends are not suddenly one with the ocean in unexpected ways.
 
Aww thanks
 
 
1 hour later…
2:00 AM
Hiyas. Can somebody kindly direct me to a good place to post questions for advice (rather than rules) for D&D5e?
 
@trogdor Glad to hear all's well in Guamland.
5
@AddoOakwald Hiya. This room is one such place, and has the added benefit of experts who could also help you sort out which sorts of advice-questions are good fits mainsite and which aren't.
Other than that this meta post has our curated list of other good places to chat RPGs.
 
@nitsua60 ok thanks! I am going to a 5e game this weekend and wanted to see if I could dig up any advice regarding strategies to keep my sprite familiar present and safe. I dont like to dismiss him, but we are now lv 6 and the baddies are hitting harder. Last game he was invisible on my shoulder, with 12hp (2 normal, 10 temp from an Inspiring Leader) and I was hit by a cone effect. My sprite succeeded his dex save, and only took half the incoming 24 damage, which was just enough to pop him.
 
@AddoOakwald Hmm... I haven't played with familiars much but thinking about it from a GM's POV I'd say: don't let it get hit. Or at least try to reduce that likelihood =)
But I bet there are others around (or who'll swing by over the course of the day) with more-focused advice.
 
Hahaha, I'd love for him not to get hit. I am a sorcerer3/warlock3 if that helps ideas/options, but I'm open to any and all advice ^_^. I'll be sure to check back in!
 
2:16 AM
@AddoOakwald Not a familiar, but:
4
Q: How can I protect my pet falcon?

Blackbelt749My group is starting a new campaign (beginning at level 4) and I'm going to play an evil paladin that trusts no one. However, he does have a pet falcon — my DM is okay with this, but is warning me of its low HP/AC. I'm more than willing to spend my character's gold on items to protect the falcon...

 
 
2 hours later…
4:07 AM
@AddoOakwald Yeah, as others have said, I think his flight is the key here. Unless you're doing sneak attack shenanigans (you aren't), there's no reason for him to be anywhere near you, let alone on your shoulder.
 
4:18 AM
@nitsua60 yep :)
 
@AddoOakwald Also, the vast majority of your Familiar features only require them to be within 100 feet of you. That's well more than enough space for them to fly high above you and simply track you horizontally to keep within range for those features.
 
4:35 AM
1
Q: I'm a new DM and one of my players is abusing Min/Max. I'm looking for advice on how to deal with this fairly

Christopher RattrayThe player built a human "dex" barbarian, with Dex and Con the top two attribute scores to maximize the unarmored defense bonus (AC 17 at level 1) and take half damage when raging. He wields a rapier and a hand crossbow, and took the crossbow expert feat so he can have a bonus crossbow attack, a...

I think that question might be answerable to the querent's satisfaction, namely by pointing that the barbarian player is not playing by the rules. (the build they're playing is actually rather bad)
Unless the GM is worried strictly about the "two attacks per turn" part
 
5:31 AM
I think the querent already knows that the rapier/hand crossbow thing wasn't correct, given the "I've since figured out the crossbow expert feat wasn't being used properly because of the ammunition limitation rule.". Assuming they mean they realized a hand needs to be free for reloading. Hard to tell exactly.
 
5:43 AM
@CTWind Yeah, I was mainly thinking that their dex barbarian is probably coupling their Dex with Rage despite Rage requiring Str attacks.
I have a 4e urge again :( want to run encounters
 
6:04 AM
@kviiri Rage doesn't require Strength-based attacks, it just doesn't benefit non-Strength-based ones. But probably, yeah.
 
 
1 hour later…
7:25 AM
@CTWind Of course the barbarian could still pull that sort of thing off: attack with rapier, sheathe rapier, load/fire hand crossbow; load/fire hand crossbow, draw rapier, attack with rapier. It means their rapier's away half the time for OA purposes, but it's doable. (If I'm thinking clearly at 3am.)
 
7:53 AM
@Miniman Yeah, I was mainly wondering if the player is using Rage bonuses for their Dex attacks or if the GM is overestimating the power of this strange build.
 
8:06 AM
@nitsua60 Excellent :D
...at that point, though, I'd actually be willing to consider the min-maxing point :)
Are Minimax (aka "Minmax") the AI strategy algorithm and Min-Maxing in RPG contexts related beyond using the same words ("minimum" and "maximum" and their derivatives)?
 
@kviiri No, not really.
A minmax strategy involves minimizing your losses and maximizing your victories. In RPGs, minmax refers to minimizing something in order to maximize something else.
You're actually maximizing your losses in a specific area in order to maximize your victories in another.
 
Yeah, figures
I love how simple the recursive definition of Minimax AI is btw
"Play the move that results in the best outcome assuming your opponent also plays using Minimax."
Oh-ho-ho! Another Famous Question for me!
 
8:26 AM
Grats!
 
 
7 hours later…
3:11 PM
'Mornin? It's impressive that it's 10AM here in middle-US and there's no conversation
 
@Delioth Sleepy fridays I guess
I've got a vacation starting on Wednesday next week so this feels like an extra special friday
 
Nice.
 
Fridays are usually quieter than the rest of the week, I've noticed.
 
SLEEPY FRIDAY / WAKE UP IN THE LATE AFTERNOON
CALL PARNELL JUST TO SEE HOW HE'S DOIN'
 
@Delioth It's 8am here, and WAY too early...
 
3:34 PM
I'm still at work and it's half past six in the evenin'
At least I have Friday sauna activities scheduled :>
 
4:14 PM
Ah Scandinavia
 
 
1 hour later…
5:22 PM
2
Q: Can we get voting unlocked on this post please?

the dark wandererThis answer to "I think my DM is consistently faking dice rolls for saves against a specific spell; how do I call my DM out?" is a great answer to an interpersonal question. Unfortunately, presumably because sexism, it has garnered a lot of bad comments and consequently got locked. If I rememb...

 
6:03 PM
Doesn't loook like my HNQ meta question is going anywhere...
 
@inthemanual It's a good question, but speaking for myself, I do not gaf about HNQ or people's use of it, so I'm not participating in that discussion.
 
@inthemanual I suggested it be stickied in the chat, but apparently HNQ apathy is strong in this community
(full disclosure: I don't have much of an opinion on it myself. I think its fine the way it is/was, but I'm not too attached to it)
 
I noticed a comment by @doppelspooker in the main thread about how we tend to get HNQ status on some controversial questions which inflates their controversy, instead of helping to get a good answer
 
Alright, I've made an attempt to update my probability calculator to now handle Wild Magic's Spell Bombardment feature. Can anyone confirm for me if these stats are correct?
Stats for Roll [d[d6,d6]WILD]
 2:  1 (  0.8264%) Odds to Pass: 100.0000%
 3:  2 (  1.6529%) Odds to Pass:  99.1736%
 4:  3 (  2.4793%) Odds to Pass:  97.5207%
 5:  4 (  3.3058%) Odds to Pass:  95.0413%
 6:  5 (  4.1322%) Odds to Pass:  91.7355%
 7:  4 (  3.3058%) Odds to Pass:  87.6033%
 8:  8 (  6.6116%) Odds to Pass:  84.2975%
 9: 11 (  9.0909%) Odds to Pass:  77.6860%
10: 13 ( 10.7438%) Odds to Pass:  68.5950%
11: 14 ( 11.5702%) Odds to Pass:  57.8512%
12: 15 ( 12.3967%) Odds to Pass:  46.2810%
The way Spell Bombardment works is that if, when you roll damage on a spell, any of the damage dice roll their maximal value, you may choose one of those dice and roll them again to add additional damage to the spell.
 
6:19 PM
what are the dice being rolled for this table
3d6?
2d6?
 
(Also; if mixed dice are being used, the strategy always chooses to roll whichever die has the highest average value. Doesn't matter for uniform dice like 8d6, but can matter if it's like Ice Storm, which mixes d6's and d8's)
@SirCinnamon 2d6. The notation is a little confusing, but the d[d6,d6] is intended to convey that.
 
@Xirema Haha I just realized a scrollbar cropping that part out
 
Gonna test with higher numbers of dice later, but I need to unit test this.
 
needed to scroll up within the message
 
Yeah, the table gets a bit large.
 
6:22 PM
Something seems off to me
there is one way to roll an 18 - you roll 2d6 and get 12, then you roll again and get 6 more.
In my mind that means it's simply the same odds as rolling 3d6 and getting 18 - so (1/6)^3
your odds dont line up with that
 
@SirCinnamon You have to bear in mind though that there's lots of scenarios where the third die never gets rolled at all.
 
@Xirema I dont think that changes the odds for that exact case though
 
@SirCinnamon It lowers the number of total outcomes though.
 
hmmm
 
Okay, yeah, there's something not right.
Stats for Roll [d[d3]WILD]
1: 1 ( 20.0000%) Odds to Pass: 100.0000%
2: 1 ( 20.0000%) Odds to Pass:  80.0000%
4: 1 ( 20.0000%) Odds to Pass:  60.0000%
5: 1 ( 20.0000%) Odds to Pass:  40.0000%
6: 1 ( 20.0000%) Odds to Pass:  20.0000%
====
Total Possible Rolls: 5
Mean: 3.600000
Median: 4
Mode: 1 (1)
95% Range: [1,6]
 
6:27 PM
to break it into categories
 
That's definitely not correct.
 
(rolling 2 d5s) + (rolling 6+d5+d6) + (rolling d5+6+d6)+(rolling 6+6+6)
Either both starter dice roll below max, one is max and one isnt, or both are max.
 
I mean, my really basic 1d3 example shows the problem. It treats the odds of 4, 5, or 6 as equal to the odds of 1 or 2.
That's definitely not how this works.
 
Oh the number in brackets?
yeah, shouldnt be equal
 
(I think I know how to fix it, I just need to refactor my code a bit. Stay tuned)
 
6:31 PM
it should be the square of the odds of a single face i think?
so a 1 is 1/3, a 2 is 1/3, a 3 (exactly 3) is 0% likely, a 4 is 1/9 as is 5 and 6
 
@SirCinnamon There's certain assumptions I cannot make in this code, because it needs to be able to handle esoteric situations, like the dice for Ice Storm, which are 4d6 + 2d8.
 
yeah you would have to... ew break into the component dice and assume you want to reroll the higher UNLESS one doesnt max
ew
 
@SirCinnamon Well, my strategy works for that! I just need to make a few changes when tabulating some of these outcomes...
 
What is the 'wild' thing doing?
 
Wild Sorcerer spell bombardment
Reroll one max rolled die and add it
reroll isnt a good word for that
 
6:38 PM
Yeah....
 
@SirCinnamon roll another die of the same type as one that got a max roll?
 
@GreySage Yeah. It's honestly incredibly weak for an 18th level feature
it could say double that die and it would still be weak
 
@SirCinnamon It's effectively +1 damage die. It's nice that it doesn't have a limit/restriction besides 1/turn.
 
Well, bear in mind it works on ALL spells.
Including Cantrips.
 
@Xirema At 18th level youre rolling like 4 dice per cantrip anyway
and the more likely this is to activate, the less valuable it is when it does
 
6:41 PM
@inthemanual I'm not certain whether there's an "our" goal exactly, but willing to see if there is one. There's my personal thoughts — you've read them :) — but they're personal.
 
@SirCinnamon I mean, yes, Sorcerers are underpowered. That's been established. ;)
 
@Xirema I mean I love the class, i think this particular feature could use a bump though
to be honest would it even be broken to take the limit of one off entirely?
reroll and add any max rolled dice (not chaining)
 
@SirCinnamon It would definitely make my program a lot simpler.
 
@SirCinnamon Sounds fun, I'm not willing to calculate it out right now (But I think Xirema would be!)
 
@Xirema Rude of WotC to not consider that when they published
 
6:45 PM
All the other sorcerous origins give utility skills at 18, an AoE fear, a self heal, resistance to damage, group flying.
 
7:00 PM
Alright, this looks correct, yeah?
Err, well.
Okay, it's still not quite right.
Okay, forget I posted that.
Stats for Roll [d[d3]WILD]
1: 3 ( 33.3333%) Odds to Pass: 100.0000%
2: 3 ( 33.3333%) Odds to Pass:  66.6667%
4: 1 ( 11.1111%) Odds to Pass:  33.3333%
5: 1 ( 11.1111%) Odds to Pass:  22.2222%
6: 1 ( 11.1111%) Odds to Pass:  11.1111%
====
Total Possible Rolls: 9
Mean: 2.666667
Median: 2
Mode: 1 (3)
95% Range: [1,6]
There, we all agree that's correct?
(I'm still only handling the PHB Spell bombardment, not the houserule we considered)
 
that looks like what I got by hand
can I see a d4
 
Stats for Roll [WILD[d4]]
1: 4 ( 25.0000%) Odds to Pass: 100.0000%
2: 4 ( 25.0000%) Odds to Pass:  75.0000%
3: 4 ( 25.0000%) Odds to Pass:  50.0000%
5: 1 (  6.2500%) Odds to Pass:  25.0000%
6: 1 (  6.2500%) Odds to Pass:  18.7500%
7: 1 (  6.2500%) Odds to Pass:  12.5000%
8: 1 (  6.2500%) Odds to Pass:   6.2500%
====
Total Possible Rolls: 16
Mean: 3.125000
Median: 2
Mode: 1 (4)
95% Range: [1,8]
It doesn't quite look right once it hits 2d6 though.
 
is it allowing a reroll per die?
what does 2d3 look like
 
Stats for Roll [WILD[d3,d3]]
2: 3 ( 12.5000%) Odds to Pass: 100.0000%
3: 6 ( 25.0000%) Odds to Pass:  87.5000%
4: 3 ( 12.5000%) Odds to Pass:  62.5000%
5: 2 (  8.3333%) Odds to Pass:  50.0000%
6: 3 ( 12.5000%) Odds to Pass:  41.6667%
7: 4 ( 16.6667%) Odds to Pass:  29.1667%
8: 2 (  8.3333%) Odds to Pass:  12.5000%
9: 1 (  4.1667%) Odds to Pass:   4.1667%
====
Total Possible Rolls: 24
Mean: 4.875000
Median: 4
Mode: 3 (6)
95% Range: [2,8]
Was about to post exactly that, figured it was better for testing.
I don't think this is correct though.
 
Something is funny with the odds of a 4
or a 5
theres only one way to get a 4, and that is to roll double 2s
So how is 5 less likely
3-1-1 and 1-3-1 get a 5. (2/9)*(1/3) right?
 
7:15 PM
I'll share the pseudocode if I get stumped. Gonna revisit my algorithm. There's a lot of copy+paste going on, so there's a chance I mistyped something somewhere.
 
@SirCinnamon 5 is less likely than 4, but I still think something is off
While you consider only homogeneous dice, you can imagine that you actually roll 3d3, and only count the 3rd if one of the other 2 is a 3.
So there are 3 ways to get 4 (2-2-1, 2-2-2, 2-2-3), and 2 ways to get 5 (3-1-1, 1-3-1)
 
@GreySage Which is an assumption I can only make when using homogeneous dice.
 
@Xirema Yes, but it shows that a) something is off with your calculations right now, and b) p(5) < p(4)
And you can make a similar assumption for heterogeneous dice, it just get complicated (I wouldn't want to program like that, but for testing specific probabilities it's usefull)
 
Well, I've found one possible cause. The way it's handling the root dice, before even adding the wild dice, appears to be wrong.
 
P(2) should be 11.1% (1/9), not 12.5 (1/8)
 
7:29 PM
@inthemanual There was a nice bit of stat-analysis someone did somewhere that showed we're relatively over-represented in HNQ (relative to other sites of our traffic). If I could find that I'd put it into an answer on that meta, but it'll probably be Sunday before I have any time to start spelunking.
 
@GreySage Right... 1 way to get 4 is 1/9 but the two ways to get 5 are 2/27
i see
@nitsua60 Are we uniquely over represented or among many?
 
Okay, this immediately looks better, but I'm still not sure.
Stats for Roll [WILD[d3,d3]]
2: 3 ( 11.1111%) Odds to Pass: 100.0000%
3: 6 ( 22.2222%) Odds to Pass:  88.8889%
4: 3 ( 11.1111%) Odds to Pass:  66.6667%
5: 2 (  7.4074%) Odds to Pass:  55.5556%
6: 4 ( 14.8148%) Odds to Pass:  48.1481%
7: 5 ( 18.5185%) Odds to Pass:  33.3333%
8: 3 ( 11.1111%) Odds to Pass:  14.8148%
9: 1 (  3.7037%) Odds to Pass:   3.7037%
====
Total Possible Rolls: 27
Mean: 5.111111
Median: 5
Mode: 3 (6)
95% Range: [2,8]
 
The odds for 4 and 5 look right
lines up with my hand calculations
as does 6
and 9
that looks good tome
 
Awesome. Gonna roll up 2d6 now.
Stats for Roll [WILD[d6,d6]]
 2:  6 (  2.7778%) Odds to Pass: 100.0000%
 3: 12 (  5.5556%) Odds to Pass:  97.2222%
 4: 18 (  8.3333%) Odds to Pass:  91.6667%
 5: 24 ( 11.1111%) Odds to Pass:  83.3333%
 6: 30 ( 13.8889%) Odds to Pass:  72.2222%
 7: 24 ( 11.1111%) Odds to Pass:  58.3333%
 8: 20 (  9.2593%) Odds to Pass:  47.2222%
 9: 16 (  7.4074%) Odds to Pass:  37.9630%
10: 12 (  5.5556%) Odds to Pass:  30.5556%
11:  8 (  3.7037%) Odds to Pass:  25.0000%
12: 10 (  4.6296%) Odds to Pass:  21.2963%
> Total Possible Rolls: 216
Also a good sign.
 
@Xirema You know, I don't think I've ever calculated 6^3. You just don't do a lot of power of 6's (except in RPG dice calculations, I guess).
 
7:36 PM
odds of 18 = 1/216
looks good!
 
@SirCinnamon If only that was the only number we had to check. X(
 
The first number in each row after the : is how many possible combinations get that result?
 
@GreySage Yes.
 
Looks pretty good to me
 
Alright. Anyone know how to roll up these stats for 8d6 by hand? Because I'm about to run those.
Stats for Roll [WILD[d6,d6,d6,d6,d6,d6,d6,d6]]
 8:      6 (  0.0001%) Odds to Pass: 100.0000%
 9:     48 (  0.0005%) Odds to Pass:  99.9999%
10:    216 (  0.0021%) Odds to Pass:  99.9995%
11:    720 (  0.0071%) Odds to Pass:  99.9973%
12:   1980 (  0.0196%) Odds to Pass:  99.9902%
13:   4704 (  0.0467%) Odds to Pass:  99.9705%
14:   9920 (  0.0984%) Odds to Pass:  99.9239%
15:  18928 (  0.1878%) Odds to Pass:  99.8254%
16:  33138 (  0.3288%) Odds to Pass:  99.6376%
17:  53760 (  0.5335%) Odds to Pass:  99.3088%
I'm certain the total is correct, but beyond that, I couldn't tell you how to further proceed.
 
7:46 PM
54 looks about right
 
Hardcoded for 2d6 but heres the odds using a tree approach
0: 0
1: 0
2: 0.027777777777777776
3: 0.05555555555555555
4: 0.08333333333333333
5: 0.1111111111111111
6: 0.1388888888888889
7: 0.1111111111111111
8: 0.09259259259259259
9: 0.07407407407407407
10: 0.05555555555555555
11: 0.037037037037037035
12: 0.046296296296296294
13: 0.05092592592592592
14: 0.041666666666666664
15: 0.032407407407407406
16: 0.023148148148148147
17: 0.013888888888888888
18: 0.004629629629629629
 
@GreySage X)
 
#,%
8,100
9,99.99994046258192
10,99.9994641632373
11,99.99732081618656
12,99.99017632601738
13,99.97052897805217
14,99.92337534293557
15,99.82168543286058
16,99.62116340877857
17,99.25518689986257
18,98.63123475842056
19,97.63052983539056
20,96.11304012346056
21,93.92873132907056
22,90.93471364884056
23,87.01667524006055
24,82.11174458924054
25,76.22867369685055
26,69.45998371057055
27,61.98279844918056
28,54.04717506860056
29,45.952824931430555
30,38.01720155085056
31,30.54001628946056
32,23.771326303180558
oh that was on at least
 
@SirCinnamon There are a handful of sites--IPS, RPG, WB, maybe two or three others--whose HNQ visibility is well out of proportion compared to others of their size.
 
@Carcer It stops at 48, making me think it wasn't including the Spell Bombardment effect?
 
7:50 PM
I wasn't paying enough attention to the rest of the conversation
I just saw "roll 8d6"
what does spell bombardment actually do
 
@Carcer When rolling damage, if any of the dice roll their maximal value, you can roll one of those dice again and add it to the total.
 
okay
 
There are also a lot of smaller sites that could maybe use the visibility in a way that we in the middle don't need as much. I'd be interested in seeing a mainsite-->HNQ curve that flattens things somewhat; take a bit away from math.se and SU (lotsa traffic) and from us and WB (overrepresented) to help ensure that islam and history and writing and earth science get some HNQ-love.
 
I have what appears to be a correct implementation that scales for however many dice you wish, and works if you use Heterogeneous dice (it always picks the die with the highest average value, when it has to make a choice)
 
@Carcer 8d6, instructions unclear
 
7:53 PM
 
"output 1",30.686011862233205,5.854055299340485,8,54
#,%
8,0.0000595374180765
9,0.000476299344612
10,0.00214334705075
11,0.00714449016918
12,0.0196473479652
13,0.046677335772
14,0.0984351978865
15,0.187820708225
16,0.328825160037
17,0.533455265966
18,0.808518137479
19,1.15331917137
20,1.55896744653
21,2.00998323426
22,2.48890222527
23,2.98123698115
24,3.47871180079
25,3.97952071585
26,4.48519185338
27,4.99364140375
28,5.49216805111
29,5.95344412056
30,6.3363094104
31,6.59192339201
32,6.67458117411
seems to match
 
@Carcer So it does!
 
(can you still not see anydice?)
 
@Carcer I can access it if I use my phone.
Now for the really tricky one: 2d8+4d6.
Stats for Roll [WILD[d6,d6,d6,d6,d8,d8]]
 6:     48 (  0.0012%) Odds to Pass: 100.0000%
 7:    288 (  0.0072%) Odds to Pass:  99.9988%
 8:   1008 (  0.0253%) Odds to Pass:  99.9916%
 9:   2688 (  0.0675%) Odds to Pass:  99.9662%
10:   6048 (  0.1519%) Odds to Pass:  99.8987%
11:  11904 (  0.2990%) Odds to Pass:  99.7468%
12:  21056 (  0.5289%) Odds to Pass:  99.4478%
13:  34080 (  0.8560%) Odds to Pass:  98.9189%
14:  51132 (  1.2843%) Odds to Pass:  98.0630%
15:  71752 (  1.8022%) Odds to Pass:  96.7786%
Bearing in mind that this one may sometimes add a d6, and sometimes add a d8, depending on which dice emerge maximally.
 
yeah, that's a pain to implement in anydice
 
7:59 PM
@Xirema Is the total possible rolls adding 1d8 and 1d6?
 
8d6 (im falling behind!):
0: 0
1: 0
2: 0
3: 0
4: 0
5: 0
6: 0
7: 0
8: 5.953741807651273e-07
9: 4.762993446121018e-06
10: 2.143347050754459e-05
11: 7.144490169181516e-05
12: 0.0001964734796524931
13: 0.000466773357719866
14: 0.000988321140070082
15: 0.0019099603718944326
16: 0.0034311414037497615
17: 0.0058108520042686705
18: 0.009395004572475784
19: 0.01466287532388717
20: 0.02227175735406772
21: 0.033078989483308806
22: 0.048120522786075724
23: 0.06849184575502257
24: 0.0951104300027033
25: 0.1283888698363859
26: 0.16789790047174105
 
@GreySage Ostensibly, it considers outcomes for either. It's worth noting that there's no effort to "reduce" the fractions here, so there's a chance that all those numbers need to be divided by 6, or something.
The overall odds should be correct (if I've screwed nothing else up) but the number of outcomes might be inflated by a constant factor across the board..
 
Who would have thought math would actually be useful outside of school?
 
@GreySage I'm just astonished that getting an algorithms-focused Computer Science degree ended up actually being useful. =O
 
@Xirema Algorithms will always be useful. They're literally just problem solving techniques, which CS teaches fully broken down so that they're trivially translatable to code
Also CS degrees make bank, at least in the US (source: graduated CS last year)
 
8:08 PM
I can attest to these statements as well (CS is just so much fun)
 
@Delioth Agreed in a general sense, but Software Engineering is more the focus where your skills are valuable. Algorithm analysis/implementation tends to have very niche use. This is one such niche.
 
I'm having fun teaching my small children how to solve their problems with algorithms (without using the word algorithm)
 
@Xirema Oh yeah, Algorithm analysis is almost useless in the real world- we prefer to profile things to fix bottlenecks if we need to, rather than use some abstract notion
 
I did run the stats for 8d6 with the houseruled version of Spell Bombardment we discussed earlier (can reroll any dice that roll maximally once, not just one of them).
Stats for Roll [8d6WildHB]
 8:      1679616 (  0.0001%) Odds to Pass: 100.0000%
 9:     13436928 (  0.0005%) Odds to Pass:  99.9999%
10:     60466176 (  0.0021%) Odds to Pass:  99.9995%
11:    201553920 (  0.0071%) Odds to Pass:  99.9973%
12:    554273280 (  0.0196%) Odds to Pass:  99.9902%
13:   1316818944 (  0.0467%) Odds to Pass:  99.9705%
14:   2776965120 (  0.0984%) Odds to Pass:  99.9239%
15:   5298628608 (  0.1878%) Odds to Pass:  99.8254%
16:   9276519168 (  0.3288%) Odds to Pass:  99.6376%
 
Knowledge of what general methods will be an O(2^n) is useful, being able to pick apart a method to tell someone it's O(2^n) is less useful (profile and refactor if it takes too long, doesn't matter if it's O(2^n), O(n log(n)) or O(1))
 
8:12 PM
So much easier to implement. Just had to create a new compositor and accompanying factory method.
 
Ah, so is that what this WILD dice you guys are discussing are - roll dice, explode dice up to once?
 
@Delioth Yeah.
Normally, you only get to reroll one die (even if more than one rolls maximally) but I decided to implement the other version just for reference, since it was easy.
 
@Xirema Thats a nice +7 expected value
 
Is it reroll, or is it add an extra die?
 
@Delioth Add an extra.
 
8:14 PM
Huh, neat. super-watered-down exploding dice
 
@GreySage Closer to 4.66666 according to my stats.
@Delioth Something my degree didn't save me from: I committed the Cardinal Sin of using a Factory model to implement these dice.
 
@Xirema Excuse me, factories are perfectly fine
I mean, not for this. But in general they're useful
 
So if I want one of these rolls. I write RollFactory factory = new RollFactory(); Rollable roll = factory.getWildMagicRoll(8,6);
@Delioth Well, the use here is that results are Memoized. Reduces computational complexity.
 
I dunno if I'd really call that a factory pattern?
 
@Delioth How do you distinguish it?
 
8:22 PM
I guess I'd need to see more to make a decision - memoization doesn't require use of a factory (any ol' caller could cache results)
 
Everything that's not a plain constructor is a factory pattern if you squint hard enough :P
 
@Delioth Well, the factory contains the results of the memoized rolls. So the memory gets reclaimed if the factory goes away.
 
Hell, even plain constructors could make use of memoziation if your language of choice supports class-level varaibles
 
I didn't have to use a factory pattern to gain memoization benefits, obviously.
 
Yeah, factories should never go away. If it's a factory it should be a singleton (and last for the lifetime of the program) or be fully static
 
8:24 PM
I don't believe in Singletons.
 
Then you don't believe in factories - their point is to be a singleton
 
@Delioth The Factory is a singleton, the things created by the factory are not (the factory variable)
 
@Delioth Well, it's all relative. The intent is that you create 1 factory and then use it to create 20 (or 2000) rolls. The only thing special about my program is that I haven't stopped the programmer from deleting the factory if they don't need it anymore. Which I could very easily do.
Like, here: RollFactory factory = RollFactory.instance();.
Boom. There's your yucky Singleton. =P
 
@Delioth A factory doesn't need to be a singleton at all.
 
@Xirema The intent of the factory pattern has nothing to do with how many things you make with it, the intent of the factory pattern is that it can provide different implementations of an interface based on parameters - I'm not sure if "a set of dice as a Rollable" fits that
@ACuriousMind True, the big part is the polymorphism they allow - singleton design is probably just one of my biases
 
8:30 PM
@Delioth Well, the reason why it does is because "XdY" dice are implemented as a recursive chain of CompositeRoll objects that each contain two [X/2]dY CompositeRolls each containing two [X/4]dY CompositeRolls containing.....
It didn't have to look like that, but that was the easiest way to implement that kind of roll, and I didn't want to create a class whose sole purpose was to be a XdYRoll class.
 
@Xirema Ew
 
@Delioth Well, the Interface is incredibly clean.
 
@Xirema This definitely isn't a natural recursion though
 
RollFactory factory = new RollFactory();
Rollable attackRoll = factory.getD20Roll(7);
Rollable withBless = factory.addBless(attackRoll);
Just don't think about what the underling Rollable objects actually look like. =P
 
The third call is definitely the job of a Decorator, not of a Factory :P
 
8:33 PM
You call that clean? I wouldn't expect to ever need to access the factory with a previous created thing by the factory
 
@Delioth I've been debating adding a RollBuilder object that links back to the factory, to simplify calls.
 
If anything, it should almost be a Builder pattern?
 
Into something like Rollable attackRoll = factory.getD20Roll(7).withBless().build();
 
What language, may I ask? (Some things I know depend on that - I don't know if e.g. C# has default methods on interfaces and such)
 
Java.
 
8:35 PM
Eh, nevermind on the default methods on interfaces, that'd be disgusting anyways
 
Java added default Interface implementations in Java 8, so I do (theoretically) have that.
@Delioth Eh, I have a lot of boilerplate code that is repeated on some of these objects.
@Override
public BigRational oddsOfPassingDC(int dc) {
    return new BigRational(numOccurrencesGreaterEqualThan(dc), numOfTotalOccurrences());
}

@Override
public BigRational oddsOfFailingDC(int dc) {
    return new BigRational(numOccurrencesLessThan(dc), numOfTotalOccurrences());
}
 
Oh, I was thinking to use something like Rollable.getRollable where you'd be using the interface as a factory. that's disgusting, though (and would also be a cyclic dependency unless you inject them)
 
That code is duplicated like 4 or 5 times in different objects, and if my JDK were 8 or higher, that would be a default method in the Rollable interface.
 
But yeah, use default methods for stuff like that. Or make them not class methods at all and put them in a service/util as static methods
Why on earth isn't your JDK 8 or higher
 
@Delioth Using my work jdk, locked at Java 7 because of BS.
 
8:38 PM
@Xirema You should push to fix that
Java 8 is actually reasonable to work with and way more performant
 
@Delioth Not a senior developer. =P
 
@Xirema That means nothing, step up {currently at 2 years experience rebuilding a new frontend ecosystem for the team}
I mean, it means you can't just make the decision, but you can definitely put pressure on your management to move towards it
 
@Delioth Also, some of the actual senior members (10+ years at the company) have been pushing for Java8/9 for awhile, with little success.
 
Notably, Java 7 is a security hole since it stopped getting any upgrades more than 3 years ago
 
I'm pretty sure our entire Apps are Security Holes, irrespective of any deficiencies in the language.
 
8:42 PM
I'm sorry to hear that; meanwhile we're thinking of upgrading to Java 10 or 11
 
Oh, make sure to give some love to this answer, if you have an account over at Math.SE. That's the technique I've been using to generate these tables.
Obviously, I had to adapt it into pseudocode and then adapt it further for the specific situations my program is taking into account, but that represents the core methodology behind anything more complicated than 1d6.
 
 
1 hour later…
10:00 PM
awkward, I was already at math.se but it seems I had to register again
welp
 
10:14 PM
@Xirema Love given.
Though I may go in and MJ the tables. Then again, maybe I won't.
 

« first day (2948 days earlier)      last day (2019 days later) »