tag:blogger.com,1999:blog-80661799052501648612024-02-22T02:27:24.421-05:00Quickly, Quietly, Carefully. . . wherein <a href="http://paulgorman.org/about/">Paul Gorman</a> plays with ideas for old-school fantasy roleplaying gamesUnknownnoreply@blogger.comBlogger386125tag:blogger.com,1999:blog-8066179905250164861.post-80429899309062239872018-10-17T12:43:00.000-04:002018-10-17T12:43:32.613-04:00My new blog: devilghost.com<p>
For months, I’ve been slowly moving entries from my old blog (here) to <a href="https://devilghost.com/blog/">my new blog</a>. I want to escape Blogger both because of technology preferences (I like the idea of static site generators, like Hugo and Jekyll) and because I want the security of hosting my own content, safe from the whims of Google.
</p><p>
The imminent demise of G+ accelerated my plans. Where will the G+ OSR/DIY D&D community wash ashore — MeWe or Diaspora or somewhere else? The uncertainty is a good excuse to start blogging again.
</p><p>
Please update your bookmarks to <a href="https://devilghost.com/blog/">https://devilghost.com/blog/</a>.
</p>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8066179905250164861.post-46341234766775520322016-07-27T09:48:00.000-04:002017-10-25T10:05:01.718-04:00Thanks, Evlyn Moreau<p>
UPDATE: Evlyn is back! Cool. <s>I hear Evlyn Moreau is taking a break. That's OK; I hope she feels better soon.</s></p>
<p>
But I've really enjoyed her work, and I feel bad for not taking the opportunity to say so sooner and more loudly.</p>
<p>
Check out her blog, <a href="http://chaudronchromatique.blogspot.com/">Le Chaudron Chromatique</a>!</p>
<p>
Her stuff is really <em>fun</em> — full of ideas and energy.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLsLQ-1HNeU0vPm2PzvKrm1CPd2graMNNjVRyZDm4T-TSrJpAu9W79n4OxTQ0pQ-qlM8uBi-kji1oGpI2hBDIez5lmNeZ7OaanYtHTtmRYKa6gMrtY-hLGNhRlo_7ub4zRDi_LGTxldMun/s1600/holyhousemummy1a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLsLQ-1HNeU0vPm2PzvKrm1CPd2graMNNjVRyZDm4T-TSrJpAu9W79n4OxTQ0pQ-qlM8uBi-kji1oGpI2hBDIez5lmNeZ7OaanYtHTtmRYKa6gMrtY-hLGNhRlo_7ub4zRDi_LGTxldMun/s1600/holyhousemummy1a.jpg" /></a></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-8066179905250164861.post-82001437634813540152016-01-26T08:01:00.001-05:002016-01-26T10:19:43.455-05:00OD&D official PDF's available!!!<p>
Wizards has made the <a href="https://www.dndclassics.com/product/28306/ODD-Dungeons--Dragons-Original-Edition-0e?it=1&site=&manufacturers_id=44">OD&D booklets</a> available as PDF's. Buy yours now!</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://www.dndclassics.com/product/28306/ODD-Dungeons--Dragons-Original-Edition-0e?it=1&site=&manufacturers_id=44" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdGwWvXbeyJbRfy2FFt7iEUkUv4wWgUBkoh4ZPcDL7EtelndSdnrf87JDV8xt8fKSeNAMXnAU8ceIwNgmDVnP7i52aowXC7hC0GYKTtRmIJ8555mhP9bDHd-rhSObx_9GU85KQ1KLSYc3X/s400/odd_box_cover_150px.png" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-40655024809794439692015-12-13T08:34:00.001-05:002015-12-13T08:34:34.879-05:00Why do magic-users create so many magic swords?<p>
One of the questioned that troubled me in my youth: if only magic-users can create magic swords, and the creation of magic items is vastly expensive in terms of time and coin, why would there be so many magic swords?</p>
<p>
Reflecting on this as an adult, the answer seems obvious. It's the answer to so many questions in D&D: wizards are dicks. They're a cantankerous and vengeful lot, who go to extraordinary lengths in pursuit of petty vendettas.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNlTpfCUddseyoKxVs7Q2TqN0Ni7xY6XoZpsou7PZhrnKAQgbmVZ58Dh6IDhyphenhyphenk4nRjW9qfOEaSH5H9Q8KjL3J_GT1EZPwUkl8HSa9KRixpmn3qRIYgWYZuQaTDVcrVv7OBu27EmRZu1aGM/s1600/magicsword.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNlTpfCUddseyoKxVs7Q2TqN0Ni7xY6XoZpsou7PZhrnKAQgbmVZ58Dh6IDhyphenhyphenk4nRjW9qfOEaSH5H9Q8KjL3J_GT1EZPwUkl8HSa9KRixpmn3qRIYgWYZuQaTDVcrVv7OBu27EmRZu1aGM/s400/magicsword.jpg" width="400" /></a></div>
<p>
If I had spent more of my youth reading Vance than Hickman and Weis, this would have been obvious to me.</p>
<p>
This also explains why intelligent magic swords are dicks, more interested in their own (i.e. their creator's) agenda than the life of their wielder.</p>
<p>
That magic-sword +1, +2 vs lycanthropes, with an 8 ego? Some magic-user was sick of his potion garden getting torn up by werehares, and wanted a local lughead to take care of the problem for him.</p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-8066179905250164861.post-50773999331644605202015-10-27T08:02:00.000-04:002015-10-27T08:02:07.802-04:00Stonehell book 2 on sale now!<p>
The long-awaited <a href="http://poleandrope.blogspot.com/2015/10/stonehell-dungeon-into-heart-of-hell-on_27.html">second volume of Stonehell dungeon is on sale now</a>.</p>
<p>
I've played Stonehell and run it. It's a good time. It was also the first megadungeon to adapt the one page dungeon format.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://poleandrope.blogspot.com/2015/10/stonehell-dungeon-into-heart-of-hell-on_27.html" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw_oYWxD313dUdQit-up1nrJivy4wWlzYx_OBl8Ef_oVzGq728rtKiPO0NZ7bDOY49N7PFCUfi0ds6sqo-222YKP2nwx-1c6eWZePH83dICjuu_7KnpCFLAh_0J-8Z-o4WP6dbCusUpKWq/s400/sh2_promo.jpg" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-38323714434607768072015-09-17T15:28:00.000-04:002015-09-17T15:28:07.540-04:00Hidden Treasure of Lost Ahklop session recap<p>
This is just a quick session recap, notable because we started a new campaign, playing fifth edition for the first time.</p>
<p>
Beth was supposed to join us, but had to cancel for baby-related reasons. Ed played a human fighter and a human cleric. Karina played a hobbit rogue. Eric played a gnome wizard.</p>
<p>
After finding a treasure map to allegedly un-looted ruins near the southern city of Ahklop, the party took a raft down the River Groob. Despite their curiosity about Ahklop's giant lizard market and trade in psycho-active garum, they set out into the forest without delay.</p>
<p>
Following a brief stop to test the waters of a purple-glowing spring that left the gnome wizard invisible and the fighter with an enduring longing for an alien dream-city, they found the ruins of a step pyramid.</p>
<p>
The pyramid, unfortunately, was not quite as lost as our treasure hunters hoped. In fact, it was thoroughly infested by electric space snakes and their mind-controlled zomboids (once indigenous tribes-people).</p>
<p>
Following cautious scouting by the invisible gnome wizard, the party decided that a frontal assault was the best course of action (??). They charged the big mama space snake, which was defended by electrified rolling golden orbs. The hobbit rogue put her acrobatics skills to good use, firing arrows at the orbs mid-backflip, while the fighter and cleric engaged the giant snake. The space snake used her electrified Jacob's-ladder-like tail to taze the fighter unconscious and bit the rogue out of mid-air. Both would have died if not for the timely intervention of the cleric, but by that point the space snake had been hurt enough that it attempted to withdraw.</p>
<p>
The snake would have gotten away, but as it slipped down a narrow staircase, the recently revived fighter shoved his halberd in its gut. It disemboweled itself, plugging the staircase with giant snake meat.</p>
<p>
They mopped up the rest of the dungeon, and made off with a few hundred gold pieces, a golden mask with gem eyes, a vial with glowing green fluid, a small crucible filled with semi-solidified gold, a Remove Curse scroll, and a letter that seems to implicate the Grand High Potentate of Ahklop in a nefarious back-room deal to sell her own people out to the space snakes.</p>
<p>
Impressions of 5e after this first session:</p>
<ul>
<li>5e runs more simply than an initial reading lead me to fear.</li>
<li>It's easy for characters to <em>almost</em> die. Intelligent monsters might target clerics?</li>
<li>We didn't remember to use advantage/disadvantage as often as we could have. I'll have to work on that, since it's my favorite 5e mechanic.</li>
<li>The skills got used quite a bit. I'm not sure they enhanced play much beyond what we'd get with simple ability checks.</li>
<li>Players found creative uses for the liberal allowance of cantrips. We saw more clever Mage Hand stuff than repetitive zap-zap.</li>
<li>I still prefer OD&D or Basic, but I have no problem playing or running this. Fifth is a solid D&D.</li>
</ul>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-8066179905250164861.post-20820982736001432232015-07-16T14:10:00.000-04:002015-07-16T14:10:57.948-04:00Sketch of goat-ish thing<p>
A quick lunch hour doodle. I'm trying to spend more time drawing.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig2WskgGcoY80EtbZQKe-gGu4lunbjo1SU_1mRSKkSXLyCPN2cBXAvv0Y5OKapi3iX0Q4TAKXZNhQSoI3PZnLhOMnrE7iY_WVx2alhpM55-1qERaOr9UDzn5-AF2ETy0JRcWP3gSweD4Rb/s1600/goatmorph-color-sm.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig2WskgGcoY80EtbZQKe-gGu4lunbjo1SU_1mRSKkSXLyCPN2cBXAvv0Y5OKapi3iX0Q4TAKXZNhQSoI3PZnLhOMnrE7iY_WVx2alhpM55-1qERaOr9UDzn5-AF2ETy0JRcWP3gSweD4Rb/s640/goatmorph-color-sm.jpg" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-87979263189234186372015-06-11T10:59:00.000-04:002015-06-11T10:59:09.777-04:00R.I.P. Christopher Lee<div class="separator" style="clear: both; text-align: center;"><a href="http://www.theguardian.com/film/2015/jun/11/christopher-lee-dies-at-the-age-of-93-dracula" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG7qw8-xGiYjIgjTQQO21fPsrmnYxQfXlr4mJTPfm3wVy3fJ5_6-v_DokMWfzzPWr5w4Oo0qhi3XzI644atrvMbyioKQQl49LMRQcEPelQEhMNzv7Fq8szyY78SDohFt5e4yoET3suvoxx/s1600/christopherleewickerman.png" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-21429292969397362362015-06-05T09:48:00.002-04:002015-06-05T09:48:54.440-04:00Welcome back, Huge Ruined Scott<p>
In case any of you missed it, Scott, formerly of Huge Ruined Pile, has again<a href="https://cyclopeana.wordpress.com/"> take up blogging again</a>.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://cyclopeana.wordpress.com/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD5A9ZwILEB5qJibdN7fJGNVMAlwrWGNhoSxlB2Oqv-V7aNtWWtek6FIaIrO4_w3YRpUJZICgAGvKUm0Xav7dySWA5OG_yZmcJUYykLI1imOeT2j4ncg6kxY41kwgLzXEFnCMB_v7QH1Qp/s320/cyclopeana-image.png" /></a></div>
<br />Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8066179905250164861.post-84567808030150951702015-04-21T18:02:00.001-04:002015-04-22T08:28:38.483-04:00Simplified encumbrance, movement, and wandering monster checksOne appeal for me of old-school D&D is that the rules are loosely coupled. This is less true of encumbrance, movement, and wandering monster checks. The relatively tight coupling of these systems makes them more fiddly to run, less amenable to house-ruling, and often ignored at the table.<br />
<br />
Wandering monster checks are made every turn (or every <i>N</i> turns). Turns, like in chess, are a matter of tempo --- the productivity of a turn of movement is determined by encumbrance. Moving more slowly per turn results in more monster checks while exploring a given area.<br />
<br />
Do you count the number of squares over which the characters move to determine when a turn ticks over? Do you make wandering monster checks based on that? Or are the rules fiddly enough that you eyeball it? I admit that I often feel my way through these things, rather than keeping a careful account.<br />
<br />
How do we simplify this at the table, while keeping the relationship between encumbrance, movement, and wandering monster checks?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0aloGBQs-RkKWLQgYrmeTTO8yJLZoHD9b7k8eK6vl9AyuX28QGZcSmGuredSMMfbASuVLHKhN_gAqf0uziHmpyqMEPKeqH6QfgJ0WiC9E6sKjZJrTfzs7YJJxBp4e6_QY2-D0hnKWO9Xy/s1600/encumbered.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0aloGBQs-RkKWLQgYrmeTTO8yJLZoHD9b7k8eK6vl9AyuX28QGZcSmGuredSMMfbASuVLHKhN_gAqf0uziHmpyqMEPKeqH6QfgJ0WiC9E6sKjZJrTfzs7YJJxBp4e6_QY2-D0hnKWO9Xy/s1600/encumbered.jpg" height="330" width="400" /></a></div>
<br />
First, encumbrance. We simplify it by eliminating gear counting. Armor is the single heaviest bit of standard kit, and it also has the greatest mechanical importance of any piece of gear. So, we simplify encumbrance by making armor the only piece of gear considered.<br />
<br />
Very simple encumbrance:<br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;">Armor Worn Base Movement</span><br />
<span style="font-family: "Courier New",Courier,monospace;">None/Shield 18''</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Leather 12''</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Chain 9''</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Plate 6''</span><br />
<br />
Shields don't affect encumbrance.<br />
<br />
Use common sense. If the characters haul something very bulky or heavy, movement drops to the next lower movement tier. A fighting-man in plate dragging a statue, for example, falls to 3''.<br />
<br />
We have one further consideration. The Original edition measures all equipment weight in terms of coins. This may seem odd and fiddly, but it nicely encapsulates the idea that every ounce of rope, spikes, or candles a character carries comes at the cost of one gold piece they don't have strength enough to remove from the dungeon. To preserve that idea, we add one wrinkle to our very simple encumbrance system:<br />
<br />
Every 250 coins of found treasure carried drops the character's movement by one tier.<br />
<br />
What about wandering monster checks? Even with our simplified encumbrance, we don't want to be counting squares on the map. Instead, make one wandering monster check per real hour of play time.<br />
<span style="font-family: "Courier New",Courier,monospace;"> </span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Odds of A Wandering Monster</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Armor Worn Base Movement per Real Hour</span><br />
<span style="font-family: "Courier New",Courier,monospace;">None/Shield 18'' 1 in 6</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Leather 12'' 2 in 6</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Chain 9'' 3 in 6</span><br />
<span style="font-family: "Courier New",Courier,monospace;">Plate 6'' 4 in 6</span><br />
<span style="font-family: "Courier New",Courier,monospace;">+Encumbered 3'' 5 in 6</span><br />
<br />
Add an additional check at 1 or 2 in 6 when the characters do something that might attract monsters, like noisily bash down a door or roast a kobold.Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8066179905250164861.post-1064873300009853782015-02-09T07:54:00.000-05:002015-02-09T07:54:05.185-05:00The Road Not Taken in D&D Art<p>
It's not far fetched to imagine D&D might have started with a different artistic direction when we look at book covers of the period, including those from the Ballantine Adult Fantasy series, Penguin Science Fiction, or Arkham House.</p>
<div style="text-align:center;">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/Weirdstone_Brisingamen.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/penguinscifi-1961.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/wormoro-1967.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/outoftimeandspacesmith.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/stormbringer-1967.JPG">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/Black_Easter-1972.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/mountainsmadness.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/TolkienSmithOfWoottonMajor-1967.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/liveforevervance.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/houndstindelos.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/ThreeHeartsAndThreeLions.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/alwayscomesevening.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/outwardurge-1958.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/Broken_sword-1954.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/morepenguinscifi.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/dagon.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/Don_Rodriguez_Chronicles_of_Shadow_Valley-1971.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/horrormuseum-1970.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/quartermasspit-1960.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/Night_of_Light-1972.jpg">
</div>
<p>
Wargames of the era offer similar examples, including one from Gygax.</p>
<div style="text-align:center;">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/alexanderguidon-1971.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/panzerblitz.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/barbarossa.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/warinthewest.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/natodivision.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/fortresseuropa.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/seelowe.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/bestboardwargaming-1980.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/ww3.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/armageddon.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/canada.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/moscowcampaign.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/atlanticwall-1978.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/russiancampaign.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/spitfire.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/breakout.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/starforce.jpg">
</div>
<p>
While thinking about this, I wrote:</p>
<blockquote>
Game art is largely <em>illustrative</em> in function. The text describes an idea, the art shows it. Realism as a technique is more accessible and less open to interpretation than abstraction. For game rules (but perhaps not other game products?), accessibility and specificity are generally more desired than difficulty and ambiguity.</blockquote>
<p>
That's obvious and not absolutely true, but it gave me two further thoughts.</p>
<p>
First, abstraction is used extensively in wargame design for the sake of clarity. Tokens evidence this especially, probably necessitated by their small scale; abstraction in this case is taking away inessential elements, like Picasso's bull.</p>
<div style="text-align:center;">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/PicassoBull.jpg">
<img height="250" src="http://paulgorman.org/roleplaying/dnd/modernism-dnd/unitcounter.jpg"></div>
<p>
Second, the little brown books of OD&D are often described as difficult and ambiguous. What if the game was graphically as abstract?</p>Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-8066179905250164861.post-86154883584801248852015-01-04T22:05:00.001-05:002015-01-04T22:05:35.646-05:00Stonehell Risen!<p>
It's been a long time since <a href="http://quicklyquietlycarefully.blogspot.com/2012/03/stonehell-session-8.html">I last ran Stonehell</a>, but on December 21st the party finally returned to those night-haunted halls. Back in 2012, I was a bit lackadaisical about campaign reports, so I might have missed a couple at the end. The following, played more than two years(!) after the last report, is probably session eleven or twelve of the campaign.</p>
<p>
Our dramatis personae include party leader Slim Charles, the Conjurer; Pope Leo, the Village Priest; and Balian, the Swordsman. Joining them are henchmen Derric, Gilgrim, Nartan, and Colwin.</p>
<p>
The party searched several stone-doored crypts on the first level of Stonehell. Pope Leo succeeded in turning a ghoul, and found a concealed coffer containing a large amount of silver, some jewelry, and a couple of blueberry-colored potions of salty taste.</p>
<p>
The party descended to the second level of Stonehell. They delivered there in tribute the erotic tapestry promised to the intelligent apes as tribute. In thanks, the apes warned them (Slim Charles speaks Ape) that the faerie ring in the theater to the southeast leads to a strange area with great risk and great reward, and that the duplicitous faeries had <em>already</em> charmed a member of their party.</p>
<p>
To the south, the party found a large room with several collapsed columns. After defeating the giant spiders lurking in the darkness of the high vaulted ceiling, the party discovered its first major magic item: boots of levitation.</p>
<p>
This was a short session, but a good start to our new, resurrected Stonehell campaign.</p>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-69431385667948945482014-12-15T17:16:00.001-05:002014-12-16T10:57:14.977-05:00Robot Lovecraft writes technical documentation<p>
Somebody fed <a href="http://puppetlabs.com/puppet/what-is-puppet">Puppet</a> documentation and H.P. Lovecraft stories into a <a href="http://en.wikipedia.org/wiki/Markov_chain">Markov chain</a> generator to produce <a href="http://thedoomthatcametopuppet.tumblr.com/">The Doom that Came to Puppet</a>. This particular type of nonsense really tickles my fancy.</p>
<blockquote>
“Parameters are defined essentially exactly the same way since a surprisingly early time in earth’s history—perhaps over fifty million years.”</blockquote>
<blockquote>
“Additionally, the machine(s) acting as reverse proxy (usually 127.0.0.0/8) will need to be able to reach the basement out of which the abyssward aperture opened.”</blockquote>
<blockquote>
“During the Jurassic Age the Old Ones had perhaps become satisfied with their decadent art—or had ceased to recognize the superior merit of the older (activerecord) backends in a multi-master environment.”</blockquote>
<blockquote>
“Puppet can also be used to demonstrate things here, but it is not wholesome to watch monstrous objects doing what one had known only human beings to do”</blockquote>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-65611480026103892662014-12-04T13:12:00.000-05:002014-12-04T13:12:21.747-05:00New LotFP releases, including Zak's Red & Pleasant Land<p>
The <a href="http://www.lotfp.com/store/">Lamentations of the Flame Princess store</a> has new books available, including <a href="http://dndwithpornstars.blogspot.com/2014/12/red-pleasant-land-and-death-frost-doom.html">Zak S.'s <i>Red & Pleasant Land</i></a>. I hear it's selling quickly, so you should order soon if want one. I found that the now-diffucult-to-find Vornheim was much better in hard copy than PDF (and I like PDF's), and R&PL looks super-deluxe.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.lotfp.com/store/index.php?route=product/product&keyword=zak&category_id=0&description=1&product_id=190" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEGnvLgevC-Hc_soRpriH76rab-eYQgpthYRegkLfS-icVqfHbfG47QndAnO3Xfa5Tl_3Yl6_0Jq-YYSzUZFi8NHgOXOcQSBDKm4d6OO1-tzt8j013CJuYmMBHx6UuXj4FZcOoRmDbT8PI/s1600/zakrpl.png" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-21027102124007514232014-09-11T14:02:00.000-04:002014-09-11T14:02:55.565-04:00Bells<a href="http://www.cabinetmagazine.org/issues/53/hunt.php"><p>
Until the middle of the sixteenth century, English church bells, like other European bells, had a variety of uses: some sacred, some secular, and many that were both. Bells called congregations to church, and told them to flee if there was a fire; they rang to signal a death in the parish, and they rang to help the passage of the souls of the dead through purgatory. Other bells, or other ways of ringing the same bells, commanded people to say a particular prayer. Bells were incredibly well-loved by their parishes and were often baptized and given godparents; their individual tones were voices that spoke to the communities over which they rang. They were among the loudest sounds in the soundscape, making up a language that its parishioners could understand.</p>
<p>
In the Injunctions issued by the ten-year-old king Edward VI in 1547, these many and varied uses for bells were drastically reduced. Only one bell was now allowed “in convenient time to be rung or knelled before the sermon.”2 Bells were so useful that a single one was still to be used to call the godly to church, but in this new post-Reformation England, their other uses were no longer officially approved. The dead didn’t need help through purgatory, because it no longer existed; there was no need to command anyone to say popish prayers such as the Ave Maria by ringing the Angelus bell, because these prayers were now deemed useless. But parishioners had such affection for church bells that this particular injunction was never seriously enforced. They went to great lengths to keep their bells, sometimes by burying them until the zealous storm had passed.</p></a>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-8066179905250164861.post-16256361108573552732014-08-25T09:12:00.000-04:002014-08-25T09:12:00.250-04:00Blobogix<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVzTqvuvtUKb3r4Kr55tDOOrtZElrQ61WHIuNEP8zN8kY7jVHQezfpYL7NPLFA3uTPa_SF2JfXwZwfTjNArlGGf-nrCMVY0cpIPedvt_63mboU1IGtRAOxPywS9IChHD7XnL4GsUnFRDYJ/s1600/blobogix.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVzTqvuvtUKb3r4Kr55tDOOrtZElrQ61WHIuNEP8zN8kY7jVHQezfpYL7NPLFA3uTPa_SF2JfXwZwfTjNArlGGf-nrCMVY0cpIPedvt_63mboU1IGtRAOxPywS9IChHD7XnL4GsUnFRDYJ/s400/blobogix.png" /></a></div>
<p style="text-align:center;font-style:italic">
Blobogix the Invasive Alien Impostor God</p>
<p>
Only a couple of players showed up for this Sunday's game, so we tried an idea I've been considering for a while. Each of us took a half hour to write an adventure with d6 rooms, then we ran each adventure.</p>
<p>
In the adventure I wrote, an invasive alien displaced a local god and enslaved the priests at the shrine. This is a common problem on planet Zerapis. The players managed to free most of the priests from Blobogix's mind control (minus one or two they shot full of arrows), saved several villagers scheduled for human sacrifice, and acquired a powerful but unwieldy ray gun that freezes people by sending their minds to a barren alien world. Unfortunately, they made a dangerous enemy by letting Blobogix escape with his enormous pulsating egg.</p>
<p>
As a player, I found that I've become more conservative and risk averse; I'll take a modest treasure and leave the dungeon without pulling the tantalizing but obviously dangerous shiny lever. Especially when the adventures are so small, I feel bad about it — like I should play with <em>all the things</em>.</p>
<p>
Maybe I just need some fresh blood in my face-to-face group. It's hard to get a small set of busy adults in the same room on a regular basis.</p>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8066179905250164861.post-48751838079952311172014-08-09T18:53:00.000-04:002014-08-09T18:53:09.932-04:00Gruesome Chops for OD&D Fighting-Men<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0cDPBmwAErrf_yKw7VAHTjPdVi193X9LkkOm2PDeYa2pGRzfvzI6RImnqja8839ErZagrIJx4g_lsqNX9Aoj-0QvJLvmHI-F22ZLgyRm2H6tIMZBHuEDp02yFpCYTjBpwyxd7ZQOyAl5l/s1600/stabineye.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0cDPBmwAErrf_yKw7VAHTjPdVi193X9LkkOm2PDeYa2pGRzfvzI6RImnqja8839ErZagrIJx4g_lsqNX9Aoj-0QvJLvmHI-F22ZLgyRm2H6tIMZBHuEDp02yFpCYTjBpwyxd7ZQOyAl5l/s1600/stabineye.jpg" /></a></div>
<p>
I haven't had a regular game in a few months, but that hasn't stopped me from tinkering with my house rules. This is an attempt to give 0e fighting-men a bit more oomph. What do you think?</p>
<h4>Gruesome Chops</h4>
<p>
A roll of 20 to-hit or a roll of maximum damage gives the Fighting-Man the opportunity to make a Gruesome Chop. The player chooses the hit location; here are some examples:</p>
<ol>
<li>Eyeball run through. Monsters with hit dice fewer than or equal to the fighting-man must Save or be kebab'd. Monsters with more hit dice lose an eye* (-2 to hit, cyclops -4).</li>
<li>Neck slit. Monsters with hit dice fewer than or equal to the fighting-man must Save or suffer beheading. Monsters with more hit dice loose their voices, and must Save when using a breath weapon.</li>
<li>Limb chop. Monsters with hit dice fewer than or equal to the fighting-man must Save or be dismembered and bleed out. Monsters with more hit dice (and four or fewer legs) are reduced to zero movement.</li>
<li>Bifurcation (horizontal or vertical). Monsters with hit dice fewer than or equal to the fighting-man must Save or be bisected.</li>
<li>Evisceration. Monsters with hit dice fewer than or equal to the fighting-man must Save or spill their guts.</li>
<li>Ribcage crush. Monsters with hit dice fewer than or equal to the fighting-man must Save or suffocate.</li>
<li>Sever artery. Monsters with hit dice fewer than or equal to the fighting-man must Save or BLOOD SPRINKLER!</li>
<li>Break the monster's sword, splinter its shield, sunder its sandals, etc.</li>
<li>Force the monster to fall back ten or twenty feet to the spot you want them (over pit trap, under portcullis, etc.).</li>
<li>Impale. Monsters with hit dice fewer than or equal to the fighting-man must Save or wriggle in grotesque death throes. Monsters with more hit dice are pinned (movement zero).</li>
</ol>
<p>
Any monster that survives a Gruesome Chop immediately checks morale.</p>
<p>
N.B. — Most monsters do not make Gruesome Chops, but enemy Fighting-Men do.</p>
Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-8066179905250164861.post-15713934859859072992014-07-31T13:05:00.000-04:002014-07-31T13:05:03.295-04:00Death in the Iliad<p>
Check out this excellent group of infographics on <a href="http://greekmythcomix.wordpress.com/comic/deaths-in-the-iliad-a-classics-infographic/">death in the Iliad</a>. I've long maintained that spears need a more prominent place in D&D.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://greekmythcomix.wordpress.com/comic/deaths-in-the-iliad-a-classics-infographic/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhr9d8CXwxo9qt4saWN2iJedvbKoqkZt6Gu4XCCvphhcftL6HOGrpVt0fwsYMkxySQLSmxKg68KoJJasK00U-VgkvbYYl2W4CV6xjUmK78qvMcNTDXsE4EP64eQu5L2Ybhb7iszmPvJWQO/s400/liad-infographic-greekmythcomix-lej-1.png" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-50504737183898516832014-07-16T18:54:00.000-04:002014-07-16T18:54:02.740-04:00Rolling vs Role Playing Discovery of Traps and Secret Doors<p>
Someone on G+ <a href="https://plus.google.com/u/0/109616260295096028510/posts/3iFc7RubpLy">asked</a>: <quote>"Mechanically, why were players expected to role play 'finding traps' but the X in 6 chance to find secret/hidden doors has been there since the get go?"</p>
<p>
We need to distinguish between <em>finding</em> traps and <em>disarming/circumventing</em> traps. The accepted practice is to role play disarming/circumventing traps, but that's not the usual case for finding traps.</p>
<p>
Characters find pit traps, for example, by falling in them, as determined with the roll of a die. <i>The Underworld & Wilderness Adventures</i> says on page 9:</p>
<blockquote>
"Traps are usually sprung by a roll of a 1 or a 2 when any character passes over or by them. Pits will open in the same manner."</blockquote>
<p>
Once players know the pit is there, it's easy to avoid in the future. We might be tempted to complain that dice rolling of this sort is unfair in its arbitrariness, but consider the alternative of role playing the examination every crack, hole, and loose stone in the dungeon.</p>
<p>
Other kinds of traps — where the presence of a trap is obvious, but the way of avoiding it is not — we resolve through role playing. "You enter a room with a rotting bisected goblin corpse in its center. A few feet from the goblin's body, an overturned bucket spills grease onto the stone floor. Above the corpse, you notice a dark slot in the ceiling from one side wall to the other, and connecting grooves running down the side walls that seem to be greased. What do you do?" No dice roll required.</p>
<p>
What about rolling for secret doors? Here's <i>U&WA</i> again:</p>
<blockquote>
"Secret passages will be located on the roll of a 1 or a 2 (on a six-sided die) by men, dwarves or hobbits. Elves will be able to locate them on a roll of 1-4. At the referee's option, Elves may be allowed the chance to sense any secret door they pass, a 1 or a 2 indicating that they become aware that <u>something</u> is there."</blockquote>
<p>
The text uses "located" rather than "opened", and draws a distinction between actively locating known/suspected secret doors and passively spotting unknown/unsuspected ones.</p>
<p>
That suggests a procedure where, after a secret door is located by a roll, we role play opening the door. "I'm going to try pushing each edge of the door outline, and if that doesn't work I'll fiddle with the nearby sconce."</p>
<p>
The mechanics for traps and doors <em>are</em> the same (with the obvious reversal that traps are meant to be found (triggered) and secret doors are not).</p>
<h3>
How to Open the Secret Door</h3>
<ol>
<li>Push door edge to pivot door.</li>
<li>Twist wall sconce near door.</li>
<li>Pull out jutting stone near door edge to release latch.</li>
<li>Replace missing wall stone lying among debris on floor (falls out after door closes again).</li>
<li>Only opens for [1-2 Magic-users 3-4 Fighting-men 5-6 Clerics].</li>
<li>Only opens for [1-2 Monsters 3-4 Undead 5-6 Puddings, jellies, etc.].</li>
<li>Push two stones, one on either side of the door, simultaneously.</li>
<li>Smear you hand with blood, and touch the faint brownish handprint in the middle of the door.</li>
<li>Step on protruding flagstone on floor.</li>
<li>Drain water from adjoining room to relieve pressure on door.</li>
<li>Burn away wax facade.</li>
<li>Opens when the other door to the room is locked.</li>
<li>Hidden door is a decoy; entire wall rotates.</li>
<li>Insert staff or rod in small hole to lever door open.</li>
<li>A strong magnet raises a latch internal to the door.</li>
<li>Opens in light of the moon (may require <em>several</em> mirrors).</li>
<li>Circular door. It unscrews.</li>
<li>Prying the base of the "door" unfolds a ladder — there's a trap door in the ceiling.</li>
<li>Pull latch inside mouth of stone devil face.</li>
<li>Rearming nearby trap causes door to open</li>
</ol>
<h3>
"Somethings" Elves Sense Besides Secret Doors</h3>
<ol>
<li>An elf died on this spot centuries ago. Clerics able to cast <i>Speak with Dead</i> may contact this elf regardless of their level and how long ago the elf died, although the spirit mostly wants to share the morbid elven verse its been composing to while away the years.</li>
<li>Cold iron</li>
<li>Flowing water</li>
<li>Dwarves</li>
<li>Pentangles</li>
<li>Elf needs food</li>
</ol>
Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-8066179905250164861.post-38937920527741424832014-07-05T15:34:00.000-04:002014-07-05T15:34:23.769-04:00Judges Guild style numbered hex paper<p>
I made some <a href="http://devilghost.com/publications/hexgrid.zip">Judges Guild style numbered hex paper</a>, broken up into four US letter size pages. The zip file includes editable Inkscape SVG's and PDF's.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzXddfIwvNWwtRIac8ljGM5EZa4fX0x7ZGNa1FkaeFYf_UAmZ9nu9JXZ-5Z3ir41_6TMPi8LNkkxB_1RR_kRyhRQFO6xHFGSXPpY_THJSO-FVVWwjkILIi3fGkWxEaKsmohXd8rNcv1Pe6/s1600/hexgrid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzXddfIwvNWwtRIac8ljGM5EZa4fX0x7ZGNa1FkaeFYf_UAmZ9nu9JXZ-5Z3ir41_6TMPi8LNkkxB_1RR_kRyhRQFO6xHFGSXPpY_THJSO-FVVWwjkILIi3fGkWxEaKsmohXd8rNcv1Pe6/s1600/hexgrid.png" /></a></div>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8066179905250164861.post-20125761489550411092014-07-03T16:09:00.001-04:002014-07-03T16:09:32.735-04:00Bookmark: A Framework for D&D Horror <p>
John at Dreams in the Lich House nicely articulates <a href="http://dreamsinthelichhouse.blogspot.com/2014/07/a-framework-for-d-horror.html">a framework for D&D horror</a>. It sounds like a good plan, and I look forward to hearing more details.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8066179905250164861.post-83776192195576389062014-06-12T20:16:00.001-04:002014-06-12T20:16:39.416-04:00B/X Combined and Expanded Index<p>
I combined and expanded the indices for Moldvay <em>Basic</em> and Marsh/Cook <em>Expert</em>. Here's the <a href="http://devilghost.com/publications/bxindex.pdf">B/X Index PDF</a> (and the <a href="http://devilghost.com/publications/bxindex.tex">LaTeX file</a>).</p>Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-8066179905250164861.post-14655670880595089722014-06-09T09:30:00.000-04:002014-06-09T09:30:00.062-04:00More Micro Generator Examples<p>(This is a follow-up to my <a href="http://quicklyquietlycarefully.blogspot.com/2014/06/embedded-micro-generators-for-dungeos.html">previous post</a> on the topic. To see all the examples in a slightly more readable format, click <a href="http://devilghost.com/software/embeddedmicrogeneratorstutorial/">here</a>.)</p>
<h2>Magic Item Type Example</h2>
<p>Here we have the classic Magic Item Type selection table from page 23 of <i>Monsters & Treasure</i>.</p>
<script>
function getMagicItemType() {
var magicItemTypesTable = [
[20, "Swords"],
[15, "Armor"],
[5, "Misc. Weapons"],
[25, "Potions"],
[20, "Scrolls"],
[5, "Rings"],
[5, "Wands/Staves"],
[5, "Misc. Magic"]
];
function randomTableValue(table) {
// How large is this table? What's the maximum roll? d12, d100, or what?
var max = 0;
for (var i = 0; i < table.length; i++) {
max = max + table[i][0];
}
var roll = Math.floor(Math.random() * max) + 1;
// Find our roll result in the table:
var countUpToRoll = 0;
for (var i = 0; i < table.length; i++) {
if (roll <= table[i][0] + countUpToRoll) {
return "d" + max + " = " + roll + ": " + table[i][1];
} else {
countUpToRoll = countUpToRoll + table[i][0];
}
}
}
var itemType = document.getElementById("magicitemtype");
itemType.innerHTML = randomTableValue(magicItemTypesTable);
}
</script>
<div class="demo">
<button onclick="getMagicItemType();">Roll Magic Item Type</button>
<span id="magicitemtype"></span>
</div>
<h3>The Code for Magic Item Type</h3>
<p>This script selects items from a table that has one result for a range of rolls. The list syntax is slightly different than we've seen. It's a list that contains lists.</p>
<pre class="prettyprint lang-html">
<script>
function getMagicItemType() {
var magicItemTypesTable = [
[20, "Swords"],
[15, "Armor"],
[5, "Misc. Weapons"],
[25, "Potions"],
[20, "Scrolls"],
[5, "Rings"],
[5, "Wands/Staves"],
[5, "Misc. Magic"]
];
function randomTableValue(table) {
// How large is this table? What's the maximum roll? d12, d100, or what?
var max = 0;
for (var i = 0; i < table.length; i++) {
max = max + table[i][0];
}
var roll = Math.floor(Math.random() * max) + 1;
// Find our roll result in the table:
var countUpToRoll = 0;
for (var i = 0; i < table.length; i++) {
if (roll <= table[i][0] + countUpToRoll) {
return "d" + max + " = " + roll + ": " + table[i][1];
} else {
countUpToRoll = countUpToRoll + table[i][0];
}
}
}
var itemType = document.getElementById("magicitemtype");
itemType.innerHTML = randomTableValue(magicItemTypesTable);
}
</script>
<div>
<button onclick="getMagicItemType();">Roll Magic Item Type</button>
<span id="magicitemtype"></span>
</div>
</pre>
<h2>Arena Fighter Name Generator</h2>
<p>We can slightly vary the generated content with randomness and conditional execution.</p>
<script>
function arenaFighterName() {
function arnd(a) {
// Return random element of array a.
var i = Math.floor(Math.random() * (a.length));
if (typeof a[i] === 'function') {
return a[i]();
}
return a[i];
}
function namePart1() {
return arnd([
"Al", "En", "Ro", "Fel", "Ston", "Hal", "Jo", "Nel", "Ve", "Ga"
]) + arnd([
"rick", "bert", "wick", "thor", "ky", "son", "frey", "sley", "gil"
]);
}
function namePart2() {
var x = Math.random();
if (x < 0.25) {
return "the " + arnd([
"Brave", "Bloody", "Bold", "Cruel", "Clever", "Cunning",
"Indomitable", "Destroyer", "Quick", "Heartless", "Sly"
]);
} else if (x < 0.5) {
return "of " + arnd([
"Green", "New", "River", "Dun", "Lun", "North", "Wolver",
"Tam", "Chapel", "Wit", "Bran", "Mor", "Ep", "Grims", "Gos"
]) + arnd([
"thorpe", "by", "ford", "bury", "ham", "shire", "ton", "don",
"ly", "field", "beck", "gate", "well", "holme", "wick", "port"
]);
} else if (x < 0.75) {
return namePart1();
} else {
return "";
}
}
var name = namePart1() + " " + namePart2();
var outputSpan = document.getElementById("arenafightername");
outputSpan.innerHTML = name;
}
</script>
<div class="demo">
<button onclick="arenaFighterName();">Arena Fighter Name</button>
<span id="arenafightername"></span>
</div>
<p><code>Math.random()</code> returns a value between 0 and 1.</p>
<pre class="prettyprint lang-html">
<script>
function arenaFighterName() {
function arnd(a) {
// Return random element of array a.
var i = Math.floor(Math.random() * (a.length));
if (typeof a[i] === 'function') {
return a[i]();
}
return a[i];
}
function namePart1() {
return arnd([
"Al", "En", "Ro", "Fel", "Ston", "Hal", "Jo", "Nel", "Ve", "Ga"
]) + arnd([
"rick", "bert", "wick", "thor", "ky", "son", "frey", "sley", "gil"
]);
}
function namePart2() {
var x = Math.random();
if (x < 0.25) {
return "the " + arnd([
"Brave", "Bloody", "Bold", "Cruel", "Clever", "Cunning",
"Indomitable", "Destroyer", "Quick", "Heartless", "Sly"
]);
} else if (x < 0.5) {
return "of " + arnd([
"Green", "New", "River", "Dun", "Lun", "North", "Wolver",
"Tam", "Chapel", "Wit", "Bran", "Mor", "Ep", "Grims", "Gos"
]) + arnd([
"thorpe", "by", "ford", "bury", "ham", "shire", "ton", "don",
"ly", "field", "beck", "gate", "well", "holme", "wick", "port"
]);
} else if (x < 0.75) {
return namePart1();
} else {
return "";
}
}
var name = namePart1() + " " + namePart2();
var outputSpan = document.getElementById("arenafightername");
outputSpan.innerHTML = name;
}
</script>
<div>
<button onclick="arenaFighterName();">Arena Fighter Name</button>
<span id="arenafightername"></span>
</div></pre>
<h2>Dynamically Chosen and Arranged Images (Geomorphs!)</h2>
<p>We can play with images as well as text.</p>
<script>
function shuffleGeomorphs() {
function arnd(a) {
// Return random element of array a.
var i = Math.floor(Math.random() * (a.length));
if (typeof a[i] === 'function') {
return a[i]();
}
return a[i];
}
var geomorphImages = [
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g01.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g02.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g03.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g04.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g05.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g06.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g07.png",
"http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g08.png",
];
var imageOutputs = document.getElementById('geomorphgrid').childNodes;
for(var i = 0; i < imageOutputs.length; i++) {
imageOutputs[i].src = arnd(geomorphImages);
}
}
</script>
<button onclick="shuffleGeomorphs();">Shuffle Geomorphs</button>
<div id="geomorphgrid">
<img src="http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g00.png">
<img src="http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g00.png">
<img src="http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g00.png">
<br>
<img src="http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g00.png">
<img src="http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g00.png">
<img src="http://devilghost.com/software/embeddedmicrogeneratorstutorial/img/g00.png">
</div>
<pre class="prettyprint lang-html"><script>
function shuffleGeomorphs() {
function arnd(a) {
// Return random element of array a.
var i = Math.floor(Math.random() * (a.length));
if (typeof a[i] === 'function') {
return a[i]();
}
return a[i];
}
var geomorphImages = [
"img/g01.png",
"img/g02.png",
"img/g03.png",
"img/g04.png",
"img/g05.png",
"img/g06.png",
"img/g07.png",
"img/g08.png",
];
var imageOutputs = document.getElementById('geomorphgrid').childNodes;
for(var i = 0; i < imageOutputs.length; i++) {
imageOutputs[i].src = arnd(geomorphImages);
}
}
</script>
<button onclick="shuffleGeomorphs();">Shuffle Geomorphs</button>
<div id="geomorphgrid">
<img src="img/g00.png">
<img src="img/g00.png">
<img src="img/g00.png">
<br>
<img src="img/g00.png">
<img src="img/g00.png">
<img src="img/g00.png">
</div></pre>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-8066179905250164861.post-70961601539575485012014-06-05T16:10:00.000-04:002014-06-05T16:45:33.204-04:00Embedded Micro Generators for Dungeons & Dragons Blogs(If you want to read this post with a slightly more readable presentation, go <a href="http://devilghost.com/software/embeddedmicrogeneratorstutorial/">here</a>.)
<p>JDJarvis over at <a href="http://aeonsnaugauries.blogspot.com/">Aeons & Augauries</a> inspired me to write this with his little generators like the <a href="http://aeonsnaugauries.blogspot.com/2014/06/foul-tomes-of-carcosa.html">Foul Tomes of Carcosa</a>.</p>
<p>You can include generated content in you blog posts by adding a script like the ones below. Put the code into your post using your blog editor's text/​HTML mode (on Blogger, click the "HTML" button next to the "Compose" button). Each example is entirely self-contained. Cut, paste, and tinker!</p>
<h2>d20 Example</h2>
<p>Here we click a button to generate a random number.</p>
<script>
function roll20() {
var min = 1;
var max = 20;
var roll = Math.floor(Math.random() * (max - min + 1)) + min;
var outputSpan = document.getElementById("d20result");
outputSpan.innerHTML = roll;
}
</script>
<div class="demo">
<button onclick="roll20();">d20</button>
<span id="d20result"></span>
</div><br />
<h3>The Code for d20</h3>
<pre class="prettyprint lang-html" style="overflow:auto;"><script>
function roll20() {
var min = 1;
var max = 20;
var roll = Math.floor(Math.random() * (max - min + 1)) + min;
var outputSpan = document.getElementById("d20result");
outputSpan.innerHTML = roll;
}
</script>
<div>
<button onclick="roll20();">d20</button>
<span id="d20result"></span>
</div></pre>
<h2>Magic Tower Example</h2>
<p>Here we combine random selections from various lists, and do it without a button.</p>
<script>
function generateMagicTower() {
function arnd(a) {
// Return random element of array a.
var i = Math.floor(Math.random() * (a.length));
if (typeof a[i] === 'function') {
return a[i]();
}
return a[i];
}
var colors = ["Red", "Black", "White", "Gray", "Pearlescent", "Lurid", "Hoary"];
var structures = ["Tower", "Spire", "Turret", "Belfry", "Citadel", "Seculsium"];
var outputParagraph = document.getElementById("magictower");
outputParagraph.innerHTML = "The " + arnd(colors) + " " + arnd(structures);
}
</script>
<div class="demo">
<p id="magictower" onclick="generateMagicTower();">Click this paragraph to generate a Magic Tower (then click it again to generate another).</p>
</div>
<h3>The Code for Magic Tower</h3>
<pre class="prettyprint lang-html" style="overflow:auto;"><script>
function generateMagicTower() {
function arnd(a) {
// Return random element of array a.
var i = Math.floor(Math.random() * (a.length));
if (typeof a[i] === 'function') {
return a[i]();
}
return a[i];
}
var colors = ["Red", "Black", "White", "Gray", "Pearlescent", "Lurid", "Hoary"];
var structures = ["Tower", "Spire", "Turret", "Belfry", "Citadel", "Seculsium"];
var outputParagraph = document.getElementById("magictower");
outputParagraph.innerHTML = "The " + arnd(colors) + " " + arnd(structures);
}
</script>
<p id="magictower" onclick="generateMagicTower();">Click this paragraph to generate a Magic Tower (then click it again to generate another).</p></pre>
<h2>Dynamic Hit Points Example</h2>
<p>In the paragraph below, the hit points are randomly generated each time the page loads. Reload this page to see the hit points change.</p>
<div class="demo">
<p>An Ogre (HP <span id="ogrehitpoints"></span>; AC 5; Move 9"; HD 4+1) glowers from the cave entrance.</p>
</div>
<script>
function rollHitPoints(hdNumber, hdPlus, hdSize) {
hdNumber = hdNumber || 1;
hdPlus = hdPlus || 0;
hdSize = hdSize || 6;
var hitPoints = 0;
for (var i = 0; i < hdNumber; i++) {
hitPoints = hitPoints + Math.floor(Math.random() * hdSize) + 1;
}
hitPoints = hitPoints + hdPlus;
return hitPoints;
}
var ogreHitPoints = document.getElementById("ogrehitpoints");
ogreHitPoints.innerHTML = rollHitPoints(4, 1);
</script>
<h3>The Code for Dynamic Hit Points</h3>
<pre class="prettyprint lang-html" style="overflow:auto;"><p>An Ogre (HP <span id="ogrehitpoints"></span>; AC 5; Move 9"; HD 4+1) glowers from the cave entrance.</p>
<script>
function rollHitPoints(hdNumber, hdPlus, hdSize) {
hdNumber = hdNumber || 1;
hdPlus = hdPlus || 0;
hdSize = hdSize || 6;
var hitPoints = 0;
for (var i = 0; i < hdNumber; i++) {
hitPoints = hitPoints + Math.floor(Math.random() * hdSize) + 1;
}
hitPoints = hitPoints + hdPlus;
return hitPoints;
}
var ogreHitPoints = document.getElementById("ogrehitpoints");
ogreHitPoints.innerHTML = rollHitPoints(4, 1);
</script></pre>
<h2>Learn More About JavaScript</h2>
<p>You can learn a lot of JavaScript using <a href="https://developer.mozilla.org/en-US/learn/javascript">free tutorials</a> on the web.</p>
<p>Start a cheat sheet and keep track of what you learn. Refine it over time as your understanding increases. Here's <a href="http://paulgorman.org/technical/javascript.php">my JavaScript cheat sheet</a>, for example.</p>
<p>You may also want to keep a code clipping file to store useful and clever little bits of JavaScript to reuse.</p>
<p>Mozilla Developer Connection has a good <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript reference</a>. It's a better than many of the alternatives that rank higher on Google results. (In fact, when I search for JavaScript reference info, I include "MDN" in my search terms.)</p>
<p>If you want to learn from books, these are good:</p>
<ul>
<li><a href="http://shop.oreilly.com/product/0636920027065.do">Head First JavaScript</a> (introductory)</li>
<li><a href="http://shop.oreilly.com/product/9780596806149.do">JavaScript Cookbook</a></li>
<li><a href="http://shop.oreilly.com/product/9781593275402.do">The Principles of Object-Oriented JavaScript</a></li>
<li><a href="http://shop.oreilly.com/product/0636920029564.do">Speaking JavaScript</a></li>
<li><a href="http://shop.oreilly.com/product/9780596517748.do">JavaScript: The Good Parts</a></li>
</ul>
<p>If you start writing scripts of more than a dozen lines, get yourself a good text editor. For Windows, try <a href="http://notepad-plus-plus.org/">NotePad++</a>. For Mac, try <a href="http://www.barebones.com/products/textwrangler/download.html">TextWrangler</a>. If you're on Linux, you probably already have a favorite text editor, but if not try <a href="https://wiki.gnome.org/Apps/Gedit">gEdit</a> (or go all hardcore and learn vim).</p>
<p>Finally, you should at least be aware of <a href="http://www.jslint.com/">JSLint</a> and <a href="http://www.jshint.com/">JSHint</a>. They're alternative sites that find errors in JavaScript code. JSLint is more rigorous/harsher. If your JavaScript gets an error you can't solve, these tools may help you find it.</p>
<h2>About These Micro Generators</h2>
<p>This code was written by Paul Gorman. You may copy, reuse, redistribute, and modify the example code however you see fit.</p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-8066179905250164861.post-91838116434346935632014-06-05T15:20:00.001-04:002014-06-05T15:20:31.320-04:00TestThis is a test.
<script>
function roll20() {
var min = 1;
var max = 20;
var roll = Math.floor(Math.random() * (max - min + 1)) + min;
var outputSpan = document.getElementById("d20result");
outputSpan.innerHTML = roll;
}
</script>
<div>
<button onclick="roll20();">d20</button>
<span id="d20result"></span>
</div>Unknownnoreply@blogger.com3