NPC Schedules - Help Create the Illusion of a Complex, Self-Sufficient World

Older role-playing games are full of static characters that function essentially as interactive signs. They stand still, unblinking, reacting only to the player's presence and dispensing information, quests, or items upon command. This creates an unfortunate connotation that without the player, they would have no reason to exist. A solution to this problem is to give each NPC a schedule to follow as time passes. This is especially effective if a day/night cycle also exists, as an NPC can follow a daily routine that makes sense for their character. A farmer might get up early, work the fields during the day, and retire inside at night. If each NPC in the game has some sort of schedule to follow, it makes them appear more as independent actors that the player happens to encounter, and less like static signposts waiting to deliver information to the player.

And important factor to consider when implementing NPC schedules is the scale of the game both in space and time. A game that covers more space will require more schedules, and a game covering more time will require more generic, repeatable ones.

In Majora's mask, a large section of gameplay occurs within a hub area called Clock Town. Almost all the residents of this town have some sort of schedule to follow. Some are very simple, as in the circus performers that practice outside during the day and practice in the inn at night. Some become very complex - the postman has a predefined route that he takes every day, running through the town to stop at every postbox.

Adding more detail to these schedules is the time system. Majora's Mask takes place over a three-day loop that the player can restart as many times as they wish. At the end of the three days, the game ends and the world is destroyed. Thus, many NPC characters have specific schedules on different days, or specific interactions are very particular times. Often the player is involved with these, or may simple observe them happening. For instance, the postman delivers a letter to Anju, the innkeeper, at 2:10pm on the first day. The letter is from her missing fiance, Kafei, and if the player is present they will learn more about the drama surrounding his disappearance.

These events lend the characters of Clock Town an independence and depth that makes them more memorable and interesting. When the player interacts with them, or affects their schedule, it feels more meaningful because of the web of connections between the NPCs and the town. And as the player repeats the three-day loop and interacts with the NPCs in different ways, they come to have a better sense of the consequences of their actions, or lack thereof.

The most complicated sidequest in Majora's Mask concerns Anju and Kafei, and a detailed breakdown of it and the many events that occur during it can be found here.

**The Elder Scrolls IV: Oblivion**

The NPCs in Oblivion all have some kind of schedule. Some are as simple as “sleep at this time, walk to this place at this time, eat some food at this time” etc. But some of the NPCs have more complex schedules. For example, several of the Dark Brotherhood quests require that the player learn something about the target’s schedule, in order to assassinate them within the required parameters for the quest. One quest in particular involves assassinating a traveling merchant who travels from one side of the map to another and can be found in or on the way to any one of the eight major cities depending on the day. This makes it very hard to track him down unless one finds and takes advantage of his written schedule.

**Assassin's Creed Franchise**

In the Assassin's Creed, all of the NPC's in the game are on a schedule to simulate real life worlds. For example, in the latest game, people will go to the marketplace to buy things, and then head home to them. Some of the NPC's are even more complex, such as the ones that you can interact with like the enemies that you can kill or the allies that you can recruit in Assassin's Creed Syndicate.