Thursday, September 20, 2018
Barbarians of Genebackis
Saturday, December 2, 2017
Stressed Spell Casting
| Cause of Stress | Amount of Stress |
|---|---|
| Not having the spell prepared | 1 (2 if spell level > 3 ) |
| Not having the spell slot for it | spell level/2 |
| Cast a spell from your list and level range that you have seen but do not have in your book/preparable repertoire | 2 |
| Each armor step beyond sorcerer's Armor Allowed | 1 |
| Being struck for damage during the cast and not aborting | 1 |
| Casting anything besides touch attack/melee escape spells in melee contact | 1 |
| Cast a spell over your highest spell slot level | 2 + 2/level over |
| Ritual casting - extended time and materials | -1 |
| Using a scroll from outside of your school, for a spell shared by your school | 1 |
| Using a scroll from outside of your school, for a spell not shared by your school | 2 |
| Casting using a scroll beyond your level | 1+ |
| Roll | Effect |
|---|---|
| 01-20 | Escaped without harm |
| 21-30 | Spell fizzles |
| 31-35 | Add a level of Stress to all casting until well rested |
| 36-40 | Wipe out preparation of one spell (the attempted one first, if prepared). |
| 41-45 | Wipe out energy of one spell slot(the attempted one first, if slot was used, else highest available). |
| 46-49 | Knocked down |
| 46-49 | Destruction of minor or consumable magic item on caster (1st) or friend |
| 52-55 | Attract the unwanted attention of a nearby magically sensitive creature |
| 56-58 | knocked back 10 feet per level of spell |
| 59-61 | Destruction of an item in hand |
| 62-64 | Stunned for one round |
| 65-67 | DCC Generic Spell Misfire (5-6, pg 120) |
| 68-70 | Attract the unwanted attention of all nearby magically sensitive creatures |
| 71-73 | Save vs or Stunned for one turn |
| 74-76 | Experience point loss - 1D4 x 5% of highest level |
| 77-79 | DCC Minor Corruption (5-3, pg 116) |
| 80-82 | Take 1D6 psychic damage per level of spell |
| 83-84 | Attract the unwanted attention of a powerful but potentially remote magically sensitive being |
| 85-86 | Roll on the madness table, effect lasts 1D6 days |
| 87-89 | Take 1D6 damage to a random attribute |
| 91-94 | DCC Major Corruption (5-4, pg 118) if arcane or Deity Disapproval 5-7 if divine (chaotic or evil divine could be either) |
| 95-97 | Destruction of a significant magic item on caster or friend |
| 98-100 | The spell gains/replaces a Mercurial Magic effect (DCC 5-2, pg 111) |
| 101-102 | Gate in an inimical demon of level equal or up to 2 higher than caster, within 30' of the caster |
| 103-105 | Destruction of a most significant magic item on caster or friend within 30 feet |
| 106-109 | DCC Greater Corruption (5-5, pg 119) arcane; deity disapproval, worse of two rolls, if L/G/N divine; C/E divine could be either |
| 110+ | Attract the (potentially ongoing) attention of an inimical divine being. In this campaign that might mean Cthulhu awakens, and starts disturbing the caster's dreams, sending minions, and eventually showing up itself. |
So, Bilzor the Magician, at first level, has cast his one prepared sleep spell for the day, and his party is being overrun by bandits. He tries to save the day by casting another sleep spell, but his only spell slot is drained. He rolls a 47 and has the choice of loss of a minor magic item or attracting the attention of a nearby magically sensitive creature. He picks the item, and since he has a Potion of healing and a level 1 spell scroll, the GM dices and the potion bottle shatters. Had he picked the attention, he gets a creepy being watched feeling, and the DM consults his notes and decides the Ixian witch a level deeper in the dungeon feels the emanations of the reckless spell, and gets a glimspe of Bilzor in her mind's eye, and a general sense of where he is, and might come hunting for him or is at least alerted, can make preparations, like dispatching a minion to spy, and is not surprised by the party for the next day.
Later in the fight, the party's fighter goes down, Bilzor is beset by a pair of bandits, casts a further sleep spell, and is struck by one of them before he gets it off. This time, he'll have 3 Stress, for overcasting beyond his slots, melee, and being injured while casting, and will be adding 10 to each of three rolls. With a 16 first roll that would have succeeded without backfire in the first instance, he now has a 26 result, and the sleep spell fizzles or he has additional Stress for any further casts until he can rest for the day. He chooses the Stress so his spell might go off. The second stress roll of 77 becomes 87 and he declines the permanence of DCC major corruption and takes a 3 point hit to his CHA after followup rolls, the DM decides these points will recover at one per week. The third roll of 52 becomes 62 and he is stunned for a round, declining the DCC misfire table. Bilzor might survive to recover that CHA if the spell puts all his enemies to sleep.
Sunday, November 26, 2017
Putting on my DM Hat Again with Astonishing Swordsmen and Sorcerers of Hyperborea
The Plan
I got the second edition book for Astonishing Swordsmen and Sorcerers of Hyperborea a couple weeks ago via the Kickstarter. I've had the first edition boxed set for a few years, but never got around to actually running it. This time I intend to give it a whirl.So, after reading a lot of it, and putting together a few starting characters that'll probably see service as pregens or NPCs, I decided this morning that the way to actually make myself focus is to put out the call. Here's my initial post on G+ and Facebook:
"So I'm thinking about setting up to try running AS&SH on Roll20. Potential interest? No time picked yet, but I'd aim to have a starter scenario ready in about a week and do the schedule matching dance along the way. In person is also possible if SF Bay Area people are interested."
Given the positive initial response, I got started today on a scenario. There's now enough that I could run it in a pinch, and time to polish it a bit. Now I have to fit it onto the campaign map and flesh it out some.
Sound fun? Leave a comment. Maybe start rolling up a character. The Rules PDF is on still on Black Friday to Cyber Monday sale at http://www.drivethrurpg.com/product/221806/Astonishing-Swordsmen--Sorcerers-of-Hyperborea-Second-Edition?term=astonishing+sword&test_epoch=0
What is this Astonishing Swordsmen and Sorcerors of Hyberborea Game?
Getting Started
Races
Monday, May 15, 2017
Elm One Day In
I usually do a gaming related project to learn a new programming language or framework on my own time, because that is where I have software itches to scratch. This time I started with the simple die roll example and my first step was learning how to take a program where the model is a single Integer that gets updated to a record with two attributes, one the value rolled on the die and the other the size of die to roll. Finding and wrapping my head around the pattern to write to an attribute of a model was my first hurdle.
That set me up for a first serious project. I have been playing a lot of D&D 5e lately and my character sheet has gotten pretty messy. I've been procrastinating on the rewrite, so making a character sheet application that avoids getting messy and can export nice copies is a natural fit. Also at work, we are thinking about rewriting the proposal submission application, which is a form of similar complexity to a D&D character sheet, with a complex nested data structure and a lot of options. I'd like to be able to say with confidence that we can handle it in Elm and be better off for having used it.
So, I hid away the die roller part of the UI with a style of display:none, but kept it around as the core of an in situ dice rolling part, and started into the character sheet.
Design spec: This will be a web based single page application, well loosely SPA since a full character sheet for a spellcaster can run to four or five paper pages, and I'll probably be hiding portions away with paging or tabs of some sort. It will be a full character sheet that can handle multiclassing at least up to three classes. It might not go beyond the Player's Handbook in terms of what it supports with known classes and such, but I might allow for typing in some other options. The displayed form on the web should be usable in game from tablet or laptop, maybe phone but its an awfully big form to navigate on a phone. It will have localstorage persistence for offline use and probably use Dropbox or Google Drive as the personal server storage for accessing the same sheet from multiple devices, but I'm not planning to provide a server that users would depend on with all the authentication, uptime, and cost/monetization issues that entails. In that regard, it will autosave the sheet to at least localstorage as changes are made, with syncing to update remote storage whenever access is good. There will be some sort of list selector to choose the character to to load into the sheet, and something to delete unwanted characters. After a CSS design pass, it should print out a pleasant sheet to use. There will be nested structured data for things like weapons blocks and spell lists, but a lot of things that are simple lists like mundane possessions and encounters to remember will just be free text in text areas. It might be worthwhile to support markdown in text areas.
I spent most of my Sunday coding on it, and by the end had about 500 lines of good code that displayed and recorded edits to the model for pretty much all the top level fields. I intentionally put off the nested structures, knowing they would be more complex, and did zero to minimal CSS styling, leaving that for after things basically work.
I downloaded Atom for the editor and a few Elm related packages for it. It mostly worked for me but I was seeing errors from the package that was trying to auto run elm-format for me and did not go down the rabbit hole of working that out. Instead I manually ran elm-format once at command line later in the day, and mostly just tried to code close to what it would output, which slowed me a little bit. Should probably have run it more often. I had the project sitting in my Dropbox for easy access from other machines, so I did not initialize it as a git repo, but will probably do that in my next big session on it.
It was a very productive flow, using elm-reactor as the dev server and the Chrome browser to see the results. I already love the Elm compiler, which made it very easy to clean up simple mistakes. The debugger was fun to play with, but not too necessary for the simple, repetitive sort of coding I was doing. The workflow for adding a plain text field was very straightforward. Add a line for then new attribute to the model with name and type. Add the new attribute to the initialization record to match the model, with the default value. Add an update message for it to the messages list. Define the function that responds to the message according to one of two patterns, one where it is just text, another where the value needs to be an integer. Add the field and any framing HTML like a list item or label to the view, with the onInput attribute of the field calling the updater message function. Save and go look at the web page to see if it worked or there are compiler errors to fix. Adding a batch of them at once was easy, the compiler is good at pointing out missing ones in some section, mismatch typos, and similar problems, so I could move along quickly. Using an editor with syntax color and bracket/parentheses matching support has the usual benefits. Besides something like fifty basic input fields, I did the first dependent attribute calculations to show the die roll modifiers based on the primary attributes
At that point I had two possible places to go - work out the beginnings of persistence to localstorage or start to tackle the deeper data structures beyond placement of H2 headers in the character sheet to show where they would go.
I went with trying to tackle one of the simpler data structures, the saving throws section where it should have checkbox like controls to mark the two that get the proficiency bonus and fields to enter the value. I also started with intent to have a bonus section for special bonuses to saves like from magic items or feats, and to list the source of bonus, but did not expose that part of each saving throw model right away.
This is where I hit the wall. In Elm you can reach down multiple levels by dot notation in getters but not in setters. So I couldn't say what I initially tried, { model | saves.strength.proficient = not model.saves.strength.proficient } as the update response to clicking the checkbox for the strength saving throw proficiency. Stared at that awhile and started googling for what to do about it.
From what I see, you end up writing a custom setter function that reaches down and updates the innermost record you are updating an attribute on, and the one that encloses that, etc, all the way out. These can be kind of long, so you probably want to tuck them in a module devoted to a related collection of them There is a Focus module from Evan that can simplify this process some, with caveats about performance. There is a blog post about it by Wouter In t Velt that explains how to make some helper functions to shorten it.
But all options are enough of a pain that I didn't move on from there last night, and am considering flattening out the saving throws data structure and possibly doing the calculable dependent values based on character class selection, character level (and thus proficency bonus), and primary attribute modifier, and only making editable fields for special bonuses. The downside is less flexibility for additional character classess. I'll also start looking deeper into the ToDoMVC example to see how to update nested elements that are members of variable length lists like spells and weapon stat blocks.
The take home as a beginner one day into programming in Elm is that Elm is very pleasant and productive to work in if you understand the basics, with a stumbling block once you have to work with nested data models. I expect that is just the first place where I'll be paying back for the benefits of immutability and functional programming. So far though, it feels like a good trade. I want to get back in there and work on the next part.
Tuesday, February 14, 2017
LiveCode and Rogue Stars
LiveCode is a language and concept descendent of HyperCard. It lets you throw together a UI as quickly as possible by drag and drop, wire up components with a mix of property panel choices and light scripting. It started as MetaCard, and was Runtime Revolution for awhile. I used Runtime Revolution pretty extensively back at Stanford in the oughts, and found it quite serviceable for scientific projects. When I first hit their site the day before I saw the $1K a year license and said "Nope" regarding getting back in for a hobby project. Then yesterday I saw they have a GPL open source version. Bingo! Download, learn some of the changes in how it works, and I now have an utterly rudimentary character sheets app that does exactly and only what I need to print out a stack of characters for Friday, and about half of the characters entered. It might even be worth spiffing it up a bit and giving it away. I used to make a lot of gaming software in HyperCard, since it was so easy and fun to do.
Here's what it looks like so far (extra points if you spot the data entry error in the screenshot):
That blank space at top right will get a picture of the figure if I have time to take and insert the pics.
Monday, July 25, 2016
3D Printing
I set it up Monday night and learned to print stuff over the course of the week. Two aspects have been particularly tricky, getting the model to stay stuck down and managing curl from differential cooling of layers of bigger objects.
I have a reasonable solution for the first one, melting some of the waste ABS plastic in acetone and painting/smearing it over the print area of the platform to give good adhesion to the first layer of the print. It was the suggestion from online that seems to best match my printer's print bed, though I haven't yet tried kapton tape.
I have some ideas from online and my own thinking re solving the differential cooling issue, will have to work through them over the next week.
Here's my first painted 2x2" scenery tile from the Kickstarter models collection. I like the result and can see working through a lot more of the set.
Sunday, June 5, 2016
Combat frontage and dungeon design in D&D
This makes a bit of a difference in dungeon crawls, since except in real chokepoints like doorways, bigger parties didn't become such straggle-fests of characters with their line of sight to the enemy blocked. A typical optimized heavy melee front of PCs and hireling warriors was three with weapon and shield in front and three more with pole weapons or missiles or casters in the second rank.
The 5' grid of later standardization is for the convenience of miniatures play with big single bases after scale creep had driven up the size of figures to 28mm and beyond, often on 1" circle or square bases. Three dinky little 25mm Minifigs or McEwans on close order basing will fit a 10' passage on those maps as long as you aren't sticky-grid about it.
Does it matter? A bit. Besides more guys obviously getting to do something in a basic hallway, and more possibilities for flanking in a hallway fight, if you don't do 15' but do 10' is three squares, fireballs and other area effects are even more lethal, when over twice as many slavering orcs can pack in and be blasted by one.
Saturday, May 14, 2016
The Hiring Hall
There are some shortcomings with it being a one day project, so far. The names are lifted right out of the namer for NPCs encountered in dungeons in DunGen and DunMap. So they are a bit dark and florid for your usual bunch of torchbearers and mercenaries. The weapons to character class matches are poor for some of the rarer classes, like monks and druids. So edit those when they come up inappropriate. Some of the quirky adjective phrases are out of place in this context, like describing someone as especially well equipped when they roll off the same table as everyone else. Maybe give them a bump in gear if that comes up, or a magic item. I fudged hit points to a D6 + 1 for all mercenary/soldier types, 1d6 for noncombatant servants, and D8 per level for fighter type classes and D6 per level for other levelled classes to keep the coding down. There is room to add a lot of customization controls, and option in the historical names lists in place or in addition to the syllable masher. All of this stuff is grist for iteration.
But it generates NPCs. Some of them make me laugh out loud when I consider using them. That's a win. And it got me coding game stuff again and some of the data structures I added to equip characters for it can feed right back into DunGen and DunMap.
Thursday, May 5, 2016
Something I have always wanted to do...
Until yesterday.
I took some photos Sunday of my layout for my first game of Andrea Sfiligoi's Of Gods and Mortals* that I quite liked but the background room clutter really detracted. I started thinking about how I really ought to get started with the airbrush and make a backdrop to hide the clutter for better pictures. Whited in the sky on a couple of handy still-flattened box lids Sunday. Well, I backed off on learning to airbrush too and finished the first painting as a regular brushed painting with some cheap craft store acrylics I usually use for terrain last night. I'm pretty happy with the mountain, not as much with the clouds. But now I know I can do something good enough to use. With the dam broken, I can start getting better. And maybe start learning that airbrush too.
Anyway, here it is, proof of concept...
![]() |
| Sobek's left flank guard is the mighty BOAR CROC! |
I think my next one will be on foam core to be wider and still lightweight, and not have corrugations to show through. Maybe do two so as to be able to line a 6 foot table edge?
(Thanks to the guys that reported the pictures problem. I was able to see in from Safari on my work machine. I have re-uploaded the broken images by another path and will see if they are visible soon.)
* Published by Osprey. More on the Anubis vs Sobek game I'm doing with it in my next blog post. I think its going to rock.
Thursday, April 7, 2016
The Quicksilver Bow, a Magic Item
Ivar found great success using the Quicksilver Bow for over a decade, in an illustrious career of surprising duration for a man so frequently endangered by werewolves, but all things have their costs and he eventually succumbed to heavy metal poisoning. Mad as a hatter for much the same reason, he was imprisoned on a particularly bad day by the city watch of Fellstein. Long and repeated use (on the order of several years) will afflict PCs similarly.
It is rumored that Venable also made a Quicksilver Sheath that treats the longsword drawn from it the same way if it is drawn in the presence of a creature vulnerable to silver weapons.




