Thief 3

By Shamus
on Mar 27, 2006
Filed under:
Game Reviews

A while ago I talked about emergent gameplay and how its superior to older, more scripted games. Of course, even newer AI can have some pretty amusing screwups. In fact, the “smarter” the AI, the funnier it is when the whole thing flies apart. Over the weekend I was playing Thief 3, and ran into a situation that made me think about how truly tough it is to make even passable AI.


The head of your average citizen has terrible acoustics, but the gold in their pockets makes a fun jingling sound when you pick it up.

In the game, you can sneak up on anyone (servants, nobility, or guards) and whack them on the back of the head to knock them out. (You can also stab someone in the back, but that’s noisy and bloody, and why kill them when you can just knock them out?) Once they are knocked out, you usually need to hide them. If you leave them laying in the middle of the room or hallway, someone else is likely to come along and discover your work. When this happens, they always assume the victim is dead. Then they start with the running and the screaming and everyone searching for you.

This can be amusing. I was in a large manor, working my way through a sleeping area for servants. One of them was already asleep in the bunk beds, but a few others were still wandering around. I zonked one of them and placed the sleeping victim into one of the beds. I thought I was being clever. Another servant came in, saw their compatriot in the bed and exclaimed, “Dead!? But who could have killed him? I’ll go tell the guards!” Then he ran off.

Blast it all.


When you knock somebody out, you need to stow them someplace dark and out-of-the-way. This spot is definitely sub-optimal.

I should have known better. The AI was just looking for knocked-out people. It didn’t care where the body was. I was so into the game I stopped the metagame thinking about AI and started thinking about what I’d do in the given situation. In that situation, placing a zonked person in a bed made a lot more sense than dumping them in a corner. However, to the AI it was just a poorly hidden body. Sigh.

But fixing this problem would be tricky, and would involve a lot of extra work. The level designers would have to designate certain areas or objects as “beds”, and the programmers would need to make it so that bodies laying on beds rouse less suspicion than bodies found elsewhere. Then they would need to add some new dialog and behavior: If an NPC sees someone “sleeping” on a bed (most likely not in their own bed) while fully clothed and while they should be working, he shouldn’t ignore them, but he also shouldn’t run away screaming about murders and dead bodies. You need some new behavior along the lines of “try to wake someone up and then discover they have been knocked out”.


The city that never sleeps. At least, not until I run around and give everone their good-night donk on the head.

But even with that extra effort, you can still have some amusing failure modes. Placing a servant girl on a bed in the priest’s quarters or the barracks should raise some eyebrows. Likewise, stacking two or more people in the same bed should tip off guards and servants that something is amiss. It wouldn’t make sense for them to just assume they all decided to take a nap together.

It would be annoying to code in such a way that it works right. The programmer would probably need to take the victim’s position into account as well. If I just toss somebody on the bed so that their upper body hangs over the side and their head is resting on the floor, it’s going to look pretty stupid if someone comes along and assumes they’re asleep.

Also, it seems like the length of time since the NPC’s last saw each other should be taken into account as well. If you greet your fellow housekeeper, walk out of the room, and come back a few seconds later to find them motionless in someone else’s bed, you are not going to think they are sleeping.


I’m the sneaking, robbing, creeping, crawling, thump-you-on-the-head so you can get a good rest medicine.

The game can be funny if you think about it too much. There is one house in particular where I stop by each night and give the occupant his good-night blow to the head. I’ve already robbed him blind, so he doesn’t have anything left worth taking. I just like to stop by after dark, sneak in, creep up behind him, and blast him on the back of the head. What must life be like for this guy, waking up each morning on his floor, wondering what happened and why his head hurts? Does he blame booze? Narcolepsy? His ex-wife?

Enjoyed this post? Please share!



9Nine comments.

From the Archives:

  1. Dan says:

    Would if you could prop someone outside in a sitting position and give them a bottle of liquor. (I assume you have an inventory, you steal things) then you would have to program the type of reaction to said person by who was walking by. If its a gaurd he might try to rouse the fake drunkert based on loitering or anti-vagrancy laws. While a clerical person might drag the man to the church to serve and assist the needy. Other drunks would just laugh, women would cross to the other side of the street. Some might even kick, tease or be dredfully rude to the man who has just been concused and robbed of his of pockets inventory and now his dignity.
    that NyQuil joke was sweet

  2. Dan says:

    It occured to me to mention all the Metal Gear Solid games (for the playstation) you can either kill a gaurd, tranquilize a gaurd or just choke him into unconscienceness. the problem with the second two options is that the gaurd can wake up. He then immediatly reports to HQ that he has been attacked and needs reinforcements. If you apply my bottle of liquor scenario to this case you could mabye convince the man that he himself was the cause of passing out. Even more so maybe this would only work if you choked him out instead of using the tranquilizer gun because he would more likely have a headache from this method. Which he would chaulk up to a hangover.

  3. Katy says:

    That was hilarious. I laughed until I cried! *wipes tear*

  4. Marc says:

    Like Dan says, it’s the same with the james bond movie: die another day.
    When that guy hits the car of James Bond (who is invicible, Zaou immidiatly thinks it’s an invisible car and calls reinforcements instead of checking it out.
    It would’ve been hilarious if all the reinforcements came with guns and stuff and it showed up to be a small rock the guy hit :P

  5. PanDeSal says:

    That was hilarious about that guy you kept giving the good night donk.

    I also did the bed-trick, but I caught the other spying servant, gave him some good night medicine, and dumped him in the same bed. Dropping a few bottles of wine near the bed. In the morning they may wonder what the heck happened.

    Another instance was when Garett fell out of the Thief world and into limbo. The scenario was this: the street was crowded, with far too many people to see me I decided to take the scenic route. The rooftops, since there were no rooftops, the next best thing: windowsills. I could climb up one so I could jump to the next… I was so wrong.

    Here’s what happened:
    Garett climbs up windowsill.
    Not enough footing, Garett falls.
    Garett catches edge of windowsill again.
    Garett climbs up windowsill. (like it was on autopilot)
    Not enough footing, Garett falls.
    Garett catches edge of windowsill again.
    *repeat about 4 more times*
    Garett climbs up windowsill and falls in window.
    Garett falls out of map and into limbo.
    Garett dies.
    Game over.

  6. unitled says:

    Sorry for the comment on an old post… Thinking about this, it might have been good to put into place an option to interact with a certain place when holding a body. This may have required extra scripting (and probably additional predictableness, but might have panned out quite fun…

    For instance, you could tuck a body up into bed and people would assume he was asleep (unless he was supposed to be on duty). You could prop up a body at a window so people still think he’s on guard duty, or put him in a shair by the fire so people think he’s dozed off.

    Anyway, just a quick thought I wanted to share!

  7. Shadowbird says:

    I would probably lazy my way out of that by creating a set of specific conditions (position, clothes, right bed, etc.) for the body under which it will be assumed to be sleeping by most everyone, and in any case where the conditions are not met the AI would be instructed to play out an “inspect and try to wake up” routine before raising an alarm.

    That way you could start with a simple hide-knockouts-in-beds possibility that almost never works, and slowly build it up in complexity as much as time and other resources permit.

  8. UTAlan says:

    The caption in the last photo cracked me up. :D

  9. Lame Brain says:

    I had this exact same situation in the first Thief game. I also griped that I couldn’t stuff people’s bodies into barrels. Another thing about this series that always made me curious was zombies and water. If you lead a zombie into water that is over their head, they choke for a bit and then die… Was this on purpose? was it an oversight? I have never known.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>