by date
And the NPC lived happily ever after...
And the NPC lived happily ever after...
| Name: | Ted Southard | ![]() |
|---|---|---|
| Date Posted: | Apr 10, 2008 | |
| Rating: | 3.5 out of 5 | |
| Public: | YES | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Ted Southard |
Blog post
Or not, if you plunged your +2743409 Sword of Everlasting Beatdown into his chest. But that wasn't even the point of your adventure. It was the journey to get to that moment of defeating the big bad NPC... At least, it would be if you weren't playing that story out in an MMO, where 50,000 people had played it out before you...
My latest blog is straddling the fence between a dev blog and a rant. I had the very cool opportunity to get to sponsor this years IMGDC in Minneapolis, Minnesota (kudos to Jonathan Stevens and Last Straw Productions for pulling it off again), and while I was out there, sort of do some shameless promotion (and for those of you who went, you'll probably agree that I was shameless about it, haha). Also, I got to sit in on a number of really informative sessions, panels and roundtables pertaining to various issues surrounding persistent worlds and MMO's.
One of the roundtables proved to be more of a hoot than others, and that was the "RP vs XP" roundtable, which seemed to have a few AAA MMO developers in attendance. Without going into a huge amount of details, I think it's needless to point out that just by the name of the roundtable, feathers on both sides of the issue can get ruffled- and in a very professional way, that's what happened (after all, it's not exactly the forums). In any event, one thing that I took away from the roundtable was something a particular developer stated. Even though it ruffled my own feathers, he was very correct. It pertained to the opening up of persistent worlds to more dynamic use (and abuse) by users, with features such as dynamic content, quests that allow for failure, striving for more "unique" content, and designing features that naturally allow roleplaying to affect a game in ways that did not involve Old English. His response, in so many words:
It's too hard.
Now, that's what ruffled my feathers, even though I understood what he meant. And not even those words themselves, but just the one in the middle: too. That word denotes that the amount of effort required is prohibitive. It amounts to giving up. Someone else pointed out that what I wanted with all those features was not an MMO, but a virtual world...
But... Isn't that exactly what an MMO is supposed to be? Especially the ones with "RPG" tacked on the end of them? Like I said, it was an interesting roundtable, and good points were brought up about many issues, and I think at the end there was some level of agreeing to disagree at the table, but that line was mostly drawn by the amount of work involved, as well as the amount of risk- a very big deal for the larger companies, the developers readily (and rightly) admit.
However, I'm not one to mince words, so I'll just state my position on the matter: It is entirely possible, and should have been done already.
Throughout the conference, I took every opportunity I could to molest the gaming press into checking out my PC-NPC chat demo, including firing up the laptop at the after-party (I'm a whore for self-promotion... it's all good). That Sunday, I added another feature to the conversation system called "familiarity"- better known as "short-term memory". It's something of a buffer between the PC and the NPC where the PC has to work a bit harder to get acquainted to an NPC before they can have "deeper" conversations (or before the NPC decides to offer a quest to the PC).
And speaking of NPC's giving quests to PC's... How would you go about generating quests? It's a rhetorical question...
1) Old School: Hire writers. Give them lore book covering the world they're working on. Make them write out quests for PC's to follow. Insert into game.
2) School So New That It's Not Even Open Yet: Hire Writers. Give them lore book covering world they're working on. Take into account the factions/races/classes/professions/locations of NPC's. Make them write out parts of stories that can be reassembled in such a way as to make sense when done by a server. Make functions that will do that without making writers want to chase you down with pitchforks and torches. Insert into game. Succeed. Or Fail. Then whichever happens: Adapt and adjust it.
Okay, so I admit that the school in #2 was actually touched on slightly by Anarchy Online's mission generation system. But the system was about as far as I've seen anyone go. The potential of it, should it be expanded to encompass much more complex plots, is enormous...
<cliffhanger>
My latest blog is straddling the fence between a dev blog and a rant. I had the very cool opportunity to get to sponsor this years IMGDC in Minneapolis, Minnesota (kudos to Jonathan Stevens and Last Straw Productions for pulling it off again), and while I was out there, sort of do some shameless promotion (and for those of you who went, you'll probably agree that I was shameless about it, haha). Also, I got to sit in on a number of really informative sessions, panels and roundtables pertaining to various issues surrounding persistent worlds and MMO's.
One of the roundtables proved to be more of a hoot than others, and that was the "RP vs XP" roundtable, which seemed to have a few AAA MMO developers in attendance. Without going into a huge amount of details, I think it's needless to point out that just by the name of the roundtable, feathers on both sides of the issue can get ruffled- and in a very professional way, that's what happened (after all, it's not exactly the forums). In any event, one thing that I took away from the roundtable was something a particular developer stated. Even though it ruffled my own feathers, he was very correct. It pertained to the opening up of persistent worlds to more dynamic use (and abuse) by users, with features such as dynamic content, quests that allow for failure, striving for more "unique" content, and designing features that naturally allow roleplaying to affect a game in ways that did not involve Old English. His response, in so many words:
It's too hard.
Now, that's what ruffled my feathers, even though I understood what he meant. And not even those words themselves, but just the one in the middle: too. That word denotes that the amount of effort required is prohibitive. It amounts to giving up. Someone else pointed out that what I wanted with all those features was not an MMO, but a virtual world...
But... Isn't that exactly what an MMO is supposed to be? Especially the ones with "RPG" tacked on the end of them? Like I said, it was an interesting roundtable, and good points were brought up about many issues, and I think at the end there was some level of agreeing to disagree at the table, but that line was mostly drawn by the amount of work involved, as well as the amount of risk- a very big deal for the larger companies, the developers readily (and rightly) admit.
However, I'm not one to mince words, so I'll just state my position on the matter: It is entirely possible, and should have been done already.
Throughout the conference, I took every opportunity I could to molest the gaming press into checking out my PC-NPC chat demo, including firing up the laptop at the after-party (I'm a whore for self-promotion... it's all good). That Sunday, I added another feature to the conversation system called "familiarity"- better known as "short-term memory". It's something of a buffer between the PC and the NPC where the PC has to work a bit harder to get acquainted to an NPC before they can have "deeper" conversations (or before the NPC decides to offer a quest to the PC).
And speaking of NPC's giving quests to PC's... How would you go about generating quests? It's a rhetorical question...
1) Old School: Hire writers. Give them lore book covering the world they're working on. Make them write out quests for PC's to follow. Insert into game.
2) School So New That It's Not Even Open Yet: Hire Writers. Give them lore book covering world they're working on. Take into account the factions/races/classes/professions/locations of NPC's. Make them write out parts of stories that can be reassembled in such a way as to make sense when done by a server. Make functions that will do that without making writers want to chase you down with pitchforks and torches. Insert into game. Succeed. Or Fail. Then whichever happens: Adapt and adjust it.
Okay, so I admit that the school in #2 was actually touched on slightly by Anarchy Online's mission generation system. But the system was about as far as I've seen anyone go. The potential of it, should it be expanded to encompass much more complex plots, is enormous...
<cliffhanger>
Recent Blog Posts
| List: | 07/09/08 - Talking to NPC's... Now in 3D!!! (screenshots) 04/10/08 - And the NPC lived happily ever after... 03/04/08 - Chatting with NPC's, and making them violent... 02/22/08 - NPC Chat status (and screenshots!) 01/30/08 - So, exactly what is there to talk about with NPC's anyway? 01/03/08 - Here's a little story that I'd like to tell... 07/10/07 - Oh, textury goodness... 05/20/07 - Back from the dead... |
|---|
Submit your own resources!| Rodney (OldRod) Burns (Apr 10, 2008 at 18:16 GMT) |
The biggest problem is (I think) getting developers to not cow down to the player base. Lets say you put in some unique content, and the first player to get to the content does the quest and then it's no longer available... now the rest of the player base will be up in arms and say "but it's not fair - I was at work when the patch came in, so I had no shot at the quest!", or dozens of variations of that complaint.
How do you get your developers to turn a deaf ear to those complaints and press ahead with a truly dynamic, unique world? I'm sure once players got used to the idea, it would be popular, but it would take a metric ton more content than what we see in current games to pull off effectively.
Probably the most realistic way to do this is to have the standard repeatable content for a lot of things, but have a good share of unique stuff too. That way players who play more get more opportunities to do unique "stuff", but people who are casual players still have plenty of stuff to do as well - it just won't be unique.
It's a tough job... but I hope someone does it :)
| Nicholas Bogart (Apr 10, 2008 at 18:22 GMT) |
Your right... you should be able to walk up to an NPC and have to actually prove yourself by your deeds and not how many quests you ground or mobs you slaughtered to get in his good graces.
Anyways I like what you have written and its a cliffhanger for sure.
| Ted Southard (Apr 10, 2008 at 20:12 GMT) |
Quote:
How do you get your developers to turn a deaf ear to those complaints and press ahead with a truly dynamic, unique world?
Well, that's the beauty of it: The system has to be designed like that from day one, so it is set up to always generate content. The fact is, "patching" a game isn't a viable way to get a dynamic environment. It has to push zone state to the users when they log in, and push state changes to users as well. Of course, this means two things (which are contradictory on their face):
1) You have a lot more data to dish out (and take).
2) The client side application needs to "sip" data.
Now, I'm not going so far in my game that anyone can do anything, or even looking to do something like networked terrain deformation (though it tempts me, but I have no good use for it). But there are certain things that I do want to do that means pushing state changes and data to the user at a higher rate than your average MMO.
One way to get around it is to get these changes across in two phases:
1) When the user logs in, the data and state changes for the zone that their character is in needs to be pushed. Depending on the data load we're talking about, maybe we can do all the adjacent zones as well, just in case the player's character is sitting ten feet from a zone border.
2) Related to the above, you have to have smart-loading of content. State changes can be pushed in mmotime (realtime + db access + lag) to players as long as they have the data to reflect that. The data they need to reflect that should already be on their harddrive from phase 1. Smart-loading of content also means that when players get near an adjacent zone (or maybe continuously- again, depending on how much data is being flung around), they start getting the data changes.
The above sounds pretty severe, but that's only if you make it severe. That is, the house that gets reduced to rubble doesn't necessarily need to be seen crumbling if you cloak the swapping of models with a good particle effect. So you have two models instead of three or more, or a really nice animation of the model falling apart, but that also consumes bandwidth as that gets pushed out to your players. But it needs to be designed in early on.
Something else I didn't touch on but should have is the sense that quests have to be fast-food: Served up and gulped down quick. Honestly, when was the last time a human could slay ten wolves without a .50 machine gun? When was the last time that someone going from Point A to Point B in a jungle was able to just jog the whole way, even if they never encountered anything?
I tried to relate some travel stories to people at the convention, but I don't think I got my point across as much as I would have liked. The point being that travel, in and of itself, is a hard business, and the less travelled that road, the slower going it's going to be.
When was the last time a ship in WoW hit a storm and became disabled, giving those with crafting skills an opportunity to fix it in order to be on their way? When was the last time a player found themselves face to face with a MOB that could kill them easily, but rather than attack, stayed in the cover of jungle and stalked them until it got tired of the game? When was the last time you found your player in an environment without the proper clothes or equipment, and lost hitpoints or endurance as a result?
It doesn't happen- except in real life, and that's what pen and paper RPG's had at first tried to emulate: The rigors of hard travel and high adventure, but in a world different than our own. And this is where MMO's fail spectacularly. You see a Jaguar? Go kill it. If I had followed that rule in Costa Rica last year, I'd have been tender-friggin-vittles. You don't fight a 200-400lb animal. Instead, you walk past it and stay calm (outside at least), and you don't run when it stalks you. I feel silly bringing that story up, it's not bragging because that cat could have killed me (and I was armed- it was the jungle), but the point is the complete disconnect from the kind of adventure that people want, yet don't know it. Indiana Jones, 007, any of those characters have obstacles they run away from, circumvent, or simply fail to overcome either directly or indirectly. If MMO's want to portray adventure correctly, then it needs to present the player with threats that it can get past without fighting, or run from, but in a way that makes travel from Point A to Point B a quest in itself, and the end goal (killing that Ice Wizard) just the icing on a very rich cake.
| Jonathon Stevens (Apr 11, 2008 at 01:24 GMT) |
In reality, the cost to benefit ratio must lie largly on the benefit side for AAA to implement it. The investors gave them money to build a game so they could make money, not so people would enjoy the game. I understand it, and if I had to do it to get my game funded, I'd walk away from the funding (no really.. i'm serious damnit!)
Having said that, if I got the money to build the game the way I DIDN'T want to, but that money led to me being able to build _my_ game, then I'd certainly sell out on the first one. Everyone's a whore for the right amount of money yes?
| Ted Southard (Apr 11, 2008 at 01:40 GMT) |
Like I said, the AAA's have risk to worry about. We, as indies, don't. But one thing that struck me (especially on these forums lately) was that a lot of indies want to make the same kind of MMO as the AAA's do, with one risk -maybe- which is the classic AAA MMO formula. AAA's have to worry because failure can take down a company. Indies don't worry because, well... Let's face it, for most of us there's nothing to take down!
Anyways, I can rant all night about this, but I'm staring at a diagrahm that needs to get converted to TorqueScript for that cliffhanger conclusion in a couple of weeks ;)
| J.C. Smith (Apr 11, 2008 at 06:32 GMT) |
One of the more interesting things you can do with that you give each NPC a personality, which never changes. But you also give them a profession, mood, cause and reason, which can change. In most cases the profession won't but we left the ability to have it change. So let's say you take a quest which asks for npc1 to be a Lonely, Single Male, and npc2 needs to be a Shy, Single, Female. That criteria could fit a large number of NPCs in the game world. If the quest was a matchmaker quest, at the end of that quest the relationships of those two NPCs could be changed, as could their mood, cause and effect. That would then open those NPCs up for different quest opportunities and the cause and effect fields would allow NPCs to speak about things that have happened to them in the past. It gives the players an opportunity to affect the game world. Using another example, if you have a quest to kill an NPC, and that NPC has any relationships, their relations could have their mood, cause and effect changed. Later another player could receive a quest to kill you, by his Mother whose mood is Vindictive, the reason because her Son Died and the cause is the player name. We've had this type of system running on our Alpha Server for The Repopulation for about five months now. Our quests are generated using these templates, and it makes the world feel a bit more dynamic. Since the quests are using templates with limited criteria the performance hit isn't that bad so long as you limit the total number of dynamic quests at a time (we allow 5) and you limit the check frequencies.
We employed similar systems to dungeons, using prebuilt layouts, but different texture sets and using DIF objects to block certain hallways randomly to change the overall layouts. There are spawn points throughout a dungeon instance. You can only enter if you have a quest for that instance and it uses the quest criteria to help determine how to populate it. Bosses, normal npcs, traps are all calculated with a random element. So when you enter into an instance you never really know what to expect. The dungeon layout, trap positions, NPC spawn locations, boss locations, object locations change every time. Same goes for boss special abilities. Their special abilities are determined by race and tier, and generated randomly when an instance is entered, which we hope will make guilds adjust to tactics on the fly during raids rather than just executing ready built templates.
The overall gain is that we can ship a game with 15 dungeon layouts, and about 100 quest templates, and have enough content to keep players busy for a long time. By contrast a big studio created MMOG might ship with 10,000 unique quests (though 99% of them are simple one step kill, or delivery quests) and 25 dungeons, with maybe 50 unique bosses. Once that content has been gone through though, users are just using spoiler sites for everything because it never changes and they become bored. Using a generated system you could focus instead of generating 100 solid quest templates (we currently have 34 in the alpha) and letting the generation system mix them up enough to keep the quests interesting. The big taboo with generated content has been that it is too simplistic, but it doesn't have to be. We have templates in alpha currently that are 10 step quests, and the ability to chain quests together to make them even more complex. Using a system such as this you can limit the overall manpower required to create a game while increasing the replayability.
In the end though I do believe that even large houses who are funded are trying to make good games. The employees aren't all just whoring themselves for money, a lot of them are in it because they want a chance to help shape and form a genre that they enjoy. Unfortunately for those studios its a lot easier to just copy what the last guy did rather than trying to be innovative. For the publisher they are doing what they think will be a safe bet. For the employees they are stuck integrating their employers vision of a money making scheme.
Edited on Apr 11, 2008 07:17 GMT
| Ted Southard (Apr 11, 2008 at 14:19 GMT) |
The NPC's in my game also have personality-style AI, though it's somewhat different than yours due to the conversation component that we're using, as well as some of the other system differences. Awesome to hear that I'm not the only one doing this!
| Rodney (OldRod) Burns (Apr 11, 2008 at 16:50 GMT) |
Or conversely would each NPC have to keep track of all players? Mood could fluctuate by player after all. Curious as to the "nuts and bolts" of this system. It sounds fascinating, and it's something I've tinkered with, but never come up with a good solution.
| Ted Southard (Apr 11, 2008 at 16:57 GMT) |
| Don Hogan (Apr 11, 2008 at 18:39 GMT) |
It's especially intriguing to think about what JC is saying regarding the mixing of fixed and dynamic attributes for a given scenario / NPC. One example that came to my mind straight away was the idea that that technique could be applied to vendors as well. I.e. the vendor always buys reagents to make a product when its inventory is below max; but depending on what kind of supplier / customer you've been he might react in a myriad of ways - freebies, discounts, special (re)quests for unique products.
Fascinating stuff, I look forward to the next blog!
| J.C. Smith (Apr 12, 2008 at 03:04 GMT) |
#Diamonds and Girls Dialog
# Main dialog
dialog = DBDialog()
dialog.name = "Diamonds and Girls"
dialog.mailtext = "playername,\\n\\n\I trust that you will keep this in confidence, as it could cause some headaches. I've tried to get randomnpc2 out of my mind, but I just can't. Still, I seem to be fighting an uphill battle for her affection, and that must change.\\n\\nI'd like to reveal my feelings for her with a splash though, and for this I am going to need your help. I need you to find me a Calibrium Diamond. These are very rarely found near supplies of Calibrium. You will be well paid for this.\\n\\nMy love life is in your hands,\\n\\nrandomnpc1"
dialog.mailsubject = "Article of the Heart"
dialog.mailfrom = "randomnpc1"
dialog.numnpcs = 3
dialog.randomnpc3profession = "Metallurgist"
dialog.randomquest = True
dialog.randomnpc1sex = "Male"
dialog.randomnpc2sex = "Female"
dialog.dialog1="Diamonds and Girls I"
dialog.dialog2="Diamonds and Girls II"
dialog.dialog3="Diamonds and Girls III"
dialog.journaltext="Mine a Calibrium Diamond for randomnpc1 at rnpc1location. These can be found rarely in Calibrium."
dialog.shortjournaltext="Find a Calibrium Diamond for randomnpc1."
dialog.journalname="Diamonds and Girls"
dialog.missiontype="Rare Low Level"
dialog.quickitemlist="Calibrium Diamond"
dialog.quickcheckdialog="Diamonds and Girls Check"
dialog.track="Calibrite Ore"
action = DBDialogAction()
action.endInteraction = True
action2 = DBDialogAction()
action2.addTakeItem("Calibrium Diamond",1)
action2.addGiveItem("Fine Quality Calibrium Diamond",1)
action2.successjournaltext = "Take the diamond to randomnpc3 at rnpc3location and ask them to fashion a necklace for randomnpc1."
action2.successshortjournaltext = "Bring the Diamond to randomnpc3."
action2.giveCredits = 300
action2.endInteraction = True
action2.successtrack="randomnpc3"
action3 = DBDialogAction()
action3.addTakeItem("Custom Crafted Calibrium Diamond Ring",1)
action3.addGiveItem("Elegantly Crafted Calibrium Diamond Ring",1)
action3.successjournaltext = "Take the diamond ring to randomnpc2 in rnpc2location and let her know of randomnpc1's feelings for her."
action3.successshortjournaltext = "Bring the Diamond Ring to randomnpc2."
action3.endInteraction = True
action3.successtrack="randomnpc2"
req1 = DBDialogRequirement()
req1.addItemRequirement(True,"Custom Crafted Calibrium Diamond Ring")
req2 = DBDialogRequirement()
req2.addItemRequirement(True,"Calibrium Diamond")
req2.addItemRequirement(False,"Custom Crafted Calibrium Diamond Ring")
req2.addItemRequirement(False,"Elegantly Crafted Calibrium Diamond Ring")
req2.addItemRequirement(False,"Fine Quality Calibrium Diamond")
choice2 = DBDialogChoice(text = "I found a nice diamond for your lady friend.")
choice2.successLine = DBDialogLine(text = "Hmm, yes this is very nice indeed! \\n\\nI'd like to get this fit onto a ring. Could you run this over to randomnpc3 at rnpc3location and get that taken care of for me? Then bring it back here. Here's some money to pay them.\\n")
choice2.successLine.addAction(action2)
choice2.failLine = DBDialogLine(text = "It's good to see you, I'm looking forward to having this situation taken care of.\\n")
choice2.failLine.addAction(action)
choice2.addRequirement(req2)
choice = DBDialogChoice(text = "Will this ring suffice?.")
choice.successLine = DBDialogLine(text = "This is perfect... Man, but this means I'm going to have to actually go through with this.\\n\\nI have one last favor to ask of you, playername. Could you deliver this to randomnpc2 for me, she is in rnpc2location. I just can't stand the thought of being turned down. Let her know it's from me and then I'll ask no more of you.\\n")
choice.successLine.addAction(action3)
choice.failLine = DBDialogLine(text = "Just any old ring won't do. It needs to knock her off of her feet. I need a Calibrium Diamond Ring and it must be hand-crafted by randomnpc3. Nothing else will do.\\n")
choice.failLine.addAction(action)
choice.addRequirement(req1)
choice3 = DBDialogChoice(text = "Just passing through.")
choice3.successLine = DBDialogLine(text = "Don't forget that thing we spoke about.\\n")
choice3.successLine.addAction(action)
#random npc 1's dialog
dialog = DBDialog()
dialog.name = "Diamonds and Girls I"
dialog.greeting = DBDialogLine()
dialog.greeting.text = "How is it going, playername?\\n"
dialog.greeting.addChoice(choice3)
dialog.greeting.addChoice(choice2)
dialog.greeting.addChoice(choice)
#randomnpc 3's dialog (The Jeweler)
action = DBDialogAction()
action.endInteraction = True
action2 = DBDialogAction()
action2.addTakeItem("Fine Quality Calibrium Diamond",1)
action2.addGiveItem("Custom Crafted Calibrium Diamond Ring",1)
action2.takeCredits = 300
action2.successjournaltext = "Take the ring to randomnpc1 at rnpc1location. I hope he's happy with it"
action2.successshortjournaltext = "Bring the Ring to randomnpc1."
action2.endInteraction = True
action2.successtrack = "randomnpc1"
choice = DBDialogChoice(text = "I need a ring crafted that can win a woman's heart.")
choice.successLine = DBDialogLine(text = "This will sweep her off her feet.\\n")
choice.successLine.addAction(action2)
choice.failLine = DBDialogLine(text = "That is my specialty, but your going to need a fine quality diamond. I will also require 300 credits for my part.\\n")
choice.failLine.addAction(action)
dialog = DBDialog()
dialog.name = "Diamonds and Girls III"
dialog.greeting = DBDialogLine()
dialog.greeting.text = "Good morning.\\n"
dialog.greeting.addChoice(choice)
#randomnpc 2's dialog (The Woman)
action = DBDialogAction()
action.endInteraction = True
action3 = DBDialogAction()
action3.endInteraction = True
action3.addFaction("Commonfolk",-100)
action3.addFaction("Underworld",10)
action3.endFail = True
action2 = DBDialogAction()
action2.addTakeItem("Elegantly Crafted Calibrium Diamond Ring",1)
action2.giveCredits = 300
action2.addFaction("Commonfolk",25)
action2.addFaction("Mystics",25)
action2.endSuccess = True
action2.endInteraction = True
choice = DBDialogChoice(text = "You might be interested in knowing that randomnpc1 is absolutely crazy about you.")
choice.successLine = DBDialogLine(text = "This will sweep her off her feet.\\n")
choice.successLine.addAction(action2)
choice.failLine = DBDialogLine(text = "He seems like a nice guy, but it's not going to happen. I'm sorry.\\n")
choice.failLine.addAction(action)
choice2 = DBDialogChoice(text = "You need to watch your back, randomnpc1 is a nutcase and he has his sights set on you.")
choice2.successLine = DBDialogLine(text = "He seems harmless to me.\\n")
choice2.successLine.addAction(action3)
dialog = DBDialog()
dialog.name = "Diamonds and Girls II"
dialog.greeting = DBDialogLine()
dialog.greeting.text = "How are you today?\\n"
dialog.greeting.addChoice(choice)
dialog.greeting.addChoice(choice2)
#----Quick Check Dialog
action = DBDialogAction()
action.addCheckItem("Calibrium Diamond",1)
action.successjournaltext = "Bring the Calibrite Diamond to randomnpc1 at rnpc1location and see what he thinks of it."
action.successshortjournaltext = "Bring the Diamond to randomnpc1."
action.successtrack = "randomnpc1"
dialog = DBDialog()
dialog.name = "Diamonds and Girls Check"
dialog.addAutoAction(action)
So if this is the quest that is chosen then the basic generation criteria for that quest is:
dialog.numnpcs = 3
dialog.randomnpc3profession = "Metallurgist"
dialog.randomquest = True
dialog.randomnpc1sex = "Male"
dialog.randomnpc2sex = "Female"
That tells is that this quest has to generate 3 random NPCs... NPC1 must be male, NPC2 must be female, NPC3 must be a Metallurgist. That search criteria could also have specified any of those NPCs to need a specific personality, mood, relationship, race, npcresponsible, type, race and a flag to see if they are locked into any other dynamic quests in the world. The reason for that last one is if that character has a mood change as the result of another quest, you would want them to exclude them from any other generated quest which could change their mood. The quest could also include information on if this was a Local, Regional, or Distant quest, or specify NPCs needing to be from a particular zone.
The mail information in the main dialog is information that is emailed to a player when they are given the quest. The Repopulation is a Science Fiction game, so everyone has a PDA and they instantly receive email. In our game you don't seek out dynamic quests from NPCs, instead they email you job offers (quests). Players can accept or deny a quest, and quests can contain time limits. If a player accepts a quest then it attaches that Dynamic quest dialog to their characters dynamic quest list and the quest remains active. If they deny the quest then you could either delete it (as we do now) or put it back into a shufflecard for another player (which could be done to minimize calculations if that ever became an issue). This is the text that is emailed to you. In that particular quest template what happens is an admirer (any male in game) wants to get the attention of a particular female (any woman in game). The first step is to find a Calibrium Diamond, which is a rare mined item. You will notice the track = "Calibrite Ore". If this quest is being actively tracked and you come into range of any Calibrite Ore clusters then it will automatically begin tracking them on your radar. This is an optional addition to any quest, you can track any NPC, object or point of interest and have the overhead map include a directional pointer to it. The quest dialog determines if this tracking is available or not. Once players find a Diamond, it changes their tracking to the admiring male. When they speak to him, he sends them to the Metallurgist that was generated for this quest, who will craft them a ring for a fee. They bring this back to the male who asks them to deliver it and the message to the female. When speaking to her, you have some diplomacy options, which we put in a few quests to raise that skill, and also an opportunity to say something shady which raises your underworld faction (and can open up underworld quests) at the cost of faction with the Commonfolk.
Using this type of a system you can design quests as though they were unique quests, but randomize the criteria. When you think of how many quests in MMOGs are simple kill, delivery, craft quests, just with a tiny bit of randomization you can duplicate those quests. Sure you lose the unique story (though you can always make the generated quests specific to a location if you want to add some backstory to what is going on there) but in a recent poll of WOW players they found that the vast majority of players simply click through without reading the backstory at all, they simply accept the quest, and look at what they need to do and then they do it.
@Ted: I look forward to seeing what you guys have in store. I've been hoping to see more randomization in these games for years. My day job is that I run spoiler sites for these games (since EQ'Lizer on the original Everquest, 10 years ago). When I first began doing these sites, I thought that it wouldn't be a long lived venture as eventually companies would make things random enough that spoilers would be useless. Thankfully for me, they never did. As a player though, I hate the fact that you can play a game like WOW or EQ 2 and get an in-game map and spoiler information for everything while you play. That guilds can look up boss mob strats and once one guild has done it everyone else just uses that same strat. Randomization and player created content can get rid of all of those things, if only more developers would choose to use it. Though I guess, perhaps its a good thing that more haven't as it makes those games stand out. Which is good for us I guess with a shipping date later this year.
Edited on Apr 12, 2008 04:37 GMT
| Rodney (OldRod) Burns (Apr 14, 2008 at 14:37 GMT) |
| Ross \"Boaz\" Leland (Apr 17, 2008 at 16:19 GMT) |
If someone has already said this, sorry it's a bit early for me to read all the detailed replies. o_o;;
| Ted Southard (Apr 17, 2008 at 18:21 GMT) |
What I was trying to say was that all quests needs to be dynamic and unique, and even beyond that point, they need to be able to modify themselves and branch, just like real stories do. It looks like JC has made some great strides towards that end, and his project proves that it's not about the player doing some epic quest and saving the whole world, but players going around doing little things to slightly change that small corner of it a bit at a time.
While a lot of MMO's have good features and are great games, they all sort of miss that point and think that every player needs to be the only hero, when that's simply not the case at all. It's just that that's what developers push out because they think the players want it, and the players think that that's what the games are supposed to be about because that's what the developers push out. That's not the case for every MMO, but it's the case for a lot of them.
Edited on Apr 17, 2008 18:30 GMT
You must be a member and be logged in to either append comments or rate this resource.



3.5 out of 5


