Official Codex Discord Server

  1. 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.
    Dismiss Notice

Swineherd to king and back, plus modular content...

Discussion in 'General RPG Discussion' started by Prime Junta, May 17, 2006.

  1. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    However, the "attack what he/she sees" is reactive. The difference between a Radiant scheduled script and almost any other CRPG scheduled script is something like this:

    Radiant:
    0700: Wake up.
    0701: Eat.
    0800: Go to store and do shopkeeper duties.
    1200: Eat.
    1230: Return to store.
    1800: Go to market.
    1900: Go home.
    2100: Sleep.

    Traditional:
    0700: Set animation from "sleep" to "standing up."
    0701: Walk to coordinates (X,Y). /* dining room by table */
    0710: Sit on chair ID77301
    0710: Set animation to "eat".
    0800: Walk to coordinates (X1,Y1) /* store */
    ... and so on.

    It is qualitatively different: the character autonomously chooses what's available so it can do what the script tells it to do (eat -> find food, sleep -> find bed, hunt -> find game).

    (snip rest)

    (And yes, of course there's traditional scripting there too; the trouble is that it's so sloppily done that it meshes very poorly with the Radiant scripting in many places -- e.g. you get situations like you've just saved somebody's ass but you're in their house at night, so they call for the guard. You've got two conflicting scripts -- one triggering the "gee thanks, we're so grateful" response, and the other triggering the "eject trespasser" response. Sloppy scripting.)

    That would have to depend on the game, methinks. I know I'd generally prefer to play a game where I'm Conan the Barbarian rather than Hercules the Demigod. But I wouldn't dismiss a Hercules game out of hand either -- done right, it could be quite interesting.
     
    ^ Top  
  2. Zomg Arbiter

    Zomg
    Joined:
    Oct 21, 2005
    Messages:
    6,983
    Yeah, I was thinking of an Edda game, for some reason. In a game with realistic pretensions the zero-to-God thing, even if the PC is acknowledged as special somehow, is weak for various obvious reasons. But, if you were playing a Beowulf RPG, something completely mythic, it might be neat.
     
    ^ Top  
  3. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    The main difference is the "traditional RPGs" feature less pointless activities. Besides, it's not like an NPC is actually sleeping and resting, so it's "set animation" in both cases. The only difference is walk to coordinate X,Y and play the animation there. If X, Y is taken, try the next available object marked as "bed".
     
    ^ Top  
  4. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    Heh, you really do hate it, don't you?

    From my perspective, the main difference is that it's easier to script background activity with the higher level of abstraction of Radiant than traditional systems where you have to micromanage resources. You can do more with fewer lines of code. I haven't done much with it, though, so I can't really say how well it works as a design tool -- could very well be that the amount of work saved by the higher level of abstraction has to be put right back in to catch situations where dynamic AI and static events would conflict (like the example I mentioned).

    In any case, it really isn't that important.

    Oh, about "pointless activity?" IMO if well done, "pointless (background) activity" does add a great deal to the "believability" of a game world. Arx Fatalis pulled this off pretty well, with a very simple AI system combined with regular scripting. Of course, it's not done well at all in Oblivion, but as I've said elsewhere that's due to crappy writing and sloppy scripting rather than anything inherently flawed in the concept. The Elder Scrolls engine is pretty good as engines go; it's the content that sucks ass.
     
    ^ Top  
  5. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    I don't hate it. I'm merely disappointed with it, and I couldn't help but notice double standards on your list, like going to sleep vs sleep animation, going to a store vs going to X, Y. You tried to make it sound more intelligent than it really was.

    I do agree that using that schedule system called RAI was more convinient for the developers than scripting each individual activity.

    Agree.

    Very likely.

    If well done, an activity is no longer pointless, is it not?
     
    ^ Top  
  6. Zomg Arbiter

    Zomg
    Joined:
    Oct 21, 2005
    Messages:
    6,983
    Does Oblivion crib any of those one-off animations that the Gothics used? Like a blacksmith blacksmithing, laborers sawing wood, people having a smoke, swordsmen practicing, etc? I thought that stuff really helped create a sense of activity. How much does animation cost compared to mesh and texture work?
     
    ^ Top  
  7. Saint_Proverbius Arcane Patron

    Saint_Proverbius
    Joined:
    Jun 16, 2002
    Messages:
    11,190
    Location:
    Behind you.
    Well, that was just my way of explaining it as clear as I possibly could with the most simple data. Of course you could make everything a lot more complex than that by having a variable for action, a modifier for whom was affected, a modifier for what non-living thing was affected, and so on. But hey, having 255 types of memory situations is probably enough for any game.

    That's an interesting thought. Of course, the limitation of my crude data structure is that it's only from the player point of view. You could have dialogue stringing from that where an NPC, in this case Sam, might ask the player to return the horse he stole from Bob because Sam saw the player steal Bob's horse.

    Also, one other reason why I just went with the CHAR+INT thing is because the longer the game goes on, the more and more memories all the NPCs are going to get from being around the player. For betatesting, that 300ms seek and process time won't be much because betatesters rarely take much time testing segments of games. But hey, players can play CRPGs for days and weeks on the same game if you give them enough to do. That 300ms dialogue pause could turn in to a few seconds if all the NPCs have hundred and hundreds of memories.

    Anyway, I just think the idea of having NPCs with memories is a keen idea. Most memories in CRPGs are just toggled quest flags, if the NPCs have memory at all. They might be pissed off at the player, but they don't really have any "idea" why because there's nothing further keeping track of reactions other than a number score.

    The Sims has a LOT of brilliant ideas that would go great in CRPGs. I'm kind of amazed more CRPG developers having ripped design points from it.
     
    ^ Top  
  8. DarkSign Erudite

    DarkSign
    Joined:
    Jul 24, 2004
    Messages:
    3,910
    Location:
    Shepardizing caselaw with the F5 button.
    Been saying that for years.
     
    ^ Top  
  9. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    In that case, it appears we've been arguing over semantics. I assure you I didn't "try" to make it sound like anything other than what it is: it appears you may have read too much into my comment.

    If well done, an activity is no longer pointless, is it not?[/quote]

    That's getting a bit philosophical for me. By "pointless activity" I meant background bustle; the kind of thing that serves no other purpose than enhancing the atmosphere.
     
    ^ Top  
  10. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    You do see my point though? Both lists are practically the same, yet your choice of words for the Oblivion list implies intelligence that isn't there.

    I know. What I meant that once an activity actually does something, adds something, etc, it has a purpose. Since those Oblivion's NPCs marching all over towns have failed to enhance the atmosphere, in my opinion, of course, such activities are pointless.
     
    ^ Top  
  11. Imbecile Arbiter

    Imbecile
    Joined:
    Oct 15, 2005
    Messages:
    1,267
    Location:
    Bristol, England
    Not sure I quite agree with you there. To take a football analogy. If someone shoots towards the goal, and the keeper dives and misses, is his diving pointless?

    The activity itself isnt pointless, its just been let down by the execution. Even if there is no concievable chance of the keeper reaching the shot, if he keeps diving, maybe eventually he'll become good enough to make the save - because diiving is the right thing to do.

    Daggerfall frequently gets kudos for trying things that werent quite pulled off - and this seems to me somewhat similar. Its the difference between doing the right things, and doing things right.
     
    ^ Top  
  12. Norfleet Moderator

    Norfleet
    Joined:
    Jun 3, 2005
    Messages:
    8,943
    Sometimes activities may seem "right", but may be equally pointless. If the keeper dives at a ball which is simply physically impossible within the constraints of human capability to actually intercept, he has essentially wasted his energy on a futile effort. If it's not actually physically possible to do it, it's simply a waste of effort to try. And remember, the harder you try, the dumber you look.
     
    ^ Top  
  13. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    The analogy doesn't really fit, because the keeper must dive in order to get the ball, that's basically his job description, and the concept of the game assumes that there would be misses. A better analogy is dancing. If a dancer is making all kinda moves to impress the audience, but looks retarded while doing them, the moves are pointless and the energy should be spent elsewhere.

    True, yet those "not quite pulled off" things contributed a lot and offered a lot to the player. The dungeons were flawed, yet they were huge and scary, and actually looked like dungeons vs rooms with monsters. The languages skills were flawed, yet they supported explorer builds and let you avoid fighting, etc.
     
    ^ Top  
  14. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    I do see your point. However, it's based on a complete lack of understanding about how games actually work under the hood, so it's not a very *valuable* point.
     
    ^ Top  
  15. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    In my experience, data structures like this scale extremely well; I'm pretty sure you could shuffle around tens of thousands of memories before access time started to be a problem.

    Indeed.
     
    ^ Top  
  16. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    http://www.rpgcodex.com/phpBB/viewforum.php?f=18
     
    ^ Top  
  17. Hazelnut Erudite

    Hazelnut
    Joined:
    Dec 17, 2002
    Messages:
    1,490
    Location:
    UK
    Care to explain PJ, because you've lost me. How is VD's misunderstanding of your point "based on a complete lack of understanding about how games actually work under the hood"?

    I got what you meant, assuming it's simply the abstraction thing, and I have no clue how games work under the hood. (other than being a software dev for my job) He's just read too much into the language you used that's all. Crikey, you're worse than he is at jumping to conclusions and hastily pressing the big red launch button... ;)

    Maybe the example would have been better with sub-routine'y like entries for the RAI examples since all you were tring to demonstrate was the higher level of abstraction - I see it as kind of similar concept to doing something in C as opposed to Assembly or Java as opposed to C.
     
    ^ Top  
  18. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    If he believes that 10,000 lines of assembly code is "essentially the same thing" as 10 lines of Perl if the code does more or less the same thing, he does have a complete lack of understanding of how these things work. Because that's essentially what he's claiming -- Radiant models NPC behaviour on the level of actions and implements AI for the characters to be able to do those actions, while traditional CRPG's don't.

    Go into a house in Oblivion and steal all the food, and you'll see the occupants adjust their behaviour to the changed circumstances. Do the same in jus' 'bout any other CRPG, and you'll see the character go through the exact same motions of getting out of bed, sitting down, and eating. That is a qualitative difference, and anyone who claims it isn't really can't claim to having a clue about how stuff like this works.

    Yep, it is simply the abstraction thing.

    Precisely.

    In any case, it beats me how I got into this argument in the first place, because it really isn't important, except apparently for VD.
     
    ^ Top  
  19. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    I see. So you were being intentionally obtuse. Is that supposed to be better?
     
    ^ Top  
  20. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    Were we taking about the code or the final in-game results?

    Reread our discussion. I said that Oblivion featured more pointless activities, and NPCs reacting to the food or lack thereof is a fine example of that.

    Beats you how you got into that argument? By starting talking about it when nobody did, and then arguing about it with a few posters. When you couldn't win the argument, you claimed that the discussion was about something else, that people lack the fine understanding of things, and finally, that it's not really important.

    So, everyone who disagrees with you is obtuse?
     
    ^ Top  
  21. galsiah Erudite

    galsiah
    Joined:
    Dec 12, 2005
    Messages:
    1,598
    Location:
    UK
    [disclaimer: haven't played Oblivion, but I think the following is reasonable]
    Just to go back a little:
    Sure, I agree. However, the extra abstraction is totally pointless (other than for possible development time saving), unless the individual "abstract" commands are in depth enough.

    For instance, what does the "EAT" action signify in radiant AI?
    Probably something like:
    (1) Find closest available food source.
    (2) Go to food source.
    (3) Eat food.

    The only thing that makes this any different from straight scheduling is the dynamic nature of (some) food sources - i.e. has all the food gone from his house? If it has, he'll probably go to a shop instead. Given that food is always available in taverns / shops... (right??), and NPCs don't actually need money to buy it (right??), the EAT command is never going to give more interesting results than either: Find food in house, or find food in tavern.

    For such a system to be worth anything as more than a development timesaver (and therefore possibly something woth hyping), the EAT command would have to be a lot more versatile than this. It would need to cope well with a variety of situations where there was no food source, and trigger the AI to take steps to find food. This could lead to interesting emergent behaviour, but would be much harder to get right.

    As it is, the EAT command (or similar) almost certainly doesn't cope well when food is totally unavailable, so the "solution" is to make sure it is always available. In which case radiant AI really isn't doing much that scripting wouldn't.

    Radiant AI (or rather a more in depth version of it) has a lot of potential, but it'd have to be very carefully designed and tested to realize this potential. As it is there is a system which allows everything to be handled dynamically, but which usually leads to horrible results when the situation changes significantly. The "solution" is to make sure that the situation doesn't change significantly - in which case you just created a dynamic system for pretty much no reason at all.

    I don't think it's likely that a more versatile RAI would work in a game like Oblivion in any case, since there's such an emphasis on making sure absolutely nothing goes wrong for the player. If you're using a versatile, dynamic system, things are bound to go wrong, possibly in the worst case leading to quests being failed / NPC death / towns being deserted... There's really no point in using a dynamic system unless you're willing to allow for the possibility for things like this to happen (though of course in general stability should be aimed for).

    In Oblivion there will never be a wide-spread food shortage, so why bother hyping the fact that the NPC decides to go to the local store (infinite food supply), rather than being scripted to do it? It's pretty much like hyping Object Oriented Programming as a game feature.
    Sure RAI does allow the NPC to check if there is food in the house before going to a store, but is that really worth all the hype?

    I can't agree with this.
    The problem is not the integration of scripts with the RAI. The problem is the fundamental lack of depth to the RAI. If you need to hack around every exceptional RAI case with a manual script, then the RAI is more trouble than it's worth.

    It's not that the hacking is badly done (though perhaps it is), but rather that it shouldn't be necessary in the first place. Getting a RAI system to work well would be extremely difficult. However, doing it properly would not involve manual scripting hacks, but rather a RAI system versatile enough to handle the exceptional cases. All the manual scripting should be done on a higher level than the RAI. Once manual scripting is being used for workarounds on the same level as RAI, things have already gone wrong. It makes more sense to blame the designer for making hacks necessary than to blame the hackers for not hacking well enough.

    EDIT: clearly the quest scripts are not going to be part of RAI, but RAI should provide enough hooks so that quest scripts can integrate cleanly with it. If there is no simple way for a quest script to enable/disable RAI features (such as trespass response), then I see that as RAI's problem, not the script's problem. This sort of situation is entirely predictable, so should be catered for by RAI.
    Hopefully the original idea was to produce a more versatile and robust system, but time and money troubles got in the way. Perhaps it's not fair to be too harsh on the RAI situation as a whole (at least they tried etc. etc.). It's still fair to be harsh on the hype though, since the limitations would have been clear before all the hype.
     
    ^ Top  
  22. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    I'll give this just one more try.

    Are you, or are you not, claiming that Radiant AI:

    (1) Is nothing but a scheduler,
    (2) Is qualitatively no different from the AI in, say, Baldur's Gate,
    (3) Implements no routines modeling autonomous behaviour?

    'Cuz if you are, you're wrong, and if you're not, we're not disagreeing -- and I must be the obtuse one for not understanding what the fuck this argument is about.
     
    ^ Top  
  23. Vault Dweller Commissar, Red Star Studio Developer

    Vault Dweller
    Joined:
    Jan 7, 2003
    Messages:
    27,522
    For all intents and purposes, yes. It's possible that it could be something more in the right hands, but in the current state it isn't.

    BG is a very different games, where NPCs mostly stand in one spot all day, so it's hard to say what could have been if Bio put more efforts into that area. Instead, let's compare Oblivion to Gothic. The answer is No though. "Qualitatively" RAI is much worse than Gothic's AI. Disclaimer: I'm not talking about the quality of code or potential or anything like that. I'm talking about the end fucking result.

    No arguing here, although I would have phrased it as "creating an illusion of..."
     
    ^ Top  
  24. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    But if you agree that it *does* implement routines to create an illusion of autonomous behaviour, it's by definition *not* "nothing but a scheduler." Namely, it's a scheduler with routines intended to create an illusion of autonomous behaviour.

    Or am I missing something here?

    I can't comment on Gothic's AI, but I did get the impression that it is pure scripting with some triggers added to initiate combat AI if a hostile comes within range. This is a qualitatively simpler system than RAI's. Of course there's no arguing that the end result is much better in Gothic -- but I believe that's due to the fact that the folks at Piranha Bytes put enormously more work into making the scripts work than the folks at Bethsoft. In that sense it's obvious that RAI was a waste of effort: it adds virtually zero value to Oblivion, and if the resources used to develop it held up writing good scripts, it actually damaged the project.

    Perhaps a part of our misunderstanding is due to crossed concepts -- where I'm talking about the ES engine and the potential it has to be used to create good games, you're talking about the way it's used in one individual bad game. Oblivion doesn't suck because of the engine or RAI, it sucks because it's unoriginal, uninspired, unchallenging, linear, and boring.
     
    ^ Top  
  25. Prime Junta Arcane Patron

    Prime Junta
    Joined:
    Apr 8, 2006
    Messages:
    11,475
    Totally. However, this clearly isn't the case, since in many places the integration between dynamic and static scripting works quite smoothly. The places where it doesn't work is indicative of sloppy scripting -- whoever wrote the quest script forgot to switch off the response. Similarly, I can't believe that the quests are so linear because the script engine can't handle forking or different outcomes (and anyway they do exist, in a trivial way, here and there) -- it's just that forking quests are way more work to script than linear ones.

    Ain't that the truth. I think Bethsoft shot themselves in the foot big-time with the target-practice burning-dog demo. I got the impression that they had to drastically curtail the autonomous part of RAI smiply to avoid unwelcome emergent behaviours. If the two rangers shooting at each other near Bravil isn't an easter egg, it's pretty indicative of what could go wrong.
     
    ^ Top  

(buying stuff via the above buttons helps us pay the hosting bills, thanks!)