Tag: games

  • Schmuck Villains

    Schmuck Villains

    In the latest Spiderman movie, you have the over-arching big stakes plot with Jean Grey, The Hulk, The Punisher and Damage Control. But there’s also a lovely montage near the start of Spidey throwing himself into his work, and taking down Tombstone, Tarantula, Scorpion and a few other “schmuck villains” as I’ve started calling them.

    They’re the ones who never do much more than rob banks, and provide a bit of background day-to-day work for the hero, and provide a bit of color. They’re not the main story, but just thrown in as evidence that the hero keeps busy on their day-to-day patrols.

    I’ve just read Al Ewing’s Immortal Thor, and I loved the portrayal of Radioactive Man, Cobra, Grey Gargoyle, and most of all Mister Hyde. Roxxon hires them as some super-muscle. They’re not a super-serious threat to Thor, but they provide some cool set pieces, and excellent dialog as you get inside their heads in turn.

    Dr. Doom – not a schmuck!

    Scorpion, Vulture, Rhino, Electro – classic schmuck material.

    So how does this apply to superhero games, and what I’m doing?

    With narrative driven games, you’re always competing your developer time with the player’s time, and losing. You spend months making a set of missions with story and the players can devour them in a matter of hours and say “what’s next?”

    You can provide replayability by having a comprehensive character building system, so you can play through the same story arcs with a different character and have it feel new.

    And you can provide repeatable gameplay that’s procedurally generated (from hand-crafted chunks), and hope that the second-to-second gameplay is fun enough to let this hold the player’s interest.

    Freedom Force was mainly narrative-driven stories, each with cutscenes and love poured into them. It also offered Danger Room modes where you could battle AIs in a less meaningful way, getting your fun from the game mechanics instead of the narrative. I know some people mostly played in that mode.

    City of Heroes has Task Forces for the big stories, down to repeatable radio/newspaper missions where [The Council] have [Kidnapped Terry from the Shadow Shard], and people grind them for XP and fun. I sure have. Task Forces will have one or more Archvillain fights, where the team dogpile a big bag of hit points. Radio missions mostly end with a named Boss encounter.

    Champions Online has the best Schmuck Villain mechanic in its Alerts. It’s [Radiation Rumble], with [Medusa] trying to steal the uranium! Or [Museum Robbery] with [Steel Commando]! These little 5 minute queued team-ups with a pot of gold at the end are quite popular. The pattern and procedural generation could not be clearer. But, the villain has a couple of lines of dialog to flesh them out, they bring their own custom faction of lackeys as backup, and it doesn’t get too repetitive.

    So what have I got cooking?

    I want to get away from the player spending most of their time fighting rank-and-file minions, and have supervillain encounters be a day-to-day occurrence. Your bread-and-butter patrol activity should vary between beating up some bank robbers, and taking on the likes of Spidey’s schmucks.

    I’ve got a roster of 20 characters who are the schmuck villains of Paradise City. I’m making mission fragments for when you’re on patrol that can swap them in or out at random. My faction system allows me to make factions like Thieves or Vandals, and each character can appear in multiple groups.

    You go on Patrol, and things happen requiring your attention.

    • Demian Triumph’s robots are attempting a bank robbery! (groups of minions)
    • The Misfits are planting bombs! (groups of minions again)
    • [Tiger Wasp] is robbing the [Science Center]! (a random villain from the Thief faction)
    • [Oobleck] and [Gold] are running amok in the city centre! (two randoms from the Vandals faction)
    • A unique story event kicks off, queuing up other story events, which may or may not include some of these characters you’re now familiar with.

    This allows me to pad out the stories with day-to-day hero activities without making it too grindy or repetitive, hopefully.

    It allows me to quickly build a backdrop of familiar characters. I’ve set up an infographic system in the comic cutscene engine which allows me to put together rap sheets for all these schmucks, with a brief history and description.

    And any of them could become a plot point in later stories. Sometimes a schmuck will graduate.

  • Smash it up, smash it up!

    Smash it up, smash it up!

    Property damage is a key part of the superhero genre. If you’re not punching each other through walls or throwing streetlights like javelins, you’re not doing it right!

    This is what I tackled this weekend, specifically picking up and throwing props as weapons.

    Freedom Force did this really well, with a pick up action that allowed you to carry a car or other throwable above your head, during which time other actions were locked out. You could throw it at a target, delivering heavy damage and knockback, and dropping fliers out of the sky.

    The author of the Suicide Squad mod for Freedom Force came up with the brilliant idea of spawning an invisible character to pick up and throw objects to simulate telekinesis. I co-opted this idea into my FFX system.

    City of Heroes sidestepped this with special powers Hurl and Propel that summon a physics object for the characters to throw, due to the technical and design challenges of an MMO. These were basically just ranged attacks with some cosmetic trickery.

    Champions Online followed suit from Freedom Force, in a multiplayer environment.

    In the Unity RPGRules engine I wrote, I had this exact pick up and throw mechanic working. Throwable objects had invisible bars on them, the player could approach an object and pick it up if they were strong enough, finding the best invisible bar to grab.

    But on reflection, this isn’t necessarily the best game design option.

    Pick up and throw is a setup-detonate action. You see the nearby prop and it’s a special opportunity. You then need to orchestrate the right distance, clear line of sight and so on to make it work for the pay-off of big damage.

    The two stage action of pick up and throw with lengthy animations mean that by the time you’ve launched your projectile the target is already hitting you, or defeated. Freedom Force allows you to stop time, whereas Esperanto does not.

    I wanted to make it easier and more fluid to grab an object and throw it.

    Unity RPGRules had a TK status effect that worked like this.

    • If you have a primed object, you throw it at the target
    • If the target is a throwable, you prime that object, and it hovers in mid air until thrown.
    • Otherwise, find the nearest throwable object to the target and prime it.

    I decided to replicate that pattern in Esperanto. As for physically picking up and throwing, with the last point being that you find an object near you. I’d get the character to do a one handed scoop animation followed by a throw.

    I figured the easiest way to present this to the player was as a power you can buy. Amazing Strength now has Throw Object. You can enhance it to allow you to pick up bigger objects.

    This way you can keep your target on your opponent, run near a throwable and just double click to scoop and throw in one fairly smooth movement. I still lok you out of using any other powers while carrying a throwable in your hand.

    A whole big task list came out of this…

    1. Get TK working, so you remotely pick up and prime objects, then throw them.
    2. Make the thrown objects do damage on hit, to both the target and themselves
    3. Add mass and conditions
    4. Get Throw Object working using some settings in the TK effect to glue the object to the characters hand and freeze their animation with their right hand up in the air.
    5. Intercept the animation when you throw to be a throw rather than a pick up
    6. Make sure the object’s physics get turned off while you’re carrying it, and get turned on again for the throw.
    7. Add Visual FX eg hovering TK objects get a customisable particle effect on them.
    8. Get the AI to use this sensibly.
    9. Make sure the character drops the held item if they’re mezzed, killed or knocked back.

    The AI of throwing objects

    I use a method called Utility AI. Each power can evaluate how good it is as a single number, with a chosen target, and then a weighted random roll determines which one is picked. That power is then executed.

    The standard Execute code is:

    • Are we within range? Do the power.
    • If not, run at the target to get into range.

    With Throw Object this becomes more complicated:

    • Am I holding an object? If so, throw it!
    • If not, find the nearest object I can pick up and throw. Is it in range? Pick it up.
    • If not, move towards the nearest object.

    This starts to resemble Goal Oriented Action Planning, a more sophisticated AI technique that deals with chained goals. I’ve managed to shoe-horn this behaviour into Utility AI for now, and its working well enough for a first pass, as the video shows.

    I then had to make a Telekinesis powerset to support the TK status effect, one which felt distinct enough from the existing Force Fields set. Luckily, I had the pieces pretty much in place for:

    • A direct knockback attack.
    • A reverse knockback equivalent.
    • A TK Disarm that pulls the targets weapon to you
    • A short-lived buff to yourself or an ally that redirects all projectiles for the next few seconds. (If you want better protection, look in Force Fields)
    • A simple passive buff that extends your “Reach” so you can use interactable objects from a distance.
    • A TK hold toggle that leaves the target held in mid air as long as you continue to expend energy on them.

    And that was Saturday!

    I need to make a TK villain for you to fight next!

  • Powers and Builds

    Powers and Builds

    I have this theory about “smooth” and “lumpy” build systems for RPGs.

    It dates back to my teenage years playing the pen-an-paper RPG’s Villains & Vigilantes and Champions. V&V is gloriously “lumpy” – full of big tables and lists of data. Flame Powers could bundle up flight and throwing fireballs, and had different dice rolls from lightning bolts, and so on. It’s like a big toybox full of goodies to explore!

    Champions and the HERO system is an incredibly elegant piece of engineering, in contrast. Both fire and lightning attack are just dice of ranged energy damage, possibly with modifiers attached. You’re guaranteed balance and fairness in that kind of system, and it appealed heavily to my programmer’s mind.

    I’ve built a power system that allows me to assemble any power I want from blocks, just add damage, debuffs, mezzes etc and they’ll all work, and increase the cost of the power appropriately.

    I could let the player’s loose on that, making it smooth like Champions. Or I could create some prebuilt powersets and make it more lumpy like V&V.

    Then there’s character classes and roles in any RPG system. I wanted one of the pillars of Esperanto to be freedom of choice for your character, which means abandoning strict character classes. Ideally, if you really want Flight and Invulnerability and Heat Vision and Amazing Strength and Electrical Blasts, you can have them all. But you won’t be as good as someone who’s specialised in just one of these things.

    Here’s what I’ve came up with:

    Powers are arranged in thematic powersets, designed by me. I’m going lumpy. I was partly inspired to do this by playing City of Heroes, which has character classes with well defined powersets. I realised there’s a certain joy to picking through these pre-defined goodies with their idiosyncratic powers (I’m looking at you, Stone Armor!) and making what you can from them.

    In Esperanto, players can choose any power from any powerset for their character, but…

    Each character has:

    • a Role that modifies the effectiveness of powers, eg Tanks get better values for self-defence powers, but lowered damage and mez values
    • a Primary powerset, whose powers operate at +50% effectiveness
    • a Secondary powerset, whose powers operate at +25% effectiveness
    • two Tertiary powersets at base values
    • any other powers operate at -50% value ie half strength

    If you have an idea for a character who’s main thing is being invulnerable, you can choose Tank role and Invulnerability as your primary powerset, and you’ll be very tough out of the box. Your damage output won’t be stellar, at least not compared to a character with a primary damage set and the Artillery role.

    Choosing your Role, and each of the four main powersets for a character is an investment in certain aspects at the expense of others.

    Example

    Let’s have a look at the popular and classic combination of Invulnerability and Super-strength.

    The base values for Amazing Invulnerability and Amazing Punch are shown below: 20% resistance and 10 damage respectively.

    We can see how these change if we select different roles.

    Selecting the Tank role increases the resistance and decreases the damage exactly as advertised.

    The values shown in the power selection screen reflect the Role you’ve currently selected. Notice that the cost of the powers has not changed.

    The values in your character screen when you’ve selected may be different yet again, depending on whether you’ve selected the powerset as your Primary or Secondary.

    If you chose Invulnerability as your primary, and Amazing Strength as your secondary they would look like this. The values for your Primary get multiplied by a further +50%.

    20% (base value) * 1.5 (Tank Role) * 1.5 (Primary) = 45%

    And the values for your secondary get multiplied by a further +25%

    10 (base damage) * 0.8 (Tank Role) * 1.25 (Secondary) = 10

    If we decide to make our character more offence based we could make Amazing Strength our Primary, and switch to the Brawler Role, intended for melee damage characters.

    Our physical resistance is now

    20 * 1 (Brawler Role) *1.25 (Secondary) = 25%

    And our damage with Amazing Punch is

    10 * 1.25 (Brawler) * 1.5 (Primary) = 18.75

    Adding enhancements will also increase the strength of these powers, but unlike Role and Primary/Secondary choices, these will increase the points cost of the powers.

    Basic enhancements will typically double the strength of the powers, but the crafting system will allow you to make even more powerful enhancements.

    This allows the same base powers to scale depending on your character’s strengths, whether invulnerability is their main superhuman trait, right down to a street level hero wearing a bulletproof vest.

    Project Progress Snapshot