Living Worlds: The Joy Of NPC Schedules

Just before the Christmas break I was trying to catch up on all of the interesting games that I hadn’t found time to play earlier in the year. Else Heart.Break() was right near the top of the list, even though I have zero interest in games that expect me to learn how to program in order to have fun. If I learn how to program it’ll be so that I can become a megarich superstar game dev, not so that I can solve puzzles in somebody else’s game.

So why play a game that is quite clearly about IFs, ELSEs and ANDs? The Store page description contains phrases that should have warned me off the game rather than encouraging me to buy it, and yet something appealed. I wanted to play the game because of a single paragraph in Brendan’s review:

Apart from this compass needle of plot, the city is yours to explore. And what a city. Dorisburg is built like an intricate piece of clockwork. Characters go from place to place according to their individual schedule. They’ll go to work, head to the cafe, then off to a house party. I always knew, for example, that my supervisor at the soda job would be outside the nightclub smoking every night at about 10pm. In the early hours of the morning, he would chill out on a bench in the plaza.

I’ve been fascinated by NPC schedules and that clockwork intricacy of virtual worlds since I first played Ultima VII. All of the super HD post-processed anti-aliased super graphics in the world won’t do as much to convince me that a world is real if the people that inhabit that world don’t have jobs to do and leisure time to fill. Else Heart.Break() is a wonderful game for people-watching and I managed to while away hours without even unlocking the ability to delve into the object programming that appears to be the whole enterprise’s raison d’etre.

Why would I rush to disrupt the mechanical structure of a world so intricate unless I’d first taken the time to enjoy it?

Waking up every morning, tucked in a pokey little hotel room, I trickled down to the restaurant and grabbed a coffee. There were familiar faces, including a German tourist who had become my best friend by virtue of the fact that he always remembered my name and said hello cheerfully. I was delighted to see the chef/waiter/barista emerging from the kitchen to retrieve my cup once I’d drank my fill and even more delighted when he made a new brew to pop on the counter in its place.

This, I thought to myself, is a world that continues to function even when I’m not looking at it. People go to the bar when they finish work for the day, some of them suck on a cigarette as they walk through the frequent downpours back to their lovingly modelled homes at the end of the day. During my own wandering, I occasionally see my German pal doing touristy things – taking photos, sitting on benches and watching the world go by. That’s pretty much how I spend my days, although I tend to follow interesting people through the streets and back to their houses more often than he does. But we’re both here, in the world of the game, purely to indulge and express our interest in that world. This NPC has more in common with me than almost any other I’ve ever encountered.

NPC schedules are fundamental to the credibility of a game’s world. Patrols are one of the most familiar manifestations of schedules and Metal Gear Solid V recently made excellent use of guard movements and interactions to suggest AI that was reactive and alive beyond its actual function. A combination of cleverly timed barks – those declarations of intent that made Half Life’s human enemies so convincing – and scheduling is the most effective form of artificial life I’ve ever seen.

If a knight jumps off his horse, ditches all of his knightly clobber in a cloakroom and then sits down in a tavern to quaff some ale, I’m absolutely invested in every single one of those actions. If he does exactly the same thing but declares “THE DAY’S QUESTING IS DONE NOW IT IS TIME TO DRINK AND BE MERRY MY FRIENDS” as he takes his seat, I’m going to shout a response at the screen. That was the great joy of Ultima VII’s sessions of boozy (and eggy) downtime between virtuous monster-slaying – NPCs would plant themselves in the pub and bellow about the food and drink they were gorging themselves on. And then they’d go back to work and, in the case of the baker, actually make objects using systems and raw materials in the game world.

Believable NPC schedules are one of the few things Divinity: Original Sin didn’t retain from the Ultima VII portions of its design documents. That’s at least partly because Larian chose to tackle cooperative play, which required tracking multiple player characters in the world at any one time, each of which might enter turn-based combat independently of the other (multiple others in the upcoming sequel). That would make tracking day/night cycles and triggers for changes in a schedule impossible.

That kind of complex and simulation-shattering time management is just one example of the kind of structures that can prevent NPC scheduling, even in games where it seems desirable. GTA’s citizens don’t have individual lives. They spawn to act as props. In those cities, everyone except the characters in the cutscenes is an extra, shipped in to add some local flavour and occasionally fed a few lines of dialogue, but never expected to establish themselves within the narrative or even within the location itself.

That’s almost certainly due to scale. GTA V doesn’t even model packs of pedestrians when the player isn’t in the vicinity. The same is true of Assassin’s Creed: Syndicate, in which there are people who are in the pub and people who are in the street, but few people who are sometimes in the street and sometimes in the pub. Those who work are at work 24/7 and those who play never stop playing.

One of the most thrilling experiences I can remember involved S.T.A.L.K.E.R.: Call of Pripyat with the Misery mod installed. I’d turned the A-Life up to its highest setting, meaning that every living thing in the game was active with its AI fully functional no matter how far from my location it had spawned. From a hillside, through binoculars, I watched a group of three men wading through waist-high water, twitchy and nervous. When they reached the bank, they stopped, seemed to gather and converse.

Nothing in their animations had been modded but they were weary. I could tell they felt haunted and hunted, out there in the Zone, and that they wanted shelter, warmth and food. None of that was conveyed through visual flourishes, voice acting or scripted interactions. They convinced me because they were behaving just as I was behaving, and I saw my own nervous energy and anxiety in them because of that. Just as I saw it in my tourist friend in the beautiful machine of else Heart.Break() and just as I see it in every NPC whose existence has even a hint of purpose beyond his or her direct relation to the player character.

High fidelity visuals can convince me I’m looking at a beautiful series of paintings or sculptures. Believable inhabitants can convince me I’m walking through a world.

40 Comments

  1. twaitsfan says:

    Well said Adam! I remember watching the long demos of Oblivion thinking “Wow – this is a real living world! People do things even when I’m not there!”

    Then I played it.

    • Chiron says:

      Aye, all the Oblivion/Skyrim/Fallout games seem to feel so flat and lifeless, relying soley on the player for any real oomph. There are a few slight flourishes of life but it just feels… souless and empty.

      Gothic 1 had a clunkier interface and less shiny graphics than even Morrowind but I still felt it was a far superior game because the world felt like a real world, and I really was a wannabe nobody compared to these hard bastards quaffing ale or smoking weed in the swamps. Even the Blacksmith had a place in the camp where he went to sleep at night.

  2. TillEulenspiegel says:

    It’s important to look at the bigger picture; you’re not really excited about “NPC schedules” – that’s just one possible implementation of one small slice of world simulation. That’s the goal. That’s what we actually want.

    If a developer just goes in and adds a few scripts to previously static NPCs so they shuffle around, that may help the game a bit, but it’s missing the point of crafting a believable world. I want to be able to escort a merchant carrying valuable materials to another city, and then have those materials distributed to local craftspeople. Or when the baker goes for a drink, I should be able to poison him. Schedules only really matter when the player can interact with that.

    This doesn’t require some hugely complex Dwarf Fortress-scale simulation. Just a basic model of significant interactions and their consequences.

    • onodera says:

      There’s always the question of scale that throws a spanner into the gears of a world like that. You want to compress space and time to make the game playable, but compressing space and time means fewer things done. Yes, you can twiddle around with the parameters until they feel right, but that’s lots of effort, you’re better off making a strategy game like Banished.

      For a game of sufficiently large scale you cannot simulate all of this as well, so you need a more abstract system that works while you’re away and a way to convert between them. This is a mammoth undertaking that won’t be appreciated by 95% of the players who orient themselves solely by quest markers.

      • Premium User Badge

        gritz says:

        Nonsense. Ultima VII accomplished this in 1991, with about as many NPC’s per settlement as modern RPG’s. (Moreso, in many cases)

        It’s 2016- we can do better than Fallout 4 NPC’s incessantly hammering an empty building during the day and sleeping in a random rucksack at night.

        • Xocrates says:

          We can probably do better, but this doesn’t mean it’s not a gargantuan investment that 95% of players will never see. Particularly as worlds grow more complex.

          • Premium User Badge

            gritz says:

            Lifeless, ridiculous NPC behavior is one of the most common criticisms of Bethesda’s open-world formula. It’s not something “95% wouldn’t see”, it’s a glaring flaw that everyone who plays those games notices pretty much immediately.

            And these games aren’t becoming more complex. At least not in terms of the number of NPC’s on screen or the amount of things they’re able to do.

          • Xocrates says:

            And which affect the success of the games none.

            Also, even if the amount of things a NPC can do hasn’t increased, the complexity required for them to do those things has. And you’re more likely to notice a correct behaviour done badly than an incorrect one done ok-ish.

          • golochuk says:

            I don’t want world simulation.

            I don’t want the smithy in town to be all out of weapons because an iron shipment was stolen offcamera. I don’t want to miss out on a questline because an important peasant was killed in a random bandit attack. I don’t want to poison the baker when I can already just stab him in his sleep. I don’t want important NPCs to wander over hill and dale, forcing me to chase them, and risking death by bandits.

            Bethesda wants to provide handcrafted adventures, and chaos like this undermines that. There’s value in what Bethesda wants to do, and they have no obligation to do what you want instead.

          • darkmorgado says:

            I would much rather have a reactive gameworld, where NPCs respond to my actions (good or bad) instead of wandering into a town full of NPCs who might as well be an option on a static menu.

          • khamul says:

            There’s a solution to this I always wanted to play with, that might have potential: model relationships, not actions.

            The baker can still hammer bread (that’s how you make bread, right?) all day, and sleep in his back room all night, but you track how he feels about a couple of dozen people key NPCs in town, and how he feels about you as a result. And tweak dialog etc as a result.

            So when you cheese off the King by breaking the law, the rebellious baker cuts his prices, but the dutiful tailor refuses to serve you. And if you tell the baker about the tailor, he starts hating him too.

            Chain the relationships up enough, and you can set up the world so that killing a merchant will result in civil war. Then give the player a reason to hate the merchant. Hilarity ensues.

          • draglikepull says:

            @khamul

            That’s pretty much what Ken Levine claims to be doing with the game he’s working on now. Whether he actually manages to do it . . . we’ll see.

          • MakeSkyrimGreen says:

            @khamul. That makes me think of the plot of Stephen King’s Needful Things.. :/ . SPOILER warning: where the bad guy sets up an epic confrontation by getting people to do things that will set other people against each other in return for the object they most desire. // END SPOILER for Needful Things.

        • onodera says:

          Could you kill all cows in Ultima VII and turn milk into an expensive import? This is what “I want to be able to escort a merchant carrying valuable materials to another city, and then have those materials distributed to local craftspeople.” ultimately means. Yes, there’s a big gap between Bethesda NPCs going through the motions and world simulation, but there aren’t that many easy steps left to take.

          • seden says:

            Another options = modding.
            A dedicated, as performant & user friendly as possible (see TESC for an example, knowing that it has several limitations.
            >TES5Edit
            >TESLODGEN
            >SKSE
            And several others extending over the limits of the TESC.

            Then, the editor from OpenMW could be an example, as it should be close to the ideal (being constructed by “users”).

            Of course, that track as quite some requirements, if not taken early = quite requiring, still not as much as going over individual coding of AI for each and any NPC (they have been several projects for the TES game, from “NPCwJobs” to the last one (who sadly has several conflicts with others mods).

            As to OpenMW, the engine should support all existing mods, and so, have over three time the vanilla content (of very high quality) mod (adding quite some part of the mainland, new gameplay options (boat pilot, climbing, etc).
            Then, they are quite some modders interested as to update mods as to support the new scripts & others added functions (be it over textures, meshes supports (NPC & CRE more lifelike movements for example, nights & dawn changed & varying as to several locations, etc).

            And so, TBS, developers will & possibility (will being the most important value there and in most RL based occurrence).

    • criskywalker says:

      I wonder is developers wouldn’t be better off creating smaller environments, like a village, maybe.

      Having realistic NPC routines would help a lot to make the (smaller) world more interesting.

      • Turkey says:

        I feel like there was a lot of experimentation with exploring a limited space over an extensive period of time in the 90s and early 00s, but that sadly went away when AAA games got more homogenized.

        I dunno, maybe we’ll return to the concept a little more with indie games.

  3. Tacroy says:

    To be fair, Else Heart.Break() kinda falls apart if you do know how to program some – the main character is his own person, and he doesn’t know a hash map from a hole in the ground.

    This means you can be wandering around as a hacked up physical God who bends time and space with a soda can, but in interactions with NPCs you’re all “oh hey what’s an if statement?”

    It’s weird. I eventually decided he was just screwing with everyone.

  4. GameCat says:

    Not any single word about Gothic? Oh come on.

    • Premium User Badge

      Adam Smith says:

      I could have mentioned many games. Gothic is sadly one of my blindspots. Little experience with the series I’m afraid!

  5. realitysconcierge says:

    Majora’s Mask would be a good example of a game that has pretty detailed NPC schedules.

    • HERP DERP NANOMACHINES says:

      The main theme of that game is how impossible it is to solve everyone’s problems with the time and resources we have, the only reason everone gets a happy ending at all is silly plot magic that doesn’t exist in the real world.

      Labeling that deep thematic gameplay as “npc schedules” is blasphemy.

  6. caff says:

    So did you like Else Heart.Break()?

  7. Premium User Badge

    gritz says:

    Ultima VII tag, best tag.

  8. Laurentius says:

    These games unfortunately doesn’t provide interesting “observe NPC” experience but there are such games from different geners.
    1. Footbal Manager – even after years of career still looking up that star player of your first division club that you offloaded to Premiership for a bag of cash beacause he was closing to thirty. What had become of him, did he do well, what abnout after he ended his career. Will he becaome a scout or maybe a great assistant manager.
    2. Crusader Kings 2 – that one goes without saying, I mean everyone has this story about how you married your third (and six child ) duaghter to some Duke of something an then 30 years later, after being widowed twice, she isa ruling queen of Sweden or something like thta.

    PS. I can’t belive that there still isn’t cRPG built on Crusader King 2 engine, sure it wouldn’t have shiny graphics but finally having dynamic world would be a huge step up. CK2 meets Darklands, plz someone, make it happen.

    • Premium User Badge

      Adam Smith says:

      Perfect response.

    • Turkey says:

      Yup. I do most of my npc people watching in strategy simulation games. Especially Blue Byte and old Bullfrog games.

      • Premium User Badge

        phuzz says:

        Ah yes! When I played the first Settlers* on my Amiga years ago, when I captured a big chunk of territory I’d plonk down a new warehouse, and then find a picturesque bit of countryside with a lake and build a fishing hut, and then I’d quite happily spend hours watching the little fisherman doing his thing.

        * Which came in a compilation with Cannon Fodder, Chaos Engine and most incongruously, Terminator 2: The Arcade Game. Never worked out the logic behind that one.

  9. Mi-24 says:

    I’ve recently been playing dishonored’s knife of dunwall missions (Which are great), and in the second mission I noticed something interesting.

    I killed my target and was making my escape over the nearby rooftops and watching the guards below as they pathetically attempted to search for the magic teleporting ninja (good luck with that) when I saw a car/train thing drive up. A soldier wearing red followed by 2 others got out, I used my telescope thing to hear their conversation and it was some general. He took over the defense of the house and started giving orders to the other guards. I killed him when I got the chance because I heard he was a general so, might as well. But it never showed up as any form of special secondary objective or anything. If it had it would be far more mundane, but it just happened. if I hadn’t paid attention I would never have noticed it. Whilst its not anything to do with npc schedules it was an interesting occurrence and a pleasant surprise. I also loved how at the end of the mission it came up in the special actions bit, good to know the game noticed my blood lust. I wonder if it changes anything in the next mission.

  10. rexx.sabotage says:

    Yes, more world simulation, please :)

    the wonky angle of perspective the isometric Ultimas use makes me nauseous to look at, am I the only one? I really want to play them but, they make me physically sick, no other game does this to me and I consider myself to have a pretty stalwart constitution.

  11. Shazbut says:

    Lovely STALKER anecdote. The original was the first game where I ever experienced that elusive holy grail of gaming called “emergence”

    Was running across the map to deliver a package to some guy only for him to be killed in an ambush before I arrived. Reloaded the save and the ambush still happened, but this time he managed to survive.

    Couldn’t believe it. It was like a new frontier.

  12. gabrielonuris says:

    I have something to share too!

    Once upon a time I was playing The Witcher 3, and decided to follow a whore during the night, just… for science. Then there was a sunrise, and the girl started to walk in the direction of the poorest part of Novigrad.

    There she entered in a slum, it was clean but very humble, and then a child came in and hugged her saying: “hey mummy, I missed you! Can you play with me?”
    So she replied: “not now sweet heart, mummy is tired and in need of some sleep.”
    And so the child has gone out to play, and the woman just laid down on her bed.

    Man, that was heart touching.

  13. Vanderhuge says:

    Man you just NAILED something I love in games, but don’t see very often. Everytime a game promises a living world but the people in it just stand in the same place doing the same thing the entire time it pulls me out just a bit. I lost so much time just tinkering around in Ultima 7 being amazed at how the world ticked and how I could play around in it. 14 year old me loved opening the shutters at night and seeing people wake up to close them, or dousing the lights and watching the guards turn them back on.

    …then I’d start waiting until night to try to rob the gold storage or other places. I’d follow someone around and watch them go about their day. I completely agree that sucked me into the world far more than any advanced graphics ever have.

    Other games have sucked me in without these touches, but it’s always touches that lean more on immersing me into a world. Letting me play around in it in ways that maybe aren’t important to progress, but let me feel like I’m really in a place that exists. Ultima 7, Deus Ex, Dishonored…stuff like that.

    …also the coding nature of Else.Heart.Break kinda scared me away from it, but this totally sold me on giving it another look. This sounds like something right up my alley.

  14. jbeavis100 says:

    No one mentioned shenmue? It was a pioneer in NPC scheduling. Every single npc in shenmue had a name, a small amount of writing, birthdate, and a schedule that they would adhere to. From dawn til dusk they would go to work, hobbies and the like and then head home to go to sleep and do it all over again. It was really impressive for it’s time.

  15. jim_berghaus says:

    I can remember being facinated by npc schedules ever since the days of playing the Hobbit and Twin Kingdom Valley on the ZX Spectrum. Even though those games the npc’s actually had a certain amount of autonomy depending on the location and circumstances that were occuring. Alien (based on the film) which was released on the 8 bits about 1984 also had a crude kind of personality algorithym for each npc depending on the character and the situation which was occuring in that sepcific location.. Amazing I thought..!

  16. jezcentral says:

    I guess everyone will have their own example where a game has given them this feeling. For me, it was Hitman Blood Money, reinforced by the fact that the whole point of the game is to look at these NPC schedules and take advantage of them.

    Agent 47 is the spanner in the works. The system all works perfectly, even as he insinuates himself into the level (i.e. doesn’t go in, guns blazing :) ). It’s great to read IO Interactive’s comments on how the AI will change as the possible NPC interactions go down as people are “removed” from level. Even Ken Levine’s talk on “narrative lego” caught my attention. This is what I want to see game devs explore, not the latest rendering process.

    I recently played a game where the level was full of NPCs interacting constantly, working perfectly. (For legal reasons, I must stress this was NOT the Hitman closed alpha :) ). I felt as if I was in world that would have happily continued without me (in fact, several NPCs would REALLY have preferred me not to have turned up. :D ), each NPC having a starring role in their own part of the story. It really made me look forward to the game, and see what future games will do with this sort of background story-telling. It’s as important as that carefully rendered rubbish on the street, or worn paint on the window frame.

    It may not be Marketing 101’s main selling point, but game AI, and the system it produces, is what makes a game great, to me.

  17. HERP DERP NANOMACHINES says:

    Has anyone said Deadly Premonition? The weird schedules of the characters going about their daily lives was part of the mystery/camp allure.