Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Interview Oblivion Q&A at GamesFirst!

Fez

Erudite
Joined
May 18, 2004
Messages
7,954
It's what happens when you crossbreed a gherkin and a horse.
 

space captain

Liturgist
Joined
Jun 18, 2004
Messages
343
Location
U. S. of Fuckin' A. ...and dont forget it or we'l
theres no reason why the schedule and activities of each and every NPC cant be tracked and propagated every second, you just have to be creative about tasking it out... for example all characters outside visual range may be reduced to a simple list or text script to keep the data flow light
 

triCritical

Erudite
Joined
Jan 8, 2003
Messages
1,329
Location
Colorado Springs
space captain said:
theres no reason why the schedule and activities of each and every NPC cant be tracked and propagated every second, you just have to be creative about tasking it out... for example all characters outside visual range may be reduced to a simple list or text script to keep the data flow light

I do this for a living, so you can get technical with me. And I have no idea what you mean by a simple list, or text script. By list do you mean a link list, or container class list, a stack and I am not really sure how this would be relevant in implementing multiple scheduled propagations. Rather its a utility for storing volatile memory. As for a text script, do you mean like a secondary perl, or python script that runs in the background? How you would do this I don't know but that would be a script, which they said their is no scripting, so they could not do this. So with all sincerity, please elaborate.
 

MrSmileyFaceDude

Bethesda Game Studios
Developer
Joined
Sep 24, 2004
Messages
716
Basically all NPC's in the game have different processing levels. The processing level depends on proximity to the player character. So when NPC's are in the same loaded area as the PC, have all their graphics & such, they're in high processing level. Otherwise, NPC's are in lower processing levels, and they move up & down as needed.

At each processing level, the NPC AI packages are updated at larger increments of time. At the highest processing level, they're updated as often as possible, up to (but not necessarily) once per frame. At lower processing levels, NPC's may not be updated any more often than 15 game minutes (time is accelerated so that's actually around every 30 real-world seconds). Lower processing levels do increasingly basic things -- at the lowest processing level, basically all they need to do is update their position within the world, and perhaps move to a higher processing level if they get "close" to the player character.

This way, only the data necessary at each processing level is kept in memory, and processing for NPC's nowhere near the player character don't impact performance because they're updated so seldomly.

Basically it's analogous to LOD's, but applied to NPC AI package data as opposed to graphics.
 

Saran

Scholar
Joined
Mar 8, 2005
Messages
468
Location
Goatse Mans Anal Cavity
FUCKING CUNT!

I had just written out a really long response to Exitium when the board fucked me over, arghhh.

Anyway, here it goes again:

By Randomly generated NPC's i was refering to, as otaku put it, "Filler".

1000 fully fleshed out quest givers is more than enough and as the devs have said it is a hell of a lot more than your average RPG, im not talking about those guys, what i mean is people on the street, people that you walk by everyday in real life, while i live in the middle of nowhere here in Ireland whenever i go to the nearest city or town to buy games or get pissed drunk with friends or whatever the hell im doing, i dont stop and talk to every tom,dick and harry that i meet on the street.

Its those people that could be randomly generated so that the game doesnt feel like a world of villages.

They could have a folder with a number of heads/bodys/clothes that could be put toghether randomly , their only purpose is to walk around, when you try to talk to them they repeat the latest rumours/ legends/ tell you to fuck off whatever.

In a town/neighborhood with mostly nords for example you could have it coded so that when you walk down the street the majority of randomly generated pedestrians are nords, that way you could do the capital province justice.

As for horseback ill use the same story i was going to use before the board decided to take a shit on me:

Imagine this, On the plains outside the capital city of cyrodill darts a knight on horseback, Saran of Arsehome, protector of the weak, ravisher of farmers daughters.

As i continue on, returning from a mission to steal a Dwemer artifact and take it back to the local head of the mages guild, i notice a damsel in distress, she is being attacked by some of the aggresive local fauna.

Galloping as quickly as possible in her direction i arrive just in time to see..................... the animal rip her intestines out threw a bloody gash in her belly, all becuase i couldnt get my fat armoured arse out of the saddle in time, since one of the side affects of the Daedra invasion of the material realm is the inability to attack from horseback.

Yippee.

Oh and Otaku, only two things scare here at the codex:

1: That i dont know what the hell Volourn means when he says "R00fles!"

2: That feral green dildo attached to a horse that you have in your sig!

:lol:
 

Otaku_Hanzo

Erudite
Joined
Oct 19, 2003
Messages
3,463
Location
The state of insanity.
It more intrigues me than scares me. I just wanna know what the hell it is. It's really starting to bother me that I can't find out. I wish I could like upload the pic to google and have it search that way. :P
 

Saran

Scholar
Joined
Mar 8, 2005
Messages
468
Location
Goatse Mans Anal Cavity
Otaku_Hanzo said:
It more intrigues me than scares me. I just wanna know what the hell it is. It's really starting to bother me that I can't find out. I wish I could like upload the pic to google and have it search that way. :P

:lol:

I have to admit it does look familiar, ill see if i can get my youngest brother to take a look, he might know which cartoon its from.

Edit: Unfortunatly my youngest brother is in bed, but my second youngest Bro says that the style of animation looks like something from mucha lucha or one of those "Flash" style cartoons.

Then again it could be one of those fucking pokemon bastards or digimon or something like that.

Ill see tommorow, my youngest brother just might know.
 

Visbhume

Prophet
Joined
Jun 21, 2004
Messages
984
About that green thing... it has a name. In fact, I have actually visited a site dedicated to it, but I lost the link and can't remember the name. Sorry.
 

Jora

Arcane
Joined
Mar 14, 2003
Messages
1,115
Location
Finland
AFAIK Otaku's picture was first used as an avatar on Conceptart.org forums. The guy who made it was not happy to see it being used elswhere without his permission.
 

triCritical

Erudite
Joined
Jan 8, 2003
Messages
1,329
Location
Colorado Springs
MrSmileyFaceDude said:
At each processing level, the NPC AI packages are updated at larger increments of time. At the highest processing level, they're updated as often as possible, up to (but not necessarily) once per frame. At lower processing levels, NPC's may not be updated any more often than 15 game minutes (time is accelerated so that's actually around every 30 real-world seconds). Lower processing levels do increasingly basic things -- at the lowest processing level, basically all they need to do is update their position within the world, and perhaps move to a higher processing level if they get "close" to the player character.

This way, only the data necessary at each processing level is kept in memory, and processing for NPC's nowhere near the player character don't impact performance because they're updated so seldomly.

thx for the response.

Do you take advantage of processing nulls in what the player is doing, ie. sitting doing nothing, loading screens, with possibly ustilizing dual processor features of hyperthreading (tm) to do the updating? Still seems like a hell of a lot of calculations for all the NPC's in the game, but I guess the devil is in the detail.

Although I am still curious to know how the propragator/updater handles special events for the NPC, or if it does at all. In other words, an NPC is at low processing level, and is scheduled to walk from point A at time beginning of game, to point B at an assumed speed and then l00t the treasure. Since it could possibly take an infinite amount of time in an elder scrolls games for the playing character (PC) to get to proximity of point B, does the NPC just wait, or start a new part of their schedule, not doing anything interesting, so to speak, at point B?

Does that make sense?
 

MrSmileyFaceDude

Bethesda Game Studios
Developer
Joined
Sep 24, 2004
Messages
716
All the NPC's are always being updated -- but how often they're being updated is dependent upon their proximity to the PC. And what's done when they DO update ranges from merely updating their position in the world all the way up to full animations at the highest processing level.

So if you have an NPC that goes from point A to point B over a period of time, and the PC never goes to either of those points or anywhere in between, the NPC will take the appropriate amount of time to move from point A to point B -- but the NPC's position will only be updated every so often.

Of course, it's a lot more complicated than just that, but for sake of this discussion it hopefully gets the point across :)
 

Claw

Erudite
Patron
Joined
Aug 7, 2004
Messages
3,777
Location
The center of my world.
Project: Eternity Divinity: Original Sin 2
All the NPC's are always being updated
Wow. I had assumed NPCs might have a "task list" where the game looks up what they are supposed to be doing at the time the player enters their vicinity.

Are all NPCs threated the same, or do they have priorities, i.e. a special NPC could have a higher processing level than others in the same area?
 

MrSmileyFaceDude

Bethesda Game Studios
Developer
Joined
Sep 24, 2004
Messages
716
Claw said:
All the NPC's are always being updated
Wow. I had assumed NPCs might have a "task list" where the game looks up what they are supposed to be doing at the time the player enters their vicinity.

Are all NPCs threated the same, or do they have priorities, i.e. a special NPC could have a higher processing level than others in the same area?

Different AI packages might have higher priority than others. For example, if a package doesn't require the NPC to move, the only thing that's checked for that NPC at the lowest processing levels is when/if their next package, if any, needs to start. It all depends on what they're supposed to be doing.
 

DarkUnderlord

Professional Throne Sitter
Staff Member
Joined
Jun 18, 2002
Messages
28,553
I can remember a trailer / video from Half-Life (the original) where it talked about their fantastic scripting and how dynamic it was. The claim made was that (paraphrasing)) "If you play the game twice, you'll come across areas where the AI will behave so differently that's it like playing a new game".

Funny thing is I played the game at least three times. Every time, the same monsters appeared in the same place and attacked with the same strategy - OR - in the event the strategy was different, all I was doing was "running and shooting" so it didn't make a marked difference.

Anyway, I've since learnt to ignore hype. Having NPC's pop-up in different locations in and of itself isn't going to be anything particularly revolutionary or mind-boggling. I honestly can't imagine myself playing it again and going "OMG d00d! This guy who was over there in my last game and he's now over here wowzah!! OMFG!!! ".

Whether I end up being impressed by this technology depends entirely on how "dynamic" or "real" it helps to create the game world. Having people wandering about town doing their shopping or other daily tasks would help with immersion. On the flip side of that, I can't see the developers spending all that time building massive lists of tasks for generic NPCs just to make it all seem interesting. I'd say they have other priorities.

The technology existed years ago for someone to make the greatest game evar (in my opinion). The only reason it hasn't been done yet is because no-one's had the time to. It's like Bloodlines. Great game, pity they ran out of time to finish it off. Even if they had, another 5 years spent on it and it'd be even better with loads of interesting quests and multiple paths. I don't see that happening though.
 

DarkSign

Erudite
Joined
Jul 24, 2004
Messages
3,910
Location
Shepardizing caselaw with the F5 button.
The PA game The Fall actually ran a contest where you could set the schedule for an NPC that you designed. They gave an extensive list of actions, animations, etc, and then let people create NPCs with their own schedules.
 

NeutralMilkHotel

Liturgist
Joined
Dec 14, 2004
Messages
389
Ah, but valve are flat out bullshiters (you can read a first hand account of alot of Newell's lies from himself in Gamespot's article). For instance, the 2003 E3 movies for HL2. Actually, everything around that period surrounding the game, from the release date, the condition the game was in, to the scripted (aka unscripted) gameplay in the movies was a lie.

fuck valve.

Anyways. On this AI in Oblivion. From what I've read about it, if they actually impliment it the way they're talking about it, I think it could add a hell of a lot for me. Emphesize 'me'. Sure, gothic had NPCs walk to certain spots and mumble things, or trigger an animation here or there, but it was all just superficial. Where as this, it sounds much more conditional (actually using AI). A thief is hungry, so the AI looks for a place to steal food. A drunk guy is pissed off, doesn't like your face or an NPC and starts swinging. To me atleast, that seems much more advanced than just a go here, play animation, go here, play animation, go here, trigger sound etc.

Where it actually looks at the world, thinks, and then does something, and where it has some actual effect on the game world rather than being just show. That's what seems interesting to me.
 

Stark

Liturgist
Joined
Mar 31, 2004
Messages
770
triCritical said:
I am a little bit skeptical out random adventurer NPC's will work without scripting.

well, adventuring NPC parties can be handled differently from the civilian schedules. it can be a location triggger: once the protagonist enters into a spot at a dungeon, a probability distribution is sampled and if it falls within a certain range, a batch of premade adventuring parties (chosen from a pool of premade adventuring parties) would be found at that dungeon too, right ahead of the protagonist. I'm not sure if you want to call that scripting though.

so, there is a likelihood you meet the same adventuring parties twice at 2 different locations.
 

crpgnut

Augur
Joined
Dec 11, 2002
Messages
337
Location
St. Louis,MO,USA
Very deep discussion you guys. Thanks for the great questions and comments TriCritical, Claw, etc. and thanks MSFD for the detailed answers. It's very entertaining to read about the nuts and bolts of a game engine. I don't program but reading about the coding behind the game is very interesting.

MSFD, I can't wait until they allow you to start talking magic. Are you involved with alchemy this time around, by any chance?
 

Stark

Liturgist
Joined
Mar 31, 2004
Messages
770
However, how can a truly ~random~ adventuring party go from dungeon to dungeon, if their schedules are not being propagated all the time? You know what I mean?

just offering some ideas, not that I'm a game programmer and i do not work in BethSoft. I believe what MSFD said coincide with the things i typed below too, though implementation wise it may be very different.

you start with a pool of NPC adventuring parties, and set a timer on updating their status from time to time.

when the time comes to update a particular NPC adventuring party, you do a random check with their previous location to nearest dungeon, and, if the location is offscene (nowhere near the PC) then you just update the dungeoun condition ( bodies lying around, dead, treasure looted and gone) and update the properties held by the adventuring party (wealthier now). You might even want to update their stats (more powerful/experienced, having looted this dungeoun). You may then proceed to update their next location to be found (an inn somewhere, drinking away) and another timer/event to trigger their next update (off to loot another place). Should PC chance upon the inn before the next timer occurs, PC would find this band of adventuring party merrymaking away in the inn, boasting of their exploits/adventure.

If PC chanced upon the dungeoun during the time when the NPC adventuring party is also there, the PC will see the adventuring party ahead of him/her looting merrily away.

It is not exactly scripting since you can put in alot of randomness to these events. The choice of dungeoun to loot, the outcome of the battle, the survival of remaining adventuring party members, can all be following some random distribution. even the duration to next update, can be a random number.

damn, I think i just described a discrete event simulation.
 

triCritical

Erudite
Joined
Jan 8, 2003
Messages
1,329
Location
Colorado Springs
Stark said:
However, how can a truly ~random~ adventuring party go from dungeon to dungeon, if their schedules are not being propagated all the time? You know what I mean?

just offering some ideas, not that I'm a game programmer and i do not work in BethSoft. I believe what MSFD said coincide with the things i typed below too, though implementation wise it may be very different.

you start with a pool of NPC adventuring parties, and set a timer on updating their status from time to time.

when the time comes to update a particular NPC adventuring party, you do a random check with their previous location to nearest dungeon, and, if the location is offscene (nowhere near the PC) then you just update the dungeoun condition ( bodies lying around, dead, treasure looted and gone) and update the properties held by the adventuring party (wealthier now). You might even want to update their stats (more powerful/experienced, having looted this dungeoun). You may then proceed to update their next location to be found (an inn somewhere, drinking away) and another timer/event to trigger their next update (off to loot another place). Should PC chance upon the inn before the next timer occurs, PC would find this band of adventuring party merrymaking away in the inn, boasting of their exploits/adventure.

If PC chanced upon the dungeoun during the time when the NPC adventuring party is also there, the PC will see the adventuring party ahead of him/her looting merrily away.

It is not exactly scripting since you can put in alot of randomness to these events. The choice of dungeoun to loot, the outcome of the battle, the survival of remaining adventuring party members, can all be following some random distribution. even the duration to next update, can be a random number.

damn, I think i just described a discrete event simulation.

That sounds good if you are going to do Monte Carlo's on many games, but it actually sounds a lot more expensive then what Mr. Smiley said. However, I do think it would be interesting to used uniform deviates for the more mundane quest selection and the shedules for NPC's from game to game. In other words, since Elder Scroll games should be very replayably it would be nice if uniform deviates were used to make each playing experience fairly different from the other.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom