Crusher, the emotionless Barbarian

Pathfinder’s Android race has two features that are very interesting to Barbarians.

  1. Immune to morale bonuses.  The stat buffs from rage are morale bonuses.
  2. Immune to fatigue.  Ending Rage makes Barbarians fatigued, and they can’t enter rage again until the fatigue wears off.

Combining these two makes an interesting Barbarian who does not get stat bonuses, but can use powerful “once per rage” abilities every round, by beginning and ending rage every round.

At first I pursued the robot theme by selecting the Savage Technologist archetype, which has the appealing pistol + sword fighting style. Using a pistol in melee without provoking AOOs sounds great, but reloading still provokes, and reloading requires a free hand, which Crusher doesn’t have because he’s holding a sword.   It was too much trouble.

Strength Surge adds barbarian level to one CMB check, so I looked for a combat maneuver to specialize in.  The Brutal Pugilist archetype and Animal Fury rage power reward grappling, so I built a grappler. I chose level 7 because that’s when Greater Grapple becomes available, which lets me make two grapple checks per round.  Since Androids get a bonus to Dexterity, Crusher uses Dexterity instead of Strength for all his rolls.  (Maybe the three feats aren’t worth the slightly higher numbers, but I’m tired of doing math.)

The average CMD for a CR 7 enemy is 26, so Crusher succeeds on a 2.  Each time he maintains a grapple, he bites, and he can choose to deal damage when he maintains a grapple, so he can bite up to four times in one round. He can also reliably tie up foes with an escape DC in the 40s.

His defenses are fine.  23 AC will stop 60% of attacks.  Alas, the -2 AC penalty from rage is not  a morale penalty, so it still applies.  He’s immune to a number of status effects and has bonuses against others, including mind-effecting, the worst kind of save for a melee monster to fail.

Crusher
Male Android Barbarian (Brutal Pugilist) 7
N Medium humanoid, construct
Init +6; Senses darkvision 60 ft.; Perception +13

DEFENSE
AC 23, touch 14, flat-footed 18 (+7 Armor, +5 DEX, +2 shield, +1 deflect -2 rage)
hp 76 (7d12+28)
Fort +10, Ref +10, Will +5 (+4 vs. Mind-effecting, paralysis, poison, stun)
Defensive Abilities DR 1/–, Immune disease, sleep, fear, emotion, fatigue, exhaustion
OFFENSE
Speed 40 ft.
Melee unarmed strike +14/+9 1d4+6 (19-20/x2), bite +8 1d4+3
Ranged MW composite longbow +14/+9 1d8 (x3)
Special Attacks rage (19 rounds/day), rage powers (animal fury, strength surge +7, brawler)

STATISTICS
Str 10, Dex 22, Con 16, Int 9, Wis 12, Cha 6
Base Atk +7; CMB 13 (+5 grapple); CMD 24 (+3 vs. grapple)
Feats Agile Maneuvers, Improved Grapple, Greater Grapple, Weapon Finesse
Skills 11 skill points Perception +13, Acrobatics +12
Languages Common
SQ fast movement, Pit Fighter (+1 grapple CMB, +1 grapple CMD), Improved Savage Grapple
Gear: +1 Mithral Breastplate, +1 Buckler, Cloak of Resistance +2, Ring of Protection +1, Belt of DEX +2, Agile Amulet of Mighty Fists, MW cold iron Cestus, MW alchemical silver Cestus, MW Composite Longbow, 4x50ft silk rope, 2x potion of Fly, 40x arrows, 20x blunt arrows, barbarian’s kit

  • Immune to fatigue, so cycle Rage every round to use Strength Surge on grapple every round
  • Greater Grapple allows maintaining a grapple as a move action, so 2 grapple checks per round.
  • Animal Fury: free bite attack when maintaining a grapple

Initial grapple: +25 vs CMB (7BAB + 6DEX +7 Strength Surge +2 Imp. Grapple +2 Greater Grapple +1 Pit Fighter)

Animal Fury: bite +13 1d4+6
Maintain grapple: +25 or +23 vs CMB (7BAB + 6DEX +5 Maintain +2 Imp. Grapple +2 Greater Grapple +1 Pit Fighter) +2 Animal Fury?
Pin or damage (1d4+6)

Felipe Pepe’s list of influential CRPGs

Felipe Pepe, CRPG historian, wrote an article listing 35 CRPGs one should play to get a general outline of the history of the genre.  In the article, the list is displayed as an image, which is good for sharing on Twitter and the like.  Here’s a version with links to buy or play them.

Title Year Price Platform
dnd 1975 free web
Rogue 1980 free browser
Wizardry I: Proving Grounds of the Mad Overlord 1981 free browser
Ultima IV: Quest of the Avatar 1985 free Win, Mac
Dragon Quest 1986 $2.99 Smartphone port
Starflight 1986 $5.99 Win, Mac
Dungeon Master 1987 Atari ST
Pool of Radiance 1988
Wasteland 1988 $5.99 Win, Mac, Linux
Quest for Glory: So You Want to Be a Hero? 1989 $9.99 Win
Darklands 1992 $5.99 Win, Mac, Linux
Ultima Underworld: The Stygian Abyss 1992 $5.99 Win, Mac
Ultima VII: The Black Gate 1992 $5.99 Win, Mac
Mordor: The Depths of Dejenol 1995 free Win
The Elder Scrolls II: Daggerfall 1996 free Win
Diablo 1996
Final Fantasy VII 1997 $11.99 Win
Fallout 1997 $9.99 Win
Baldur’s Gate 1998 $19.99 Win, Mac, Linux
Might and Magic VI: The Mandate of Heaven 1998 $9.99 Win
Planescape: Torment 1999 $9.99 Win, Mac, Linux
System Shock 2 1999 $9.99 Win, Mac
Deus Ex 2000 $9.99 Win
Gothic 2000 $9.99 Win
The Elder Scrolls III: Morrowind 2001 $14.99 Win
Neverwinter Nights 2002 $9.99 Win
Star Wars: Knights of the Old Republic 2003 $9.99 Win
Fable 2004 $9.99 Win
Mass Effect 2007 $19.99 Win
Fallout 3 2008 $9.99 Win
Dragon Age: Origins 2009 $19.99 Win
The Elder Scrolls V: Skyrim 2011 $19.99 Win
Dark Souls 2011 $19.99 Win
Divinity: Original Sin 2014 $39.99 Win
The Witcher 3: Wild Hunt 2015 $39.99 Win

A simple game

Most of my game ideas are too ambitious to start.  I want to make games with procedural footprint generation, 3D traversal with encumbrance and different terrain types, or tons of dialog and subtle human reactions.  This means most of my games don’t progress past text files,

While watching AGDQ 2017, I realized that people love simple games, like the ones that fit on an NES.  The graphics are simple, there are only a few stages, enemies, and powerups, but that’s enough.

So I’m going to make an NES-style game, with one twist.  The main interaction is moving antagonists around, not destroying them.  The player fends off fans who rush a celebrity’s limousine with oil slicks, velvet ropes, and other cartoony tools.

I looked around for a game engine to use and settled on Godot.  In YouTube tutorials, some people pronounce it “Guh-doh” like the play, and others say “Go Dot”. The official site’s FAQ does not address the pronunciation.

Now that I have a game engine and can start writing code RIGHT NOW, I realize how many decisions need to be made before I start.  I don’t want fans getting to the limo, but how exactly does that work?  Do fans stop the limo, and the player fails if the limo is late?  Does the celebrity inside the limo have an annoyance gauge that increases as fans touch the limo?  If the fans have limited acceleration and turning speed, I can make more interesting traps that spin them around or slow them down.  Can I knock people down?  Are they injured by jumping in front of the limo?  Boss fights are traditional, but what is a ‘boss’ in this context?  A really big fan?  Do the different tools act like different weapons in Mega-Man, Contra, or Metal Slug?  I’m sure the answers will change as I go, but here is my first attempt.

Main game loop:

Top-down, real-time, 2D game.

A limo moves through a city on a pre-determined path.  It stops whenever a fan touches it.  The level ends in success when the limo reaches the end of its path.

When the limo stops, the celebrity’s annoyance increases.  The level ends in failure when the annoyance gauge is full.

The player controls a bouncer who moves independently of the limo on foot.  The bouncer can’t move out of sight of the limo.

Fans scattered around the level will try to get to the limo.  Fans activate when the limo moves inside a certain radius.  Fans give up and go home when pushed a certain distance away from the limo.

Possible types of fans:

  • Normal fan: default speed
  • Big fan: can break through velvet ropes
  • Quick fan: a bit faster
  • Screaming fan: can stop and scream, which summons more fans
  • Paparazzi: can upset the celebrity from range

Possible tools:

  • Bouncer’s glare: freeze a fan on the spot for a short time
  • Velvet rope: blocks a path.  Force fans to go around
  • Autograph:  Throw autographed merch.  All fans near the merch’s path will chase it.
  • Spring trap.  When triggered, push back everything in its path
  • ice or oil:  slows fans moving through the area

Possible levels

  • An actor goes to a shooting location
  • A singer goes to a concert
  • A celebrity goes to an award show
  • A politician goes to give a speech.

Gallery Aggregator roadmap

When I return from a convention, I scour the internet for photos from the event.  Many convention-goers do the same, as evidenced by the many “looking for photos” threads on forums and social networks.  I’m building a searchable list of galleries from many different events  that is more permanent and easier to search than those “looking for photos” threads.

Here’s the current version

I’d rather have other people do my work for me, so I built a public page where people can submit galleries.

Check it out, and please add a gallery or two.

People would rather have a machine do their work for them while they are doing my work for me, so when someone submits a link to  a Flickr album, the website uses the Flickr API to pull in the rest of the data.

The main functions of the site (submitting, moderating, and displaying) are all working and stable, so now I can think about improvements.

  • Integrate with other sites’ APIs

Flickr is not the only image host with an API.  I should integrate with SmugMug, Imgur, and Facebook.  Automating data entry makes it easier for users to submit galleries, and makes the data submitted by users more reliable.  It’s good for both of us.

  • Make the site prettier

The styling on the site could charitably be described as “basic” because I  focused on functionality.  User experience is important, so I should make the site smooth and pretty.

  • Label NSFW content, and galleries that require logging in

If a user can’t view a gallery, a link to that gallery is a waste of time.  Some image hosts, like Facebook and Flickr, may require users to log in before they can see the gallery, so I need to warn users before they click.  Users hsould also be informed before clicking on links to NSFW photos.

  • Allow users to report dead/bad links

Sometimes links go dead, or domain names expire and are taken over by squatters.  Anyone who finds a dead link should be able to report it, so I can remove it.  This saves me the effort of periodically checks all the links, and lets users help make the site a better place.

  • Rating system

Someone who doesn’t have time to look through 100 galleries from a certain event may want some way to decide which few to look at, and user ratings are one way to provide that.  I think that “popular” and “good” often diverge, so I’m unconvinced that directing people to popular galleries is a good idea.  I could curate my personal favorites, but since what I like and what the masses like are different, that feature may not be useful to the users.

  • Add more content

I have added hundreds of galleries already, but I’ve been collecting galleries for a long time, so I have many more to add.  The more content is on the site, the more useful to visit, which means more people who like it and may contribute.  It snowballs.

  • Get other people to use the site

All this information is only useful when people know about it and use it.  After each event,  I’ll post in the various “looking for photos” threads encouraging people to use the site.