Creature Design

From very early on we are dealing with a variable number of players (anywhere from 1 to 3 players) that could have a wide variety of weapons or abilities at their disposal and easy access to swapping between ranged and melee gunplay along with other archetypes (tank, healer dps). This required us to approach creature designs in a holistic way that could provide a challenge to players regardless of what they bring to the fight.

Factions and Biomes

Creature factions are the driving force in how Wayfinder’s general enemy combat is designed - with over 8 different factions of enemies in the game each faction needed a specific identity with different character archetypes (melee and ranged) to flesh out combat.

Creature classes worked as follows in ascending order:

  • Minifodder - only a simple basic attack and movements, designed to die in a single hit

  • Fodder - most basic attacks, with one or two melee attacks, designed to die in 2 hits

  • Soldiers - have a simple gimmick attack outside of the basic attack, designed to die relatively quickly and get their gimmick off once before dying if being focused

  • Brute - Have a gimmick or two and when paired with another brute can work as combat anchors (the main enemy the encounter revolves around) - should provide challenge to players but not be overtly difficult

  • Elite - Having a couple of gimmicks and a unique ability set past the regular melee attacks, an elite should be a relatively difficult challenge on its own and be the main centerpiece of a fight.

A lot of my early creature work revolved around creating specific creatures in these factions from design to shipping, my later work involved helping identify what creature classes (elite, brute, fodder, etc) were missing from the factions and creating creatures that could help fill those gaps.

Each faction needed:

  • A distribution of ranged and melee creatures to keep melee and ranged players involved in combat

  • A combat anchor(s) that the encounters could revolve around.

  • A set of smaller creatures that could function as pop-corn for players

  • Provide ways to challenge multiple players and solo players without being overwhelming via combat queue that was iterated on during development.

As development continued I helped guide each faction towards having a unique gameplay theme for each faction that revolved around what biome they came from. For example, gloom creatures started using gloom creep/static in their kit which applied a damage over time effect onto players when attacking them. These unique gameplay tropes across the factions/biomes helped creatures feel different across all the different biomes in the game and set up good expectations for players on what they could expect creatures in those factions to do.

Creatures in Wayfinder were going to be generated together randomly depending on each dungeon run so we designed reach creature in the faction to work well with other creatures so that when encounter and event designers needed to use random sets of them together they played well. For example, the slime faction attacks have slows in them which makes them great to pair with any other beast/goblin faction because they allow other AI to catch players.

Enemy faction distribution for the remnant faction

Individual Creatures

Some of the goals that I developed for enemies were as follows:

  • Creatures should have unique gimmicks that allow them to be instantly recognizable to players

  • Have a dynamic move set that allows them to play well into ranged or melee players regardless of what kind of Wayfinder they are playing.

  • A single creature’s complexity should scale with its enemy class - simpler soldier creatures like the Lifebinder below should only have one special attack (the shield) whereas elite creatures, should have more layered complexity.

Having too many abilities on a single creature became hard to upkeep but also muddied the identity of creatures in the player’s eyes.

Documentation for each creature included basic attacks, special attacks, movement modes, production info, and a small blurb on where the enemy is found in the game.

Basic Abilities for the Gloom Caster enemy

Movement and Impact set for the Gloom Caster

Process

The process for creating an AI from Scratch was as follows

  • Create the AI blueprint as a base or as a child of the base its using

  • Setup the impact component(hit reactions), class defaults and any other base plugin-setup

  • Create the base abilities for the creature

    • everything in GAS was ability-driven even death, so this included things like, death, spawning, aware, turns and any other basic commands

  • Create unique abilities

    • This was where the bulk of the work for creating a creature came in

    • Any special blueprints that an enemy used (a breakable egg like the spiders spawn for example) or any other special object was scripted by hand.

    • The creation of any effects needed for special effects, movement stats, damage etc.

    • Setting up places for VFX and Audio to plug in anything they might need

  • Create and tune behavior for the creature’s decision-making

    • Involving making sure gimmicks were weighted higher than basic attacks, but still at a chance, as well as other movement based behaviours for actively pursuing a player, retreating into their ideal ranges and strafing around their target player when idle

Several snippets of various decision packages for AI

Variant Tiers for Teams

Wayfinders creatures had different levels of variants that we developed for the project, that way when different quests/encounters/levels needed a special creature for a quest I could quickly create these variants for them depending on the level of complexity and allowing progression and loot to get an overview of what creatures needed loot without getting lost in the files.

  • Base - the original creature that contains the rig and original art

  • T1 - A creature with a unique name, loot and stat set

  • T2 - A creature with a unique name, loot, stat set, and a unique new ability and art

Snippet of matrix containing different data on class, creature tier and loot information