Tuesday, 19 August 2014

First Law: Override - Controlling NPCs

Greetings friends!

So I've dropped doing this post as another chapter of the Un-Published Game Designer blog, it's not really in the spirit of those posts, and truthfully I don't think yesterday's was either at the time of posting.

So anyway; in yesterday's post I wrote about picking a combat system and ended up writing myself into a knot as it became apparent that the combat system would be largely tied into who controls the NPCs (Characters not representing Players).

Now, First Law: Override is supposed to be a fully cooperative game. What that means is that every player is supposed to be part of the Player Group, and the models they kill are not controlled by a single player.

I have to be honest, I'm not all that familiar with how different games have achieved what is essentially removing the GM, and so this is a little new to me.

What I do know however is my goal is to create a team play game that is reminiscent of team based videogames; kind of like how CRYPTS was reminiscent of Diablo, I want this to remind players of games like Mass Effect.

Now as I mentioned yesterday, there is always a fall back, I can always say that the game requires a GM which will solve most of the issues, but that is only a last resort.


So in FL:O the NPCs perform actions based on Personality Actions.

Originally I was aiming for something that was complex but represented the human/animal capability for almost random choices and an element of basic psychology in there as well, but that ended up complex and complicated.

Now the system is much more simple, while still being kinda complicated in itself because of the nature of what we're talking about:

Basically every NPC will come with a behaviour chart specific to them.

For example:

Pha'Nur - Alien Beast
Detection: 360 degrees 18"
Alert: Will move towards target & attack with claws if possible.
Not Alert: Hybernate. Remain stationary.


Maintenance Man - Human
Detection: 90 degrees 12"
Alert: Will run directly to the nearest location that will put then out of line of sight with target. If this isn't possible move directly away from target.
Not Alert: Move up to half movement in a 4-Way Direction* where able. If there is terrain blocking their path and their movement range would allow then to walk around the terrain, do so otherwise cease movement.

*4-Way Direction - Roll 1d4:
1 = North
2 = East
3 = South
4 = West


Sentry Bot - Robot
Detection: 90 degrees 18", 360 degrees 6".
Alert: Attack target with primary weapon.
Not Alert: Turn Clockwise by 90 degrees.


Now; everything in this game has a Detection range and degree. Most will have a 90 degree arc of detection representing visual spacing, the distance of that arc will vary on the target. A janitor will have a low detection range while a soldier's will be much higher and a sniper will be unlimited.

Something performs it's actions based on whether it is Alert or Not Alert, which relates to whether there is an enemy model within it's detection range when it activates.

So an NPC would activate as so:

Begin Activation
Status: Not Alert
Check Detection Radius
If enemy model within Detection Radius: Perform Alert Action
If no enemy model within Detection Radius: Perform Non-Alert Action.

Now this would be fine, there are many different ways you could play this, you could say that every player after finishing with their character has to activate an NPC, or perhaps you have a Player Turn and an NPC/AI Turn, maybe in the Player turn the sequence goes clockwise around the table, and once that is done the AI turn goes anti clockwise, and as long as the NPCs are either Not Alert, or are attacking other players it's fine, but what happens when an NPC is alerted by the same player controlling that NPC for that turn?

- This is less of an issue when the player is attacking an NPC, you can default to rules such as 'player to the left controls NPC'.

In this instance would control jump to the next person?

This is the dilemma I am faced with right now.

With my limited experience of coop games, everything I have read talks only about players interacting with NPCs or NPCs being controlled by players but in a competitive way; just look at the game ZOMBIES where each player controls 1d6 zombies to try and hurt the other player. It works in this game because there can only be one winner, but in a game like FL:O where you want to win as a group, I can foresee most players being unhappy about having to attack their team mates.

So how do other games do it?

If you can help me out here, let me know what other systems use and clue me in on how they get around it, that would be super helpful.

And on that note I leave you for now.

As you can see the AI system should account for most situations, but there are issues and if I can't overcome those issues, I might as well just have a GM.

- Your friendly neighbourhood Doctor Loxley


  1. After doing a bit of research I have found a couple of articles that talk about purely player controlled NPCs and how the myth of conspiring to do silly unrealistic activities in order to skew the game to their favour is just that; a myth.

    With all of this I'm left wondering if I'm making this too complicated and if a more straight forward approach would work better

  2. I think your going to have trouble getting depth into your team fights with the current model - it is very predictable and results in monster acting the same way every turn. I understand why you are doing it this way as every other way ends up very complicated.

    One way to 'fake' complicated would be to have a set of behaviour charts with a new one used each activation - this is more random than complex but may give the impression of complexity

    So in addition to your chart you could have:

    Pha'Nur - Alien Beast
    Detection: 360 degrees 18"
    Alert: Screams loudly, causing all humanoids to freeze and reduces their AP? for next turn
    Not Alert: Hibernate (sp). roll over in sleep (turn around 180°).

    How does that sound?


    1. I see what you are going for, but I'm actually now thinking that even what I proposed yesterday was too complicated and convoluted.

      I'm now thinking about archetypes, a label that you slap on a model and in doing so determines how it will act.

      Models could haven2 archetypes: the first being about passive actions, the second being active.

      For example:
      Human Security Guard - Stationary/Balistic

      Or Kratel Warrior - Wandering/Brutal

      The idea of the first would be split into three types: Stationary (they stand absolutely still when inactive), Wandering (they move around when inactive) and Rotary (they turn 90 degrees when inactive)

      Then for active you have:
      Brutal (they charge at the nearest enemy and attack with melee)
      Balistic (they move towards cover and shoot)
      Cowardly (they run away when attacked)

      There can be more, but the varieties would come by introducing different types of models with different archetypes.

      This turns the game more into a problem solving game as you see the situation ahead of you, you know that there are X types of NPCs to deal with, what do you employ to deal with situation?

      In a way it makes it more like a scifi MMO with models using pre-scripted, predictable responses, and I'm ok with that.

      Ofc the joy of doing it this way, can always introduce more archetypes later, including things like 'unpredictable' where you randomise how they react, or 'stealthy' where they remain invulnerable until they attack or something.