Advertisement

Creating a dynamic adventure game

Started by August 05, 2003 10:50 PM
26 comments, last by bob_the_third 21 years, 5 months ago
After some more thought I came up with the idea that one could build his puzzles in a modular sense, like with a "puzzle game" rather than an "adventure game." The only things seperating the two are story elements and puzzle diversity, so bridge the gap there and crank up the production values and you''ve got the game you''re dreaming of.

I think interactive fiction has it''s graphical cousin beat soundly in the "creativity allowable" category, but not really exactly for technical reasons - it''s more a matter of how much of the graphical potential and detail we feel up to sacrificing for gameplay possibilities. Being able to move/malform/destroy things is critical to so many adventure puzzles that large parts of your game could be based around a system that lets you do your destruction anywhere you like - for example, making it overhead and tile based would greatly simplify the process of giving extra options to the player. Using a more abstract(even only slightly) dialogue system would also give the player additional options - just have the player ask others to follow him or use their skills!

I think a VERY effective system would combine abstracting of the general game world with the more standard gameplay with detail and fixed solutions by limiting the detail to a few game-critical areas and integrating them as best as possible so that the player doesn''t really notice unless he''s really paying attention to the technical details that "hey, it doesn''t work this way anywhere else!"
To the OP:

You may want to check out the paper Agents in Annotated Worlds (links to the actual text are in the upper-right corner of the page), as I think it touches on a number of ideas that you would find useful. There are also a few old threads, most started by bishop_pass, discussing variations on this idea and implementation strategies. A quick forum search yields Annotated Objects which drive behaviour, The annotated cellar: an experiment, and Annotated Objects (Discussion on Implementation) as the most important discussions.

If you don''t want to read all that (can''t blame you, I suppose), the general high-level gist as I understand it (keep in mind that my memory is fairly foggy this morning ) is objects in the game world have certain affordances which they broadcast to other objects in their vicinity. These other objects can then determine which, if any, of these affordances they want to use/activate/whatever.

A simple variant I was playing with some time ago for a TBS game replaces the general concept of affordances with three more concrete categories:
  • Properties - some intrinsic aspect of the object. (eg. health)
  • Passive capabilities - define how an object responds when it is part of a game event; this may consist of modifying properties or generating new events. (eg. what happens to an object that has had a freeze spell applied to it)
  • Active capabilities - define what game events an object can create, which objects they affect, and their initial, unmodified effects. (eg. attacking)


Obviously, these would be defined differently for each object, and each object would have dozens of properties and capabilities.

Also, the notion of every object having potentially dozens of uses makes a game very hard to balance properly. As a (simple) example: the player is sneaking through a town hall/manor house - she wants to find the keys to the armoury (which has a heavy iron door) so she can eat in its renowned mess hall. What''s to stop her from simply taking the curtains off the windows and using them to burn down doors in the town hall rather than trying to pick locks or find keys? Unless you have a very robust and intelligent NPC system, you''ll have a severe problem of the player being able to do many things without consequences in the game world.

Just some thoughts; I''m off to make breakfast.

Scott
Advertisement
Good points, all. A statement before anyone gets the wrong idea from my posts. They are not intended to be arguments for the feasibility or lack thereof of what I'm proposing; just a verbal communally expressed thought process.

Okay, well I've had some more thoughts on this since my last post.

quote: Unless you have a very robust and intelligent NPC system, you'll have a severe problem of the player being able to do many things without consequences in the game world.

Absolutely. That's a huge hurdle. One thought, again going back to genetic algorithms for object placement would check solutions for obviousness/ease and might discard those that match the criteria set by the designer for "cheat" solutions (such as grabbing the curtains and setting them on fire to burn the place to the ground; for example, there might be a large crowd that would notice the flames or smoke). Basically when such an undesired solution is detected, its dependencies are probed and the software tries to find a way to prevent it through object/NPC manipulation without seriously disruption any of the desired solutions.

Okay now about those objectives. I originally thought you'd want to designate a linear series of objectives that the player would follow. Problems with that include:

(1) The player may not follow a linear path (they don't have to after all); so now what?

(2) The linear objective model was (I assume; correct me if I'm wrong) created to accomidate the static adventure game's limitations (not making a value judgement on this type of game; this is merely refering to technical limitations).

So what if instead of layingdown objectives like "Get out of room A -> Get the key -> Rescue the convict -> ..." the designer instead wrote what amounted to a story, i.e. there were NPCs that went about their business according to a story your write, BUT they have rules of interaction that allow the story to be disrupted/manipulated dynamically based on what you do. The question of whether you win or lose the game would not be based on the meeting of a string of objectives but on the satisfaction of one or two high-level goals. Object placement would still be based on objectives, BUT those objectives would be put in place to avoid trapping the user. In other words, we want the user to always have a way out of bad situations, so if you have a room, they need to be able to get out of it, etc. I understand this could very well be a balancing nightmare.

I guess the basic premise is this: This world exists, it has rules, there are characters going about their "lives" in a story, but you can alter the story by the things you do. If the ending is good, you win. Otherwise you lose. The game should attempt to be as forgiving as possible in allowing you not to get yourself stuck, plus it should try to always give you a reasonable tool set so you have the freedom to be creative. Some of this could be dynamic; some would be precomputed at scene design time.

Again (this is becoming a familiar refrain for me ), more on this later. My basketball goal is calling

[edited by - bob_the_third on August 9, 2003 3:20:16 PM]
Interesting stuff here. I personally think this is why the adventure genre died, you can try logical solutions to things but because the designer didn''t think of or want you to use that particular solution you just end up with a "I don''t feel like doing that" from whatever character you''re controlling. As for the object properties thing, a lot of games do this on a basic level. When you start to have objects with certain properties that can be reused on other objects and will always interact in a specific (algorithm instead of scripted) manner you have more of a puzzle game, like Lemmings or something, than a traditional adventure game.

One of the things I''ve liked about adventure games is they have always done a very good job of telling a story. The adventure game, moreso than any other genre, is the best storytelling platform because it''s so character based. I wouldn''t mind a game with a linear, Lucasarts-like, storyline and dynamic puzzles. So instead of having "you need to do x and y to get z" you just have a final condition z and you can use the basic object properties\actions to active this goal. The advantage of this is, although you lose the benefit of whacky puzzles that are unique every time, you don''t feel frustrated when you come up with an interesting solution that could work but get no response from it because the designer didn''t script it.

Making the narrative non-linear, however, seems a little trickery. While other genres (strategy, RPG, action, racing, etc.) all work well with non-linear gameplay, and each have a great games with non-linear structure, I can''t think of an adventure game that has more open-ended, non-linear gameplay (maybe the Last Express?) I guess there are a lot of games where you can solve certain puzzles in arbitary order, but in the end the overall storyline plays out the same. Maybe multiple "mini-stories" and side adventures would work? Basically the goal is to reduce the "I''m stuck and don''t have anything interesting to do" feeling, the biggest gameplay flaw in adventure games (along with hunt the pixel style puzzles.)
quote: So instead of having "you need to do x and y to get z" you just have a final condition z and you can use the basic object properties\actions to active this goal. The advantage of this is, although you lose the benefit of whacky puzzles that are unique every time, you don't feel frustrated when you come up with an interesting solution that could work but get no response from it because the designer didn't script it.

My point exactly, but a bit more clear.

quote: Making the narrative non-linear, however, seems a little trickery.

Yep. It does seem like it would be tricky. One of the nicest things in the MI series was the clever character dialog. A non-linear game would pose a big challenge for a designer who still wanted the wacky-dialog feel. One approach would be to script all the dialog up-front and dynamically generate any deviations from it. All characters would "talk" to each other. So if for example you (the main character) wind up taking the place of an NPC in a certain scene you would engage in the conversation scripted for the NPC.

It might be easier to create a conversation engine. Tall order, but it doesn't need to be able to pass a Turing test, just play well. What if the designer created a speech model for each character. This would consist of a vocabulary, favorite phrases (with associations to events, conditions, feelings, etc. in the game world), taboos, preferred sentence structuring, etc. For example, the town philosopher might have a vocabulary of a million words, prefer to use long words over short, prefer long multi-part sentences over short ones, and might avoid all sarcasim. Actually, hold the phone, I just had a thought (wasn't that cliche! ).

Dynamic humor. Should be possible right? Take sarcasim for example. What is sarcasim? It's stating one thing but meaning the exact opposite and giving that away in the voice or face or both; generally it's used when you're annoyed or angry, and often as a rhetort to an opinion or suggestion that you scorn. As a start, why not take a statement of fact, invert it and then restate it with a few derisive phrases thrown in for good measure. Example:


ORIGINAL SUGGESTION: "I think we should bulldoze the city damn. It's disrupting the salmon migration!"

IMPLICATIONS: - The town would flood.
- People would drown.
- People drown because they can't breathe water.

TRUTH: We can't breath water. Therefore the city damn should not be bulldozed.

INVERSION (FALSEHOOD): We CAN breath water. Therefore city damn SHOULD be bulldozed.

SARCASTIC RHETORT: "That's a great idea. Let's bulldoze the city damn. Everyone knows we can breathe water!"

Notice that one of the keys here is following a chain of logical implications and then choosing the most interesting implications to derisively expose.

Really sarcasm boils down to an exercise in logic and grammar. I suspect it could be handled by a program. I suspect other types of humor can be automated as well (they're automating everything these days, aren't they?)

Note that I'm not talking about intelligently generating conversation. I'm talking about taking pieces of already intelligent and meaning-imbued conversation and using them to generate sarcasm and other such replies.

[edited by - bob_the_third on August 10, 2003 5:37:24 PM]
Dynamic humor seems really difficult, if not basically impossible to do correctly, but I''d like to seem someone try it. I think humor would have to be something that''s scripted and triggered on a context sensitive basis. If you already have predefined goals, you can trigger humorous animations or comments when the player suceeds. You can also have the actions the player is performing themselves be humourous in a slapstick way. Your sacarsm idea is clever, but sacarsm isn''t the only type of humor and in many cases it''s annoying rather than funny. I also have a feeling that doing algorithm sarcasm in that way would break horribly, not to mention that it would be very difficult to come up with those logical relationships.
Advertisement
Very interesting concept...

I haven''t read all the posts but I''ll take a stab it it.

Create a system which dynamically creates the world. This system would have a library of puzzles which would require multiple "keys" to solve. This puzzle/key relationship could be riddle/answer, door/key, box/opening tool (perhaps crowbar), etc.

Some puzzles could be trickier. For instance, the old "trapped in an exitless room with only a wooden board and a saw" puzzle. It would be better to create an algorithm which could match up situations with different objects. This, I''d imagine is where your "object descriptions" would come in to allow for complex object interactions.

Another set of data that the system could build from is a locale reference. These could include things like a forest path, a livingroom, etc. These locales would have grouping and valid object types. The grouping would let the system know that forest path is in the forest grouping and that livingroom is in the house grouping so that you don''t find a livingingroom in the middle of a forest path. The valid object types would discern between objects so that you don''t find a tree in someones livingroom.

The system then organizes the data into a world. Start off with several accessible areas, all interconnected. One or two of these areas are the way out and most of them hold pieces of the "exit" puzzles. These exit puzzles would each lead to another set of accessible areas and so on and so on. As the world gets deaper, the system attempts to generate harder puzzles.

This would be one hell of a design challenge. G'' luck!

- Jay


[ Here, taste this ]
Quit screwin' around! - Brock Samson
quote: ..., but sacarsm isn''t the only type of humor and in many cases it''s annoying rather than funny. I also have a feeling that doing algorithm sarcasm in that way would break horribly, not to mention that it would be very difficult to come up with those logical relationships.

Absolutely. I realized after posting that the greatest difficulties in automated sarcasism are:

1) Enumerating all (or at least most) logical implications of the condition, suggestion, or statement to react to.

2) Choosing the appropriate implication or set of implications to react to.

You could however get at least the first level of implications by "looking one move into the future." Simply put see what happens, then report on that. Chains could be hardcoded. Of course I personally don''t want to spend the next 2 years telling a computer that people drown in water and drowning is inhaling water and people can''t breath water, so...

Not sure how to handle this problem if it is feasible at all.

And yes, there are other types of humor. Puns for example. Of course puns should actually be easier to do than sarcasim because they don''t rely on logic; they''re pure grammar/phoenetics.

Then there''s your regular old joke, but I''m not sure you''d want too many of those. This guy walks into a bar...

Beyond that, you have wacky situations which the designer builds in (and could be dynamically created by rules that determine interesting juxtaposition of events and objects both physically and temporally). The same could go for dialogue. How to be shocking: the rules, for example.

That should really take care of the humor aspect. So really, sarcasm looks like the hardest part to do dynamically. But if you could somehow build/get access to a "common sense" database, it should be possible too.

As to the irritation factor, sarcasim is NEVER annoying... Really, it would have to be done in moderation. Some characters would never be sarcastic; others only when angry. Others all the time, or only when in a silly mood.

Keep things varied enough that the user doesn''t grab the power chord out of the wall and scream, "Die, die, die!"
If you think about it, a lot of games have emergent humor. Being emergent behavior, it usually isn''t purposely put into the game, but is usually a result of flaws or limitations in the game system or purposeful humorous acts perpetuated by the player(s). There have been only a handful of games I''ve played that have scripted humor that is actually funny (DOTT, NOLF, Grim Fandango, Monkey Island games), but some of the most humorous stuff I''ve seen in games has not been scripted (CS, Quake, my own crappy "games", the Sims, Tekken 3, tons of other games.)

Maybe you could take emergent humor, which is usually because of some kind of funky bug or another emergent property, and use it to your advantage. It probably wouldn''t work for any kind of spoken humor (jokes, pun, sarcasm), but a good deal of humor is not spoken jokes. If you look a old cartoons a lot of them rely largely on slapstick. Tom and Jerry and Roadrunner are the most extreme version of this because the characters almost never talk. This kind of humor would work well in a game I think. Look at Q3A, in FFA deathmatch it basically is a slapstick cartoon. A lot of humor is situational (Seinfeld, the Simpsons) so simply allowing for funny consequences rewards and actions in your game, instead of explicitly writting jokes or creating a funky conversation analyzer, could be a better idea. Using the algoritm puzzle system for example:

Major Goal: Get the top secret files in the dumpster. Unfortuanately, the dumpster guard has been hired to kick anyone attempting to enter the dumpster in the balls.

Characters:

Dumpster guard: He''s not very friendly and if you try to approach him you generally get kicked. Being a dumpster guard sucks though, and he doesn''t make much money. His deadly secret is his fear of chickens. He leaves his post every once in a while, but always keeps a close eye on you.

Bum: he knows the area very well, and he will give you suggestions and hints about the surronding area.

Store clerk: Convience store clerk. She''s very bored.

Items:

Various items you would find in the convience store.

Possible solutions:

Use a chicken on the guard. Eggs produce chickens when they are exposed to medium amounts of heat.

Rob the store and bribe the guard. Pretty dangerous, but if you can scare the clerk enough you get any item from the store, including cash.

Somehow incapacitate the guard.

Find another way into the dumpster area (sewers, etc.)

Convince the clerk to stall the guard when he leaves his post (normally he follows you out of the store.)

Yes, a lot of that scenario is scripted. But because of the actions, items, characters etc. you end up with some funny possible solutions. A lot of the gameplay in this scenario, like the character relationships (hate, neutral, like, etc.) the fear\like\dislike system, physical actions and reactions, etc. would be generic properties of the gameplay, not hardcoded stuff. So in theory you could do this (in an imaginary scripting language):

character guard
{
hates: player (attack), bum (attack)
likes: money (distracted), clerk (distracted)
fears: chickens (run)
}

but you could do this just as easily:

character guard
{
hates: clerk (attack), bum (attack)
likes: chickens (eat), player (chase)
fears: ninjas (faint)
}
This has changed from some suggestions on how to implement humor to suggestions on how to implement the overall architecture, but this does prove that the architecture can support humor. I''m not so sure if that example offers much more than what you''d have in a standard adventure game, but in theory it is all based on combinations of generic code and behaviors that can apply to any character or item, instead of being hardcoded.

Conversation is probably the thing games do worse than any other medium because with current technology it just can''t be done that well interactively. Parsers suck and frustrate the player even more, and branching conversations, while they can be entertaining, are limited are require a good deal of scripting to work.

well my speach may sound a little odd due to my english ability since i''m a native french speaker, i apologize in advence for the murder of the language of shakespear

Well the major issue we have to deal with dinamic adventure game is the story, having a large amount of liberty ofthen mean diffuse story. The fact is i have many friend which play both pc and console rpg, pc are more simulation orianted and console are more adventure/story orianted, then pc rpg are more free but less immersive in story way than console which are mainly very immersive thanks to the story alone (MI game like too) but are completely linear. that''s what my pointed out, pc game is good but they like console''s have greater story that''s why they plays them.

well some people sez that it''s impossible to tie them together in a effective way because game is related to the future, things we will make, when story is related to action which are already do and are stuck in the past. there''s a imcompatibility...

well i wasn''t satisfied then i start to think of the matter,
the major issue is that story is define from the start there is no choice to make when game is all about choice, where is the point where game meets story??
game is about decision as i say since we are designing game we have to seek where story is about decision...
who makes decision in a story? the answer is quite easy it''s the scenarist. then what''s the purpose to the scenarist? telling a good story but we get into dead end, we must rephrase in order to fit with video game aestetique...
i suggest that a scenarist use character with goal which are in a certain situation and have to deal with the situation in order to achieve their goal, they have to fight against fate and lose or win, whenever they lose (drama for exemple) or win at the end the story is good.

well with this definition we have a well setting to convert story to game, a dinamic story will be about a character (the player) in a certain situation (the story setting) wich deal with fate (plot of the story), it''s kinda like the story himself has a will, a goal to acheive (what the scenarist want to say, the theme), this will i will call it FATE
then the game deal with the player as an opponent.
Setting a world where the player gained possibility in the way he play and react to agent in the game, these agents have their own goal to achieve but all things is related to the whole story and create fate
simple ex
the basic setting of good and evil, make the king of evil to actively made decision that affect the world like attaquing village but on his own, make good guys that oppose him and put the player with a significant fonction between them, in the way that each action of the player affect one side or the other.
since the story is dinamic whenever the player do or not do it will have a real consequence on the fate of the world, not letting events wait for the player like the gentle princess wait the brave prince dare to move his lazy ass. Action that''s also affect player''s freedom. Like being in one side provide some avantage but some obligation restriction if the player use to ran away people actively in shearch of him creating event through the world and affecting really what''s happen.Well that''s keep the story always in move.

this required to the story universe to be simulated in a new aestetic sense.

the game who picture me that was surprisely a script game...
it was majora''s mask
in the main village everything where tie to an event: the falling of the moon and the imminent destruction of the world, this make a great coherence to action and story while every single character has goal and desire directly or indirectly related to that whole issue, and since the game was time based seeing every body live their live in real time and seeing the effect of each of the player action through the three day was a very good experiance for me, this was only on three day with only few character but since character was well define and have many relation with others in order to an action on one character have action directly or indirectly with others life.
It''s really the moon which drive me to the concept of FATE


>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>be goodbe evilbut do it WELL>>>>>>>>>>>>>>>

This topic is closed to new replies.

Advertisement