Thursday, March 22, 2018

Adventure Breakdown - Starfinder - Incident At Absalom Station part 1

    I played my first Starfinder adventure a while back, the published module "Incident At Absalom Station" by Paizo and first in a 6 part campaign.  A conversation during that adventure took a long time, and some newer players struggled with it - which led me to start work on my conversation map.  My friend, who ran the adventure, asked me if I wanted to take a look at the next part of the campaign and see how it would fit with my conversation map, which led me to reading ahead and seeing how the adventure was written behind the scenes.
    What I found surprised me.  The "conversations" were hardly that, they were poorly-designed exposition dumps with no real choices or input from the players.  In fact, reading over the first and second adventures I was not impressed by the quality of the adventure design at all.  So I decided that I would write up how the adventure goes, and my thoughts on what's wrong, right, and what I'd change - just as a thought experiment on adventure design.  So here goes.
    Now, I'm going to quote some sections of the module directly, so there will be spoilers, but I'll try to minimize them and point out what sections could give any key plot details away.  To start though I'm going to look at the very first scene, the opening encounter in what will be the first of six adventures in this campaign.
    So how does the adventure start?  Like this...


     The Dead Suns Adventure Path starts on Absalom Station, the gigantic space station that occupies the former orbit of the sun’s now-vanished third planet, Golarion. Absalom Station is the administrative and cultural center of the Pact Worlds, and now serves as the system’s primary home of humanity. The player characters should have some sort of connection with the Starfinder Society, either as new members or as prospective applicants (at the very least, the PCs should have a good reason to ally themselves with the Society), and have come to Absalom Station to find work.

     The PCs don’t need to be acquainted with one another yet; they’ve all made arrangements to meet a dwarven Starfinder named Duravor Kreel in Docking Bay 94. Kreel has promised to show them around the station, help them get settled, and facilitate their membership into the Starfinder Society. The adventure assumes that the PCs are all passengers on the shuttle Okimoro, which has just arrived at Absalom Station, landing in Docking Bay 94. If any characters are natives of Absalom Station, they can be either returning to the station after a short time away or present in the docking bay awaiting the shuttle’s arrival. Adjust the first encounter as necessary to account for any PCs that are not passengers on the shuttle. The players should take a few moments to make introductions and describe their characters to each other before moving on to the first encounter, Caught in the Crossfire, on the next page.


     The Okimoro has just landed in Docking Bay 94, one of scores of docking bays occupying the starlike arms that encircle Absalom Station’s equator. Final docking procedures take a few minutes, at which point the cabin attendant welcomes the shuttle’s passengers to Absalom Station, and the PCs can disembark from the Okimoro onto the floor of Docking Bay 94.

     To set the scene and get the adventure started, read or paraphrase the following.

The brightly lit docks of Absalom Station are abuzz with activity as travelers bustle by, preparing to board or disembarking from starships bound to or from any of dozens of worlds. Brash and swaggering starpilots, scurrying ysoki mechanics, and expectant colonists mingle with enigmatic kasatha mystics, hard-faced asteroid miners, imposing vesk mercenaries, and more, creating a microcosm of the abundance and variety of life in the Pact Worlds. New arrivals meet friends, loved ones, or business contacts, and are whisked away into the humming activity of daily life on the vast space station. Beyond them, ground crews tend to the docked ships, and dockworkers in mechanized cargo lifters load and unload freight and baggage. A sharp tang of ozone hangs in the air—a byproduct of electrical discharges from the docked ships—but underneath, the station’s atmosphere has a slightly used aroma. The docking bay’s deck plates thrum beneath your feet, though whether it’s from the passage of innumerable feet or the vibrations of the station’s power conduits and air recycling systems is impossible to say.

     Creatures: The PCs’ Starfinder contact, Duravor Kreel (LN male dwarf), is awaiting their arrival in the docking bay, but two other groups—members of a pair of rival Absalom Station street gangs, the Downside Kings and the Level 21 Crew—are moving stealthily into the docking bay at the same time. The two gangs have been adversaries for years, but their animosity toward each other has flared in recent days, as each gang has been hired by one of the factions currently competing over the fate of the Acreon and the Drift Rock: Astral Extractions and the Hardscrabble Collective. Astral Extractions has ordered the Kings to intimidate the Collective’s members and keep any other faction (such as the Starfinders) from intervening in the dispute. The Level 21 Crew, hired for protection by the Hardscrabble Collective, got wind of the Kings’ activities and headed to Docking Bay 94 to confront their rivals.

     When all the PCs have set foot in the docking bay, allow them to attempt Perception checks. Any PC who succeeds at a DC 5 Perception check sees Kreel waiting for them in the middle of the docking bay. Any PC who succeeds at a DC 15 Perception check also notices the two groups of people on the fringes of the docking bay furtively taking up defensive positions among stacks of cargo crates and machinery.

     Kreel is tall and lanky for a dwarf, with a bristly, iron-gray beard and deep-set eyes beneath bushy eyebrows. With his patched and stained coveralls, the dwarf looks like just another dockworker, but a badge bearing the symbol of the Starfinder Society stands out on his chest. Kreel checks the computer he’s holding and looks up to scan the crowd. When he sees the PCs, he raises a hand in greeting and gives them a friendly smile. Before the PCs can return the greeting, however, the air is suddenly filled with laser blasts as the Kings and the 21 Crew open fire on each other. Bystanders scream and flee in terror, diving for cover or milling about frantically. Kreel freezes, paralyzed with fear.

    There are six gang members in total: three Downside Kings and three Level 21 Crew (use the Absalom Station gang member stat block below for members of both gangs). The Downside Kings enter the docking bay from the northeast (see the Directions in Space sidebar) and take up the positions marked G on the right side of the map. The Level 21 Crew enter from the northwest and take up the positions marked G on the left side of the map. Duravor Kreel stands in the middle of the docking bay at the position marked K on the map. The PCs start in the area marked with caution lines in the bottom center of the map.

     The first round of combat is a surprise round. Only the gangs and PCs who succeeded at the more difficult Perception check to notice the approaching gang members can act during this round. Have each of the PCs roll 1d6; on a roll of 1, that character is targeted this round by one of the gang members. At the same time, the PCs see a laser beam hit Kreel. The dwarf falls to the floor without a sound and does not move.

    Following the surprise round, combat continues as normal. The gangs have no idea who the PCs are, and the scene is utter chaos. Each round, randomly determine whether the individual gang members shoot at the PCs or the other gang. If they can’t get a clear shot at any of the PCs, they fire at the opposing gang. Even though the gangs are shooting at the PCs, it should be clear to them that the gangs’ real targets are each other; the PCs are just caught in the crossfire.

     There is plenty of cover available in the docking bay for combatants on all three sides to make use of, from crates and shipping containers to baggage carts, machinery, and even an information booth near the middle of the docking bay. The precise type of cover (partial, normal, improved, or total) these objects provide is left for you to determine, and the PCs (or the gang members) might be able to increase their amount of cover by ducking down or dropping prone behind smaller objects. In any case, both the PCs and gang members would be well advised to take advantage of the opportunities for cover within the docking bay.

     Discourage the PCs from engaging both gangs at the same time; that would make this a CR 4 encounter—a challenge of epic difficulty for 1st-level PCs! Instead, let them know it’s better to focus their fire and take out one group of enemies at a time. Neither gang is interested in talking; their blood is up and they just want to hurt their rivals. Once all three members of one gang have been killed, the survivors from the other gang immediately stop fighting and flee the docking bay, disappearing into the depths of the station.

     PCs who want to check on Kreel or give him medical aid find that the dwarf is already dead, with a hole burned completely through his neck from the laser beam. No matter what they try, nothing the PCs do can save him. It’s important that Kreel dies before the PCs can do anything about it; their investigation of the dwarf’s death on behalf of the Starfinder Society is the impetus for the following sections of the adventure.

     Development: As the battle winds down, station security finally arrives, but too late to join in the fight. Emergency medical services follow a few minutes later to assist the injured. Security personnel question witnesses (including the PCs) and take their statements. Fortunately, the witnesses agree that the PCs didn’t start the fight, so they are free to go. If asked, any of the security officers can identify the two groups involved as two of Absalom Station’s most infamous street gangs: the Downside Kings and the Level 21 Crew.

     If necessary, the emergency medics can administer first aid to the PCs or treat deadly wounds (using the Medicine skill). They can also confirm that Kreel is dead and make arrangements for the body. If the PCs search the dwarf’s body, they find little other than his computer, which contains the name and description of each of the PCs, as well as one additional name: Chiskisk, and an address. A PC who succeeds at a DC 15 Culture check to recall knowledge recognizes the name as that of a high-ranking Starfinder on Absalom Station, and the address as that of the Lorespire Complex, the Starfinder Society’s headquarters on the station.

     Story Award: If the PCs somehow manage to avoid combat by escaping or sneaking out of the docking bay without engaging either of the gangs, award them 600 XP, as if they had defeated one of the gangs.

Okay, so I hate pretty much everything about this opening.  I'm going to go over all my objections one by one, and discuss my adventure design philosophy for each point.  Then in the comments section below you can tell me why I'm wrong :)

1 - Getting The PCs Together

    The very first and most fundamental thing a beginning adventure has to do is get the party together.  How and why the PCs meet sets the stage for all the PC interactions to follow.  A party of mercenaries has a much different feel than a group of friends.  And those PC-to-PC relationships can have consequences for the campaign's plot.  A group of mercenaries might have to worry about one of their own betraying them, but that's not a big concern for a group of friends.
    So how does this adventure get the party together?  Well, they are all strangers who want to join the Starfinder Society.
    Okay, I don't really have a big deal with this, but I don't like to have a party of strangers.  I really prefer a game like Fate where each party member has to have a tie to at least one other party member.  Frankly I hate inter-party conflict.  In my experience it's all too easy for groups to start squabbling among themselves and that can bleed over into real-life conflict.  I think that the adventure should be hard enough so that the party has to work together.  Now I'll concede that is a personal thing, so this is not a gripe against the designers but rather my reaction.  I would have the party know each other instead.
    My real gripe is with the Starfinder Society.  All the PCs want to join the Society, that's the only thing bringing them together.  So my big question is why?  Why would anybody want to be a Starfinder?  What good is that?  This irks me from a storytelling standpoint, just handing the characters their motivation seems kinda high-handed.  But it really upsets me from a game designer standpoint because while everybody talks about the Starfinder Society in the adventure and the Core Rulebook - it is never described in any detail, nor are any of the membership requirements or benefits.  And Starfinder was built on top of Pathfinder, which has rules for designing an organization.  They are clearly listed in Ultimate Intrigue, but they've also popped up in a few other places, and there is a whole book of Pathfinder organizations (the Adventurer's Guide).  So why the hell did the crew at Paizo forget that they had rules to actually talk about groups and group membership?  Having those rules would help me give an actual reason and benefit to the PCs joining the Society.  Instead I have to make it up myself, or being a member is something that has no impact and no benefit and thus should just be dropped from the campaign.

2 - The Fight's Location

    My next problem is with the choice of venue for the fight: where the hell are we?  We're in a big room with scattered boxes where a bunch of ships land?  So we are literally meeting on the tarmac?  There are baggage handlers driving vehicles around and parked starships behind us?  What the hell kind of place is that for an airport?
    This ties into a big, big, big problem I have with Starfinder in general.  While it is supposedly a science-fiction setting, it is actually just a fantasy setting.  It's space opera.  At just how many airports on Earth do all the passengers get off on the landing field and mill around with the flight crews and cargo handlers and the risks of all that machinery and humanity moving in the same space?  It's a recipe for disaster (accidents do happen after all).  Are people picking up their luggage too?  What the hell kind of place is this?  At the airports I've been to the passengers get off at one specific place, and the airplanes and cargo are dealt with in another place.  With the layout described, how does the station handle anything that needs to be quarantined?  How do they prevent accidents?  How do they prevent deliberate sabotage?  This is a big question, and a huge plot hole in my opinion.  When you have a world where wizards can make machines move in unexpected directions with a mumbled word and wave of a hand, or hackers can remotely access machinery, exposing all those cargo loaders to the passengers is stupid.  Face-palm stupid.  Also, where is customs?  The adventure does not say that the PCs have ever been checked for weapons (or even fruit or infectious diseases).  So this airport just lets heavily armed individuals and robots with automatic weapons, or explosives, wizards (who are two-legged weapons of mass destruction) walk about with no supervision?  What the hell kind of sense does that make?  Sure, in an ancient fantasy setting it's every man for himself, but with technology, and the social development and specialization that comes with it, we all have roles.  The role of an individual is not to be a police officer, carrying a gun all the time, that job/role is reserved for the police.  Which is why walking around with a weapon is illegal (or at least frowned upon) in pretty much every city on the planet.  And heck, just having a picture of a gun on your shirt is enough to get you pulled aside by the TSA here in the States (at least, it has happened).  Yet, in this far-future setting apparently the government does not care in the slightest about the health and safety of the station's inhabitants.  Remember, we're in a space station, a really big box, so anything that gets out of hand can spread and kill every living thing on the station - and most living things can't survive in space, so there is nowhere to run or escape from danger.  Does that sound like the kind of place that logically would be lax about security?
    So we have this boarding area with, according to the description, no guards, no automated security system/robots/remotes, no cameras, no station employees (forming lines, checking passports, or anything other than moving cargo), no alarms or alarm system, and heavy machinery moving people's personal belongings and even heavier machinery in the form of starships, all in one giant room.  I consider myself a fan of science-fiction and fantasy, I've read a lot of both, and this does not sound like a science fiction setting at all.
    This same problem of being fake SF is throughout the game, not just the adventure.  What if one of my players wants to use his computer skill and wireless rig (which I believe all Engineers have as a class ability and anybody can buy) to set off an alarm?  Or turn off the lights (hoping the gangs will stop shooting if they cant see each other)?  Or trigger the fire sprinklers (assuming the station uses water for fire suppression) to again hopefully convince the gangs to stop fighting?  What is the DC for that?  Can it even be done?  I don't remember either the Core Rulebook or this adventure giving me the answers to any of those questions.

3 - The Actions Of The NPCs

    From the non-living setting, let's talk about the living things in this scenario: the NPCs.  We have several groups at play here, which I want to go through one by one.
    First, the gangs having their little shootout.  We have two gangs, each working at the behest of another organization.  You have the Downside Kings hired by Astral Extractions and The Level 21 Crew hired by The Hardscrabble Collective.  The Kings were hired to "intimidate" the Collective and prevent any other groups, like the Starfinders, from getting involved with their dispute.  So the Kings are here because of the PCs Dwarf contact, who is a Starfinder.  And they decided the best way to keep the Starfinders from getting involved was to kill them.
    W. T. F...?
    How does this make any sense?  Okay, AE doesn't want to get caught, so they hire a gang, I get that.  But they hire a gang that murders people?  That seems real subtle.  Again, in a fantasy setting with no police than maybe that would go unnoticed - but in a science fiction setting with police investigators and cameras and things like that, hiring someone to commit murder is not a very smart thing to do.  It's pretty much a guarantee to get people looking at the thing that supposedly you are trying to hide.
    But, I hear you say, maybe they didn't go there to kill him.  Maybe they just started firing when they saw their hated gang rivals and he was an unexpected and unfortunate casualty?  Yeah, maybe.  That sucks too.  His scripted death is the worst kind of plot device.  First, he must have been a level one adventurer and hit with a natural 20 by someone who rolled maximum damage for him to be instantly dead and gone.  The odds of that are pretty damn low, so it's obvious that he was killed as a part of a cutscene.  Which removes all importance from his death.  Remember, the players - not the PCs, the players - don't know this guy.  So when he's killed without the ability for them to save him, and by a fluke chance/ plot contrivance, it robs his death of all meaning.  So what?  Bummer he's dead, not like we care.  Does anybody remember his name?  I'll address the plot points later, but I really hate how this portrays the Bad Guys (who so far are AE, not that the players know that yet) as being idiots.  Killing him, or hiring someone incompetent enough to kill him, makes the Bad Guys look weak.  This move in no way helps them out.  How do you intimidate another group, like the Starfinders, when that group is just going to get the police involved who will investigate and may find the connection to you and come down hard on you for premeditated murder?  Are there no laws, no police, no jails or courts in the future?  At least arrange an accident, have the ship the dwarf is on blow up, something that can be plausibly denied as terrorism or something.
    Second, the other gang, the 21s, have the brilliant plan of opening fire in a crowded room of civilians to protect their employers interests - or they are stupid enough to just start opening fire in a room full of civilians and the police apparently don't exist or don't care.  A lot of big intellects at work here.
    Third, apparently there are security of some kind, because the adventure says that they will arrive too late.  Yeah, it's scripted that "station security finally arrives, but too late to join in the fight."  So if the PCs do nothing, the GM rolls crap to hit for the gangs, and it takes 30 turns for enough gangbangers to get killed, the police still won't show up in time to do anything.
     W!!! T!!! F!!!
    Again, lazy plot contrivance.  Why not say the police show up after 3 rounds?  Or 1d6 rounds?  Why aren't there any guards there already?  Why aren't there any kinds of automated defenses with non-lethal weapons build into the station to stop terrorists or madmen? (like a security Rigger from Shadowrun - an actual science fiction game with magic)  Why is there no security whatsoever?  This is the future right?  It's not a Wild West train station we're at, is it?  Hell, even that would have a chance of having a Pinkerton nearby.  What kind of logic is there to having no security at an airport?  How did someone not drive a starship into the station and blow the whole place up long before now?
    Fourth, the other passengers.  So the gangs start shooting, people's lives are at risk, this is a giant room full of people with no security whatsoever - and the PCs are the only ones armed in the whole place?
    Will someone please stop the stupid train and let me off, I'm sick of this ride.
    So nobody else has a gun?  Really?  Hell, since this place has no security it would be pretty stupid to visit someplace where you have to protect yourself while unarmed.  Also, there are no spell casters in the room?  Not a pointy hat or pipe in sight that might warm up a fireball for the ruffians disturbing their reunion with Aunt Petunia?  Nobody else does anything else for the entirety of the fight?  The PCs are the only living beings on the station that give a damn that people are shooting?  Well, I guess they should be - after all, only the PCs are at risk (dwarf guy was scripted to die, so he's not at risk, he's a cardboard cutout).  Only the PCs have a random chance to be shot at, not a single bystander will be hurt at all.  Again, the PCs could sit and do nothing for 30 rounds and not a single NPC will be hurt (aside from the gangbangers).  Again, how logical.  Gunfights in public places never hurt innocent people.
    I can not find a single redeeming thing about the NPCs in this scene, this is all just poorly written crap.  I expect more thought and better quality from a paid product and professional game developers.  This is the kind of scene I would expect a first-time GM to come up with: sounds cool in your head but makes no sense when you think about it.

4 - Nature Of The Challenge

    Okay, so from the game world in the location, to the other actors in the NPCs, let's move on to looking at this from the PCs perspective.  Namely, what is this scene for?  Well, according to the adventure...

PCs who want to check on Kreel or give him medical aid find that the dwarf is already dead, with a hole burned completely through his neck from the laser beam. No matter what they try, nothing the PCs do can save him. It’s important that Kreel dies before the PCs can do anything about it; their investigation of the dwarf’s death on behalf of the Starfinder Society is the impetus for the following sections of the adventure.

    What?  So this campaign is a murder mystery and we need the victim to die?  Umm... no, no it isn't.  Actually (spoiler-free) the campaign is about finding an ancient device, and this adventure is about finding the first piece of that device.  Not a murder mystery.  And the dead dwarf has no tie to the device.  He's a Strafinder, and the Starfinders are interested in the device, once they figure out it exists - actually Astral Idiots and Hard-luck-hobos are the ones fighting over the device piece and right now neither side knows anything about it.  This, this whole "must-have" murder mystery, is a crappy way to indirectly introduce the secondary players in the side plot and completely waste time for the actual adventure and the real campaign.  This is a cutscene that sets up the side quest.  There is nothing important here at all that could not be given as an exposition dump (which the campaign will do plenty of later).
    Alright, well there is shooting here, right, it's a combat and players love combat.  Umm.... well, but the adventure says this...

Discourage the PCs from engaging both gangs at the same time; that would make this a CR 4 encounter—a challenge of epic difficulty for 1st-level PCs! Instead, let them know it’s better to focus their fire and take out one group of enemies at a time.

    Oh, so shoot but be careful that you don't shoot too much.  Okay.  How does that work exactly?  I mean, the only thing it says about PCs being shot is to roll a d6.  So if the PCs shoot an NPC will that NPC stop shooting at the other NPCs (that ostensibly he/she/it wants to kill) and shoots at the PCs instead?  But what if an NPC and the PCs are both shooting at the same NPC, should you roll even/odds to see who the NPC will return fire at?  How is this supposed to play out?
    Wait though, don't forget...

If the PCs somehow manage to avoid combat by escaping or sneaking out of the docking bay without engaging either of the gangs, award them 600 XP, as if they had defeated one of the gangs.

    Hang on a minute.  Two problems here.  First, what reason do the PCs have to shoot back, I mean beyond the players' love of combat, what reason do the PCs have?  They are not police.  The might be stupid enough to believe that police exist and will show up and do something (the idiots).  They are not members of a rival gang to either of the rival gangs.  Honestly, what intelligent reason do the PCs have at all for getting involved?  No NPC can be harmed, except deadmeat, who already went down.  Hiding and waiting is the only smart thing to do.  Not like you can save anybody by getting involved.
    Second problem - what the hell is the XP reward for if you hide and do nothing?  That makes no sense to me.  What is the reward?  What was the challenge?  What was the point at all?  Yeah, I sat in a corner and did nothing and I went up a level - how heroic.
    Okay, a rapid-fire of some more things I hate...
    This line...

Neither gang is interested in talking; their blood is up and they just want to hurt their rivals.

    This is crap encounter design.  It's making a fight for the hell of making a fight.  You don't know what kind of bizarre-yet-clever scheme your PCs might come up with.  There should almost always be a chance to talk or get out of an encounter in more than one way.  You stifle your player's creativity if every challenge has only one solution.
    The non-existence of all the bystanders is a huge, huge, huge missed opportunity.  Drawing the fire to yourself to protect the innocent is a totally Good thing to do - but you would be stupid to do it because the NPCs are never in danger.  With the Resolve mechanics Starfinder really dropped the ball on a chance to give out better rewards that just XP.  Giving a Resolve point to any Good-aligned character who drew fire would actually be meaningful.  Rolling how many NPCs get hit and hurt or killed would reinforce for the PCs that inaction has consequences - it would give a death total to narrate at the end of the fight, trying to generate some emotion aside from the dead dwarf that nobody knew anyways (granted with more people nobody knew, but I'm trying to polish this turd as much as I can).
    I already talked about how the environment doesn't exist to hack lights or alarms or anything.
    The cutscene dwarf is another missed opportunity.  Moving into the line of fire to try to save him could be a meaningful choice for some PCs, and something that the police might comment on (when they finally get back from their doughnut break).  He could still be wounded and out of action and his superior could ask you to investigate.  He doesn't have to be dead to keep the plot moving, duh.
    In this section...

When all the PCs have set foot in the docking bay, allow them to attempt Perception checks. Any PC who succeeds at a DC 5 Perception check sees Kreel waiting for them in the middle of the docking bay. Any PC who succeeds at a DC 15 Perception check also notices the two groups of people on the fringes of the docking bay furtively taking up defensive positions among stacks of cargo crates and machinery.

    The second DC to act in the surprise round is meaningful, but the DC to see the dwarf who's going to be killed the next round is so stupid I can't believe it made it past the proofreader (assuming there was one).
    The fight ending is way, way too specific...

Once all three members of one gang have been killed, the survivors from the other gang immediately stop fighting and flee the docking bay, disappearing into the depths of the station.

    So depending on the the GM rolls - who again may be playing out this fight by himself if the PCs are smart enough to duck and wait - this could go on for that 30 rounds until only one gangbanger makes it out alive?  Yeah, I really want this nonsense cutscene to play out that long.  And I hope they were wearing masks, oh no, wait, there are no cameras in this science fiction setting so all they have to do is run away, in the box in space, and get away scott free.
    During the aftermath we have these gems...

Security personnel question witnesses (including the PCs) and take their statements. Fortunately, the witnesses agree that the PCs didn’t start the fight, so they are free to go.

Again, why don't cameras exist?

If asked, any of the security officers can identify the two groups involved as two of Absalom Station’s most infamous street gangs: the Downside Kings and the Level 21 Crew.

Why would the cops tell civilians this?

If the PCs search the dwarf’s body...

Why would the PCs be allowed to do this in a civilized society and in front of the cops?

...they find little other than his computer, which contains the name and description of each of the PCs, as well as one additional name: Chiskisk, and an address. A PC who succeeds at a DC 15 Culture check to recall knowledge recognizes the name as that of a high-ranking Starfinder on Absalom Station, and the address as that of the Lorespire Complex, the Starfinder Society’s headquarters on the station. 

Why the Culture skill check?  Why not look this up on the internet?  Oh wait, no technology actually exists in this science fiction setting, sorry, I forgot for a moment there.

5 - Connection To The Campaign

    I ended up going over this at the beginning of the last section, and boy is this getting way too long.  So I'll just recap - this has nothing to do with the real plot.  The mystery rock that led to the gang war is the actual point of this first adventure, and the thing it's a part of is the point of the whole campaign, so this is all side-quest.  I hate games that waste my time getting to the damn point.
    I will say, as a not-quite-but-kinda-spoiler-ish that there is another group searching for the big McGuffin, the Cult Of The Devourer.  At least having them kill the dwarf or be behind the attack would tie into the campaign-level plot somewhat (again, turd polishing).

    Like I said, I hate this whole scenario.  My friend changed a few things, which maybe I'll go over later, because I've been at this for an entire disc of Leverage.  But my impression as a player was that this was one big time-wasting side quest.  I was also surprised that my Soldier, which is the Fighter class of Starfinder, did not feel like a very good combatant.  I actually felt pretty useless in the fight, and worried that I was going to get killed.  Most of the other party members were smart enough to just hide and wait - but I was a part of station security, so I felt like it was my duty to try and do something.  I was not very good at it though.  The low damage and pretty crappy AC of Starfinder made me very ineffective - and yes, I rolled some crap rolls too, which didn't help - but this was literally the first game I've ever played a fighter/soldier and wanted to hide behind the Engineer's robot sidekick.  Just one adventure, so maybe that feeling will change over time, but in addition to a poorly-written adventure I think Starfinder has some poorly-written character classes too.

  So have you played or run this adventure?  What did you think?  Did you change anything?  Let me know in the comments below - I'm really curious how other people felt about this campaign.

Tuesday, March 20, 2018

Pathfinder 2e and Starfinder - My Impressions

    My life issues got compounded with a death in the family and I have not been posting for several months, so I want to throw this out there to remind everybody I'm alive.  I've been keeping an eye on the news about Pathfinder 2nd Edition (by reading the Paizo blog) and a friend asked me to take a closer look at the Starfinder campaign I've been playing.  From that I wanted to share a few random thoughts about both.

Pathfinder 2e
    I did not switch to D&D 4th ed, I was at a time when I wasn't role-playing at all.  when I did start playing again a nice game shop owner told me about Pathfinder, and I have played quite a bit of it over the years.  At first I really liked Pathfinder, I thought they made some good decisions to expand and improve on D&D 3.5.  Over time that began to wane, with book after book and more and more classes and spells and feats and rules on top of rules - it all started to feel like too much to keep track of.  Feats in particular are a problem for me.  You get very few feat choices, so to me that means that each feat should be a significant benefit - but there are tons of feats that only work in rare edge-cases, and that you can argue should be abilities everyone has or that are tied to skill use.  It just doesn't seem like Paizo has any solid idea of what a feat should be (I know Wizards didn't with D&D) so since every new book has to have more feats (god forbid we get a break form them) not only do you have a ton of new stuff to remember and think about, you also have to question it's worth.  And then with so many feats you get some unexpected interactions, I've seen my players make some pretty wicked feat and ability combos that made it hard to keep them challenged.  Spells are the same problem, too many, too many unexpected interactions.  I've had to stop multiple games to read the description of a spell a PC got form a supplement that I didn't remember or had never heard of.
    Basically, for me there is just too much Pathfinder.  The game it too big, making characters for it is too much work, and running it is too much work.  I liked 13th age when I first saw it (though that changed after examining the rules more closely) and I like D&D 5th Ed. for it's simpler approach (though I foresee it having the same bloat problem, just at a slower pace).
    From that standpoint there are some things that I am encouraged by about Pathfinder 2nd Edition.  The simplified action economy, simplified (kinda) skills, and it really feels like they want to do the D&D 5th what they did to D&D 3.5.  Overall I'm hopeful, but given that my friends have 17 books (that I can see in the living room, and I bought a few of them for the communal pool) I hate the idea of throwing away everything for a new edition.  I think one of my players who really likes it is going to have a hard time changing too (he's not been fond of our few games of D&D 5th).

    Which brings me to Starfinder, and the question that immediately popped in my mind when I heard about Pathfinder 2e - why didn't they sit on the 2e rules and roll them out with Starfinder?  While Starfinder is a lot like Pathfinder, it is a different game in several ways (aside from the sci-fi elements).  Given that it just came out, I'm surprised that Paizo is going to basically have 3 different rules systems out, all of which are related but you can't really just drag and drop them together.
    Also, Starfinder has not impressed me.  I love science-fiction and fantasy.  I also really like physics (I asked my Dad what a magneto-hydrodynamic drive" was after reading it in the Battletech RPG - which entailed a trip to the library), so I've read some hard SF, not just "science fantasy" like Star Wars and (to be honest) a fair chunk of Star Trek.  And you notice that there is a different feel between hard SF, and I'm including cyberpunk, and fantasy.  Which is one of the things I don't like about Starfinder, it feels like it was written by a bunch of fantasy guys.  For all that the setting has far-future technology it really feels a lot like a fantasy game instead.  Which may be great, if that's the game you want, but I was hoping for something a bit more SF myself.  And the first Adventure Path sucks, really sucks, which I'll go into with some later posts.  As an example though, there's a spot where somebody is kidnapped.  The adventure is written with a focus on the PCs and how they investigate.  Which is fine in a fantasy setting where the PCs are a law unto themselves, but doesn't work with an advanced society.  At least, I don't think it should.  The adventure should have talked about the reaction of the law and how the police and PCs interact (for better or worse).

    Anyways.  I have to say that overall I am not a big fan of Paizo right now.  1e Pathfinder is too bloated and complicated (from a guy who likes rules-heavy systems mind you).  Starfinder is a strange duck that is neither SF or F really, and while I like some of the changes I'm not a fan of most of them.  And 2e Pathfinder sounds interesting, but I wonder if it's going to have too much of the legacy of 1e to be a really good system in it's own rights.  Still, I'll keep an eye on 2e, and I'll have some thoughts on what's wrong with Starfinder and how I would fix it coming up later.

Monday, February 19, 2018

Work In Progress - The RPG Conversation Map

    While I'm getting some things in my life together I haven't been posting anything, but I a still working on a few projects.  One is my "RPG Conversation Map" which I wanted to preview here:


     It’s been a comment lament that “RPGs are all about combat and not talking.” This is quite true, while working on this project I looked at the core rulebooks for Pathfinder, D&D 5th edition, 13th Age, and The Dresden Files (a Fate-based game). Only one of those books said anything about talking to people beyond the skill descriptions (Dresden).
     The argument I hear is that, “Gamers don’t go around hitting things with swords, so we need rules to model that, but everybody knows how to talk.” To which my challenge is: when was the last time you interviewed a murder witness, riddled a dragon, or negotiated with a crime boss?
     This project was born from a crime boss negotiation. I was playing my first game of Starfinder, along with one experienced player and two newer players. As the Soldier (fighter) I was not planning on getting too involved in the conversation, I did not have any talking skills after all. But I ended up jumping in because I quickly saw that my newer players didn’t really have a good grasp on the situation. This was not their fault at all, and not an issue with them being less experienced players – the problem came from the rules themselves.
     I like throwing in the occasional talking-focused adventure for a change of pace from the typically combat-focused adventures. The problem I have though is that I fell like I am just making things up at random. With virtually no rules for how to talk to someone, to change their mind or get them to reveal a secret, it stops being a game and becomes “make believe.” The game provides structure, boundaries, and most important of all expectations. You know how each piece in Chess moves, because Chess is a game and the movement is clearly defined in the rules. Which is essential – because you know how the pieces move you can plan ahead and form a strategy by looking at the board. Imagine Chess if each round you had to choose a piece, but then roll to see how that piece would move. So you select your Queen, but then the dice say she has to move like a Pawn. Does that sound like fun? (okay, in a masochistic thought-experiment way it does, a little, but that’s not the point) Do you think you could use all the centuries of openings and gambits that have grown around Chess in a game like that? No, without the ability to predict what’s going to happen you’re a passenger in the experience. You can’t drive it towards a certain resolution (ie, you winning) because you can only control the things you can understand.
     This is the problem with not having any clear rules or even just guidelines for talking to NPCs, it makes it impossible for the PCs to plan or feel like they are in control. In combat, with all it’s detail, a party can predict what’s going to happen. Sure, the dice are there to throw the occasional monkey in the wrench, but for the most part if you know all the stats of the party and the monsters involved you can make a good guess about how the fight’s going to play out. The players can’t do that with a conversation because they have no map, no rules, no guidelines about how the conversation might go. Which is what inspired me to start this project, the RPG Conversation Map: a system-neutral tool that GMs and Players can use for planning and running conversations. Nothing in the map is revolutionary, these are things that good GMs and players take into account – but these are also things that are easy to overlook or forget in the heat of the adventure, so it can help to put them out there explicitly.


There are 6 major parts to the RPG Conversation Map:

 #1 – The Round Tracker
     Time is a vital and easily-overlooked resource. The longer the party takes doing things the more time the bad guys have to advance their own agenda. Time has to be a concern, you do not want things to drag on forever in either the game world or the real world. So the first part of the RPGCM is devoted to time. This is set up so that there are only 5 turns to change an NPCs mind. After all, if you badger someone about the same issue incessantly eventually they’re going to stop listening. So this creates the first key part for the conversation, the idea that there are only going to be so many chances to convince the NPC.

#2 – PC and NPC Motivations
     With the pressure of limited time creating the playing field, next we need to define the motivations of everyone involved. First the PCs, what is it that they want from the NPC? This is another critical and easily-overlooked step. It’s easy for a conversation to drag if the party loses sight of what they were trying to learn, or if they don’t think about what they want to know/do in the first place.
     Next is the NPC. What Incentives does the NPC have to give the players what they want? If the NPC has a reason to be helpful it will make the conversation a lot easier. Often though the NPC will only have Obstacles to helping the PCs.

#3 – NPC Co-operation Level
     The combination of Incentives and Obstacles will determine just what the NPC is willing to do for the party. This is a simple scale, adding the Incentives and subtracting the Obstacles. The less the NPC has to do the easier it will be for the party to convince the NPC to help. Passive activities, like giving anonymous information, is easier than something active, like testifying in court. The difference between where the NPC starts on the Co-operation scale and where the PCs want to get them sets the overall difficulty for the conversation. Which can often be complicated because the PCs may not know all of the NPCs Obstacles at the beginning of the conversation.

#4 – Rapport and Authority
     Having set the pressure of time, and looked at where everybody starts and wants to end, time to begin the work of making decisions and rolls. But first it’s important to look at how the NPC feels about the PCs. Some games use a single setting for this, like “friendly,” but the RPGCM tracks it in two ways:
     Rapport is a personal connection between the PCs and NPC. This can be positive, like two members of the same race or occupation, or negative, from a bad reputation or a prejudiced NPC.
     Authority comes from outside the PCs. If they are members of the Guard, or police officers, or even envoys of the King then they have some Authority. But, this can also be positive or negative. Some people have issues with authority after all.
     Rapport and Authority are given simple positive or negative numbers, and combined to create a modifier for influence rolls. Having good Rapport and being seen as an Authority can give a big bonus and help a character who has poor skills at talking to be successful (just like in real life, right?).

#5 – The Influence Categories
     Now for the real meat of a conversation: how are you going to try to change the NPCs mind? The RPGCM uses 6 broad Influence Categories.
  • Threat/Intimidate – the PC points out bad things that will happen to the NPC if he/she doesn’t co-operate.
  • Prey Upon/Manipulate – the PC tried to use a character weakness of the NPC to convince them to co-operate.
  • Offer/Entice – the PC offers something for co-operation, like a bribe or a future favor.
  • Inquire/Observe – the PC assesses the situation and NPC trying to find any hidden elements to the conversation.
  • Reason/Convince – the PC uses logic or a personal appeal for support.
  • Flatter/Promote – the PC points out how co-operation will be good for the NPC.
The trick for the players is to choose the right Influence Category for the NPC/situation. Threatening a peasant might be very effective, threatening the King may get you thrown in the dungeons (or killed).

#6 – Fallout
     Speaking of dungeons and killing, another easy to overlook aspect of conversations is what happens afterwards. Just because the PCs “won” by getting the NPC to do what they wanted doesn’t necessarily mean the story of this conversation is over. If the party relied on threats and intimidation then they may get co-operation but they are also making an enemy; nobody likes to be bullied. And if pushed hard enough the NPC may retaliate, from filing a complaint with the PC’s superiors to hiring an assassin. Each Influence Category and what the PCs want from the NPC can be given Antagonism or Goodwill points that measure what actions the NPC may take after the conversation is over.
     And that’s it. Once the conversation ends, either with the PCs getting what they want or not, then it’s time to move on with the adventure.

Having talked about the RPGCM, here it is...

Thursday, February 1, 2018

D&D 4th Cartoons and Lil Cthulhu

I've got some things going on in my life, so I don't think I'm going to post much - if anything - for the month of February.  Before I take a break to deal with things though, I wanted to leave you with some funny RPG nostalgia.
    D&D 4th Edition has not been that well-received, but it did produce some very funny videos leading up to its launch...

And this was just a random video some friends found at the same time, hats off to the creator for making the world-ending Cthulhu a children's story...

Hope that leaves you with a smile on your face, and I'll return when life settles down a bit.  Until then I hope you all have many happy games :)

Wednesday, January 17, 2018

Interpersonal Interaction Map - Beta concept

    I played my first game of Starfinder a few nights ago.  I don't have any deep thoughts about the system, it pretty much felt like playing Pathfinder again.  But one thing did jump out at me.  The party was trying to negotiate with a gangster and things got very complicated.  I'm a veteran role-player, I've been playing RPGs since I was a kid (which was a very long time ago).  But in the party I was the tank, an Android Soldier with a -1 Charisma mod, a racial penalty to Sense Motive checks, and no skill ranks in any interpersonal skills.  I am just in the party to shoot stuff.  Thus, I was sitting back and listening to the negotiations.  The ones talking were two friends who are new role-players, they've been playing with some of my other friends for a few years now, so they aren't totally green.  While I was listening I was struck by how badly the scene was going.  After a few minutes I had to jump in and try to get things on track so that we could wrap up this side quest and get on to the main story.  But what really struck me was not that my new players were having trouble - no, I was really hit by the fact that the game does not give any help to players about how to handle talking to NPCs.  Really, no game I've ever played does a very good job of helping the players with conversations.
    It's taken a few days, but this morning I woke up with a crazy idea: what if I created a map for talking to people?  I have a rough draft that I'd like to share with everybody in case this is a useful tool for someone out there.

The Interpersonal Interaction Map
    Yeah, the name is a work in progress :)   Here is the image file you can print out:

    I want this to be system-neutral, so I'm going to describe how to use this, but you'll have to customize it to your game.
    We start at the top, there are two sections for Incentives and Obstacles.  An Incentive is a reason for the NPC to do whatever it is the PCs want.  Each incentive is rated from +1 to +5.  A +1 incentive is a small reason to help, while a +5 is a very big/ compelling/ forceful reason to help.  Opposing the incentives are Obstacles, which are rated on the same scale but as negative numbers instead of positive.  Now, it's very possible that an NPC will not have any incentives at the start of the conversation - but almost every conversation should have at least one Obstacle, or else why are we bothering to play this out?
    Incentives and Obstacles combine to create the Co-operation Level.  This is a statement about what the NPC is willing to do for (or to) the PCs.  The edges ("Extreme Opposition" and "Total Support") mean that the NPC is willing to engage in behavior with significant risk to themselves for or against the party.  That may mean risking jail or death to help or stop the party (so a fight could break out at that level).  Moving a step inside, the "Active Hindrance" and "Willing Aid" means the NPC will take action for or against the party, but only if there is relatively little risk to themselves.  "Passive Resistance" means the NPC will not help at all, and will attempt to flee the PCs or call for help if possible/ necessary.  "Secret Assistance" means the NPC will help, but only in a way that will not draw attention to them - this could be a tip, or a pointer to someone else to talk to.
    What Co-operation Level the party needs and where they start is something the GM needs to think about when setting up the encounter, of course.

    The NPCs do not start at the level the PCs want, if they did there wouldn't be a need to play this out, so how do the PCs change the Co-operation Level?  Well, they use their skills/ role-playing.  That side of things is covered by the bottom half of the map.
    Rapport and Authority represent the NPCs outlook towards the PCs.  This is kind of the "reaction roll" of D&D/ Pathfinder, but I want to break it into two parts and explicitly give it a measurement.  Rapport is personal, how the NPC feels towards the PCs.  Authority is impersonal, how the NPC views the PCs position, reputation, or connections to other people.  Both are measured as positive or negative numbers.  The exact values are going to depend on your game system - a +1 in Pathfinder is a trivial bonus, it's a little more useful in D&D 5th ed, but it's a big deal in Fate.  So exactly how to measure this you'll need to work out for your rules.
    These can be negative, if the PCs are elves and the NPC hates elves, then Rapport could be a -3.  Likewise if the PCs are police officers, usually that would be a bonus to Authority, but it may be a penalty to some criminals (or 20-year-olds with laptops and authority issues, to quote Nate Ford).  The scores for Rapport and Authority are combined, and they are a modifier to the PCs rolls (or weighed by the GM in diceless or skill-less systems).
    Finally we have the NPC themselves.  While the Incentives and Obstacles talk about the NPC's motivations, weather they want to help or not, the final section of the map talks about the NPC's personality.  There are 6 broad action types, which you should be able to map to your skill system (if you have one), and the PCs need to choose one to roll/ use to change the NPCs mind.  This can take 4 forms.  The PCs can...
  • Try to create or increase an Incentive - making a new Incentive should be harder (higher DC), either way you add one point to an Incentive (max is still 5).
  • Try to decrease an Obstacle - this removes a point from an Obstacle (min is zero of course).
  • Increase Rapport - this adds to Rapport, by an amount that will vary depending on your system.
  • Increase Authority - as with Rapport above.
Of course, the PCs need to describe a logical way they can do one of these actions.  Then, they need to choose one of the 6 methods of interaction...
  • Threat/ Intimidate - this does not have to be a direct threat of violence, it can be anything that points out how not co-operating will hurt the NPC physically, emotionally, mentally, spiritually or socially.
  • Offer/ Entice - with this method the PC is going to offer some reward for co-operation, either directly (like a bribe) or implied (the princess will like you if you save her, and she's rich).
  • Prey Upon/ Manipulate - this is an appeal to the NPCs weakness, using an NPCs greed is this method.  The Offer/ Entice is for NPCs who are not signficantly greedy.  This can also be an attempt to prey upon the NPCs fears or sense of duty.
  • Reason/ Convince - this is an attempt to calmly and rationally lay out why the NPC should help the PCs.
  • Negotiate/ Exchange - while Offer/ Entice is giving something to the NPC, this is a quid-pro-quo exchange (or you scratch my back I'll scratch yours).  It could also be negotiation between other parties (help me and I'll get my friend to help you).
  • Flatter/ Promote - this attempts to show how the NPC will be a better person, or be seen as a better person, for helping.
Right now these definitions are works in progress, and the area where I'd appreciate feedback the most.  The idea though is that this method sets the DC or target number for the roll, how hard it's going to be to convince the NPC.  Trying to bribe a loyal and honest guard is pretty hard (even perhaps impossible), but a shady guard might go for it.  A part of the challenge for the players is to assess the NPCs (either through the GM's description or by researching an NPC they know they'll have to interact with) and pick the method that would have the best chance of success.  And then, in skill-based games, the question also becomes how good the players are at those interaction types.
    Also, there may be outside elements that could help a certain method.  For example, if the party has found some blackmail information about the NPC then they should get a bonus to Threat/ Intimidate (or, if they can find a way to give the NPC more of what they want, a bonus to Prey Upon/ Manipulate).
    I would love for the system to track the NPCs future reaction (while a threat may work to elicit co-operation it's going to leave a bad taste in the NPCs mouth and may make a future enemy).  Generally speaking the top row of methods are not going to make the NPC like the PCs much (even giving a bribe just makes you a source of money, not a friend) - while the bottom row is neutral to potentially favorable.  That's up to you about how you want to use any future repercussions or not.

    Finally, along the left side there is a track for the number of failures.  No one wants to talk forever, you only get so many chances to change someone's mind.  I'm currently thinking of tracking that by failures.  As long as the party is succeeding at their rolls I'd figure the conversation is going well.  And giving the group 10 failures is pretty generous - you could say that the NPC is in a bad mood or caught at a bad time and thus starts with 1 or more failures.  Or, you could track it in turns, and give the party a maximum of 10 turns (or fewer) to change the NPCs mind.

    I know this is pretty rough, I have some ideas on how I want to refine the system so you'll see an update to this sooner or later.  This might be way too much detail for some tables, but I think for some groups - in particular new players - having different factors laid out and clear/ easy to see might help them formulate a plan on how to talk to people.  Let me know what you think in the comments below :)

Thursday, January 4, 2018

Character Viewer: How To Save User Input - part 2 - From Form to Table

    And I'm back to the Character Viewer tutorial, sorry about the delay (unless you're reading this years later, in which case no time has passed thanks to the magic of the internet).  We started by writing data we had hand-coded to a table, nice but useless.  Last post we added a form to collect the character data from the user, also nice but useless.  Now we're going to make this actually useful and take the data from the form and add it to our table.  Well, as useful as it is to have a very limited character summery - hmm... we'll have to add some more to this project.  Later.  We've got enough work for today :)

Measure Twice and Cut Once
    That's old carpenter's advise, but it applies to most everything.  A good plan will keep things from going off the rails, and looking ahead lets you avoid problems instead of fixing them.  So let's look at what we need to do before we start coding.  I'm going to need a new function that takes the data from the form, formats it, and then calls the existing function to write it to the table.  So I'm going to add that function and fill it with some comments about the things I need it to do...

Now, I might have missed some steps, we'll see as we go along, but this is enough of an outline to get me pointed in the right direction.
    So let's set the foundation.  First, I'm going to use the same function from the first post to iterate over the character object's properties and populate the table - so I need a blank object with the same properties...

I'm going to pass that object to the function to write it, so let me add that too...

And at the moment I can't actually run the function because it isn't tied to anything.  So let me add an onClick to the button I put on the form.  I can do this in two ways.  I can create an event listener in JavaScript or I can add it to the element in HTML.  Under the Model-View-Controller paradigm I should keep it in JavaScript, where the "controller" stuff happens that makes the program run.  But I actually like adding it to the HTML of the button itself, so when I look at the button I know what it's supposed to do.  Neither is really wrong as far as the browser's concerned, it's a matter of style.  Since the button is the only event handler I need, I'm going HTML.  If I was using something like jQuery UI where I had to initialize a ton of elements I'd do it in JavaScript to keep things together.  Anyways, here's the HTML attribute to fire the function when the button is clicked...

Okay, that sets up the framework, one blank object ready to be filled, a call to the function to display it, and a handler for the button to launch it.  Now we just need to start getting some data.

Do You Want To Do This The Easy Way Or The Hard Way?
    Let's start with the easy way.  Some of our form data is going to need to be processed, so let's grab something that we can directly display - the HP total.  The user is going to put in a number and we're going to directly copy that to the table, so it's a easy place to start.  Or is it?
    In order to get the data from the form we have to tell JavaScript where that data is.  Which turns out to be more complicated that one might expect.  There are actually a couple of ways to do this simple little thing.  Let's go from most complicated to least (the latter being the one we want to actually use).
    Like all things computer-related JavaScript has grown and developed over several versions.  The last big version, or ECMAScript was ES5.  In that version there are two main ways to select an HTML element, by Id or Class.  There are two different functions for each.  In this way to select an element we'd type:


    ES6, the latest version of JavaScript consolidated those into just one function:

document.querySelector("#id") or document.querySelector(".class")

     The ES6 method isn't bad, but it also isn't great.  It's kind of long, 26 characters without the selector.  And we have about 14 form elements we need to look at.  The easiest way is to create an alias, to define a function that's shorter to type and make it the same as the longer function.  That's what something like jQuery does.  In a simplified version (very, very simplified) jQuery does this:

function $ (selector) {
    document.querySelector (selector);

which means you can type $("#id") instead of document.querySelector("#id"), which is 25 characters less typing.  25 characters may not seem like a lot, but when you make a few hundred selections that comes out to a short story's worth of saved code.  And we could do the same thing jQuery does.  But we won't.  Honestly, if I'm going to do something jQuery-like then I might as well just use jQuery instead of reinventing the wheel (and a poor version at that).  So for this tutorial I'm going to stick with the ES6 syntax and just copy-and-paste the code I need.  14 elements isn't a big deal, and if I decide to bulk up this app and add a bunch of features I'll just use jQuery and we'll have a tutorial about that :)  So, now that we know how to select something let's do it.
    Because our target is a textbox we need to select it, and then get it's "value" property.  Then we're going to save that to a variable and write it to our object.  Here's the code...

    And here's what it looks like when we run it...

 Woo Hoo!!!  We just took user-input and wrote it to our form, high-fives!  Okay, I'm way too happy about something so trivial :)  Now that we got the easy part done, it's time to get more complicated.

Formatting The Attributes
    This part is going to be ugly.  The next hardest, in a very general sense, are the attributes.  The attribute scores themselves are easy, we're going to take them from the form and input them directly to the table.  It's the modifiers that are tricky.  We decided (well, I decided and you got dragged along for the ride) to have the user only input the score and let JavaScript calculate the modifier.  This is good because it prevents the player from messing up the modifier, people are human and and make mistakes, so things like this - just looking up data on a table - are good candidates for leaving to the computer.  It was also a kind of dumb decision because it means adding more work for us with questionable reward.  But this is a tutorial, so it gives us something to learn (and if I do develop this further it's likely something I'll change).
    Our task then is three-fold, we need get the value and then use that to get the modifier, both of which get saved to the character object.  Getting the value we've got, like with HP, we're going to look up the value and save it to a variable.  To calculate the modifier we're going to write a new function that will apply the correct formula and return the modifier.  Let's write that function now.  So what is the formula for an attribute modifier in Pathfinder?  It's the ability score minus 10, divided by 2 and rounded down.  We save that and return that variable, which makes our helper function look like this...

 Cool, we can calculate the modifier.  Now comes the really tricky part.  Our function to write the character object is really easy, it just iterates through the object and writes each property.  Which means we have 6 properties for the attributes all of which are going to do the exact same thing, take a score, calculate the modifier, then make a string with both.  So let's expand out helper function to do all of that, it'll cut down on the duplicate code.  Or final function is going to look like this...

We have to call it 6 times, once for each attribute, because the way the form is set up we can't easily iterate through it.  Okay, let me correct that.  I know some ways to iterate through it, and how I could change it, but I don't know the best way.  I'll look at changing this section after I've done some more research.  For now, while this is not the ideal method, it isn't that terrible, so we'll go this way...

Which now looks like this when we create a character...

Woo Hoo again!  That's a good chunk of our character done.  Three more table cells to go.

Name, Social Security Number and Date of Birth, Please
    Okay, let's get the name section done.  There are 4 things we need: the name textbox, the race drop-down box, the classes (which are checkboxes and there can be more than one checked), and the character's level number box.  Three of those things are easy :)
    Let's grab the easy variables, with this code...

    Which leaves the trickier part of checking the checkboxes.  And I discovered something, when I wrote the HTML code for the checkboxes I didn't give them any Id's to be able to target them later.  Ooops... so here's the fix to that...

And then I just need to query each checkbox and see if it's checked.  If it is I'll add it to the string I'm going to display, which makes the function this...

With the final app looking like this...

En garde
    That leaves just two more cells, the ones for the weapons and armor.  Let's handle the weapons first.  So we have three weapons, and they are on radio buttons so the player can only choose one.  We need to get which one the player selects first.  The weapon will give us the name and damage.  Then we need to check the Base Attack Bonus field and add the appropriate attribute modifier to get the final part, the to-hit bonus.  Those three strings get concatenated, or added together, to give us the table cell.
    Or at least, that's how it should work.
    There's just one little problem, our character object isn't formatted that way.  When I first wrote this app I was looking for something simple, an easy way to write the data to the page.  So each attribute is just a string, with both the score and the modifier together.  And now that's a problem since I want to deal with those values separately.  I could just take the score and calculate the modifier again, but the function I used to do that is the one that also returns the complete string.  I did not structure these functions properly to fill in these last cells.
    Now, I try with these tutorials to show things that work.  I've written a few versions of the code so far and they didn't turn out right, so I omitted them.  I want these to be learning experiences, not full of things you shouldn't do.  I'm leaving this mistake in though because it does go back to the beginning of this post, that part where I was outlining what I needed to do.  During that step I really should have looked closer at how to structure my data, what different pieces I was going to use.  I didn't and now I'm in a bit of a fix.  It's important to have a good plan, to be able to see what you're doing in your head.  Even still you'll make mistakes, that's just how it works, but a good plan means fewer mistakes.
    So how do I fix this?
    I'll give you a minute, if this was your program what would you do?..........
    'K, time's up.  I can see two options.  The good one is to re-write the character object, so that I could use the modifiers in other ways down the road.  That, however, would mean re-writing the function to put that data on the page.  That's a lot of re-writing.  So option two is easier, and what I'm going to do.  I'm going to take the function I called to make the attributes and split it.  I'll leave the part that makes the final string, I'm just moving the part that calculates the modifier into it's own function.  That makes the least changes to the attributes code.  Then, for the weapons and armor I can just call the function to make the modifier and use that.  It'll basically double those calculations - but it's not like that'll matter in such a small program.  It's not an elegant solution, but it's the least re-coding.  Honestly this whole thing was a mistake from the beginning.  My function to write the object directly to the table is simple, but it's also way, way too simple for something as complicated as a Pathfinder character.  If this was a real app, meant to be useful and not a learning tool, I should have used a totally different design.  But I didn't, so we'll go with what we've got and get this done.
     That means that this is the revised code for the attributes function and the new modifier function:

     Moving on from that glitch, now we need to get the selected weapon.  And again there's another problem, just like with the checkboxes I didn't give each button an Id to reference it by.  Ohmygosh, and the armor radio buttons are the same way of course.  So let me fix all that...

Just like with the checkboxes we're basically going to do a bunch of if/then statements on each button.  There is a better way to iterate through the form, again though this is a small and limited app so I'm not going to worry about that right now.  This gets kind of complicated, so let me break it down step by step.
    First, I'm going to use the parseInt() function and get the Base Attack Bonus.  Even though this is listed as a number field in HTML I want to make sure JavaScript treats it as a number.
    I'm then going to check with some if/then blocks what radio button is checked.
    Another parseInt() on the function to find the correct attribute modifier gives us the other half of the to-hit modifier, and the damage modifier (except for the bow, which doesn't add any attribute for damage, only to-hit).
    Then we check if the To-hit modifier is 0 or higher, if it is I'm adding a "+" in front of the number; if it's negative there is no "+" of course.
    Lastly the same 0 or higher check for the damage modifier, for formatting purposes, and then the string is assigned to the character object.
    It's a lot of code for something so simple, here's the unarmed code block (for brevity's sake):

I missed the screenshot of the table, oh well, we're almost done so you can see the final version soon :)

Hide Behind The Pile Of Dead Bards!
     Ohmygoodness... we're almost done.  Yeah, this is a way too complicated "tutorial" for a fairly simple concept.  I know I haven't been the greatest teacher so far, and I'm sorry about that.  I'm learning myself.  But this is it, one last section and we'll be done.
    So armor is a lot like weapons.  First we need to figure out which one is selected.  Then, instead of getting a BAB score, each type of armor is going to have its own armor class modifier.  Then we just add different modifiers to the base armor class to get the "touch" and "flat-footed" armor classes.  So, like weapons this is going to take a fair amount of code to work out.
    Let's examine the individual components before we start madly coding.  There are three things that make a character's AC.  First there is the base AC that everybody gets, a 10.  This is the universal "naked man" AC.  Then there is the armor's modifier.  This is easy, each type has it's own mod (with "none" or no armor being a 0) - but, the catch is that you add your armor mod to your "full" or default AC and to your flat-footed AC, but not to your touch AC.  Last is the character's Dex modifier, again easy, but while you add it to the full AC and touch AC, it is capped depending on the type of armor, and it isn't added to the flat-footed AC.
    So first I'm going to determine what type of armor the character is wearing.  That will let me get the Armor AC modifier, the name of the armor for the final string, and then I can get the Dex mod and do an if/then block to make sure it isn't above the max dex for that type of armor.  Here's the code:

Then I can finish by adding the right things together, forming them into the string and writing the final string to the character object.  Here's that code:

And here are what a few finished characters look like:

   Great goodness, that took a very long time.  Well, for me at least - you're lucky you can just read the end results.  So at last we have looked at how to get data from a form and write it to an HTML table.  Is this app very useful?  Well, I guess it might be in a limited way.  If you changed everything to textboxes you could easily let people write their own stuff, and that would cut out a lot of the programming headaches, and it might actually be a somewhat useful app.  I will leave that to the reader if you want to try it :)  Here is the link to my Google Drive with the code.
    This little project spiraled out of control into something of a trainwreck, but hopefully it was a learning experience - it was for me :)  Who knows, maybe it would be worth it to play with this some more and turn it into some kind of character creation utility... hmmm.... we'll see.  For now I am going to sign off and go get that breakfast I'm 8 hours overdue for.  Until next time!

Wednesday, January 3, 2018

The Elemental Empire - part 7 - I Don't Really Like Setting Books (so why am I writing one?)

    I have rarely run games from a module and I don't like reading most setting books.
    This could be a problem now that I'm writing a setting of my own :)
    I've always liked creating my own worlds.  Once I started playing RPGs I discovered I also like tearing apart games and seeing how they work.  I've mostly been the improv guy.  You know the one, the guy you turn to when everyone wants to play but nobody knows what.  I can't count how many adventures I've created while my players were creating characters.  And I've got boxes of notebooks of game ideas and house rules.  Most modules never really interested me.  Most settings for that matter.  Honestly I can only think of a few games where I've liked reading the setting material: Shadowrun, Exaulted and Earthdawn.  I can remember reading all of those books and seeing story potential in my head, little bits and pieces that inspired me with adventure and campaign ideas.  I loved Shadowrun for it's density in brevity- the rulebooks (3rd/ 4th ed I think, I haven't read the latest) had great section at the beginning that introduced the world just right.  These sections were detailed, but not too detailed, they hit a sweet spot of saying a lot in the fewest words.  Exaulted I read several books about, each major faction had it's own book - and I loved all the different kinds of stories they presented.  With a neat fantasy-inspired-by-anime setting I could see so many different campaigns that you could run out of the same world.  Earthdawn was like Shadowrun (maybe 'cause they were by the same company) in saying a lot with little, but I also love how they created their own magic system, and presented it in fantastic detail.  But the best RPG book I've ever read was an Earthdawn supplement, The Adept's Way.  This was basically a class guide, each chapter was one class from the game.  The magic of it (to me at least) was how it was written as if one of the characters was talking to the player.  It was like a member of this class was telling you how to play that class.  I loved that style, how it drew you right into the world and the shoes of a member of your class.  I have never read another book that did that, and I'm sad because I thought it was the best style of writing a player's guide.
    The biggest problem I've had with setting books/ material is usability.  The World of Darkness books used to have a short story at the beginning of each chapter.  And that's cool and all, but what am I supposed to do with it?  If the story isn't in the same style as the adventures I'm running, then it's not really helpful.  Same with the story as a tool of building the setting, if I am making the same sort of campaign as your story then cool, but if not then I don't really get anything out of that story.  On the flip side, a breakdown of the percentage of every race living in a city is the kind of detail that makes my eyes glaze over.  Again, when I create the census campaign (in a fit of madness) then I might care about such minutia, but in the game all I need to know is if one race is dominate or if there is a good mix of races.  And are any races in conflict?  Knowing there are 80% Dwarves and 20% Elves is kind of useless ("mostly Dwarves" would have said the same thing without the scary math) (I'm easily scared) - but knowing that the Dwarves drove the Elves out of the community several generations ago and recently the Elves have tried to re-open ties to heal the old feuds; that's useful.  Now I know that this town is a good place to set a story of racial tension.
    That's the thing about a setting, I'm not reading it for my own entertainment, I'm reading it to figure out where to put my players for the story I want to tell.  Or, I'm reading it to figure out what kinds of stories I can tell.  I don't want the game material to entertain me, because of Paranoia.  I love the Paranoia RPG, more than I have words for - I think I ran it once.  I don't love it to play it, I love it to read the books and adventures.  This is a hilarious game, reading anything for the system (the old 2nd ed at least) was like reading a comedy novel.  I don't really care if I ever run it for actual players, because reading it was likely more entertaining than the players would ever be.  It's a terrible system because it's so much fun to read the books that actually running the game is a bit of a let-down.

    Okay, so I have a wee bit o' problem with writing my own game world given that I don't really like reading them.  This is going to be a tricky situation.  So what kind of guide do I want to write?  What is this setting for?  Well, I want this setting to be a tool, not a straitjacket.  I want to create a world, of course, but I also want to leave enough wiggle room to let each GM customize the setting to their group.  The kinds of stories I like are not going to be liked by everybody.  So I want to make something, well no, I want to make a core for storytelling.  I want to make the skeleton of a world, and help the GM with deciding where to build off of and change the world to fit their own group.  Most setting material I've read is like a story, it's there telling it's own tale.  I think instead I want to write 2 books, or two types of books, the GM books and the PC books.  Both are going to have the same style, talking directly to the audience, but there are going to talk in the same way as the group they're written for.  Argh... let me try to clarify what I'm thinking.  As a GM I don't want a collection of stories and statistics.  Their stories are not my stories, so they don't help.  The statistics are minutia, tiny details that don't matter without a story in the first place.  So for my GM books I am going to write GM to GM.  I'm going to write as me, The d100 Mechanic and creator of this setting, and I'm going to talk directly to the GMs out there about how the setting is structured and what they can do with it.  But for the PC books, I'm going to write like The Adept's Way, I'm going to talk to the PCs as if I was a member of this setting, teaching or telling them about the world.  Because while the GM needs the Lego-pieces of the world to create, the PCs need to be able to put themselves in the world and feel it as if they lived there.  So I think I need two different styles of writing, because I think both groups have different needs.
    Which brings up another problem, the minutia.  I started the crazy idea of writing my own setting because I wanted to work on my own game - and I think every game needs a setting.  But while I'm currently working on something based off the 5e SRD, I don't want to lock my setting into that rule-set.  So when it comes to the details things are going to get difficult.  I may need a third set of books with specific numbers for each of the games I want this to be compatible with.

    Okay, so that's the groundwork of what I'm thinking, the way I'm looking at writing this setting.  Now comes the big question- does this sound good to any of you?  I think this sort of layout would be useful, but does anyone else?  I know it's hard to form an opinion off such vague musings, and I'm working on actually writing something, but just from first impressions does it sound good?  Of is there another style you'd prefer?  Let me know in the comments below, please!