I'm still a'working on my game, though not much progress was made yesterday. My schedule for this game is intended to be Saturday - Tuesday and Thursday. 5 days out of the week isn't bad.
Today was largely spent brainstorming - that's probably going to be standard procedure on Thursday, since it's a disjointed island in my week. What I brainstorm today will have a lot to do with what I'm trying to construct the other four days of the week I'm working on the game.
What am I brainstorming about today? Now that have the staples of a nicely randomly generated universe, what do I intend to do with it?
It's not that I don't know how to make a simple RPG. I've played more than enough RPGs to know the drill of grinding randomly generated monsters. Hundreds of games could write themselves if all I'm doing is revisiting what I know. The trouble is that I've got plenty of those kinds of games to play already, and a lot of my motivation behind this is to make something interesting.
The best thing to come to mind: Meaningful dynamic content. It's not a new mantra, but let me extol some virtues about that.
Right now, MMORPGs have gone so far as to allow content within their game to shift (and this terrifies them because they're worried what griefers will do with it), but they don't do anything meaningful with it.
Take a look at a game like EVE Online or Darkfall Online, extolled for their use of Dynamic Content. How has that worked out? Grab resources and grind them into equipment or structures that actually exist in the world. Good start, but what do we do with the things players have built? Pretty much just bash them against other players' equipment and structures.
Not enough - we need a point. How about some real intrigue? (And I'm not talking about GoonFleet dissolving BoB because they met a disgruntled guy who had the corporate access to do it.)
How about logging into the game for the first time, only to discover that you're the only player capable of overthrowing the evil Count Humperdink and his Gankknights Extraordinaire, leading to an epic story in cooperation with other players where you eventually end up completely changing the leadership of a town?
How about rescuing a town of surfs from being sacked by goblin invaders - however, instead of the goblins just respawning and sacking it again, the village stays rescued?
How about building something in the game that actually makes the world a better place instead of being little more than a treefort for you and your friends?
In other words, how about we use dynamic content to generate stories and abandon the idea of there being a static world because (thanks to dynamic content) nothing is really static?
This stuff should be mainstream features in MMORPGs right now. The technology is not outside of our means - you can do this in BYOND - but the willingness of those who call themselves game developers has been fleeting. It's just a whole lot easier to manage a static world... or is it?
What I'm creating should be an interesting game. However, if I do a good job, it'll be more than that: it'll be a prototype that will change the way MMORPGs will be played.
1
2
ID:70617
May 28 2009, 6:10 pm (Edited on May 28 2009, 11:43 pm)
|
|
May 28 2009, 7:47 pm
|
|
Lot of talk, but what's your plan for implementing this? Peregrine City was my attempt at just this sort of thing, but I had to drop it because I couldn't invent new content fast enough. How do you program a computer to create content that's not just a mix of the parts you put into it? Pretty soon players learn to recognize how each new quest is just one part from group A, plus mission type from group B, NPC from group C, and reward from group D.
|
Exactly: that's the challenge.
I definitely plan to use randomization against tables to generate possibilities of things happening. Undoubtably players are going to pick up on it through the natural pattern recognition of human intelligence. So, what am I going to do differently? First, I'm going to say that it's okay players will exhaust even randomly generated content. Why? Because players exhaust non-randomly generated content too. That doesn't mean it's a failure, that just means you've chosen a slightly different means to generate your content that has a bit more longevity to it. Content is hand-crafted even if it introduces elements of randomness, but elements of randomness are nice in that they allow the re-use of hand-crafted content to occur, and that's good, right? But, actually, that's not my real goal. What I actually want to do is a little more complicated than "create mission from table." What I actually want to do is have the world react intelligently to the players and create missions dynamically based off of what they've been doing. In other words, rather than beating the quest-o-matic and having it spit out a quest based on the parts I code, the players will be out there forging their own destinies through the natural desire to build their little niches in this virtual universe, and then things happen. The players might learn what kind of things can happen, but they don't know which is going to hit them and when. It exists on a separate layer, because they've actually a main overreaching activity they perform when these things aren't happening. If it plays out like I think it will, it'll have organic enough of a feeling that players won't quibble over it being a random pattern, because the players will have introduced enough of their own content to mask it. I know, my mouth is writing some pretty big checks here, but honestly I think I'd rather people hear it and consider how to go about making their own spins than sit on it and let it fade into obscurity if my project doesn't pan out for some reason. |
I've lately taken a renewed interest in Dwarf Fortress, and I can't help but feel that Tarn Adams has some lessons for us in terms of dynamic content.
In DF, you can build your fortress into actual interesting architectural designs. I can't help but think that's a great concept for RPGs in general, letting you not just build personal wealth but do something with it. And architecture in turn is a form of wealth. A secure stronghold might prove to be tempting to potential thieves and enemies, perhaps even make the builder feared by the local powers that be. Or a trader could use the benefit of their long experience forging profitable alliances to corner the market on a valuable commodity, or even parlay the wealth of a trade empire into political power. Of course the problem is that characters are people, and their stories are not never-ending. The very best stories have a firm arc and an ending, and many times the chief actors don't go on to experience a sequel--the next story is played out by the next generation. I feel that everyone wants, on some level, to participate in their own epic story; at least this is true of RPG players. I don't know if you can really achieve a good artificial story arc, but I do know that in a world of dynamic content, you can definitely have NPCs react in realistically intelligent ways. Powerful characters can become jealous of other characters who obtain power, or try to befriend someone they think can help them. Thieves look for opportune targets--they will look for richer characters to plunder. Mythical beasts will hide in the deepest, most abandoned caves and dungeons. Areas newly opened to civilization will be taken over by anyone with the power to hold the land and dwelt in by anyone willing to build there, while areas that have gotten a little too civilized could fall into political disarray, war, and even to ruin. Some of these things happen on a short time scale, and others on a large scale. I think if an RPG doing this is to realistically keep reacting to player ambitions, it also needs to provide incentives and disincentives that push the player into going with the flow. In time of war a player can make a living as a lone thief or rogue only if they get near to the action; in time of peace they have to stay away from the law. In this way the game can keep feedback loops in place, preventing players from throwing the balance too far out of whack but still using their input to drive new events. To what extent this is doable, I don't know. Designing a good reactive world is just like designing any economic game writ large; the economy simply has more elements, some emotional and abstract. If it's done well enough though, a lot of classical economy-game problems fall right out of it, like prices adapting to the rarity of an item. If the town is swimming in goblin-made short swords, then an NPC attempting to haggle for one by asking prices of various people can eventually come across an NPC who's absolutely desperate and willing to sell at a low price. Word of the sale disseminates through both parties, and the generally expected price of swords goes down. I think the challenge is for NPCs--and by definition also any quest generator--to recognize that some tasks need doing, and that they have needs and wants, and various ways of filling those needs and wants. It's not trivial, but if that core mechanic can be mastered then all you have to do is decide on an algorithm (even a simple one will do) to make NPCs choose between the options they're aware of. As part of this by the way, communication is crucial, so another thing that falls out of it is that towns can gossip about the exploits of any given player (or NPC) who does great deeds in their territory. That in turn gives the world an even greater feeling of depth. |
Such is the incredible breadth of Dwarf Fortress that I too dwelled a great deal on Adams work and came up with many of the same and many different ideas.
I'm completely with you when you're talking about the idea of people leaving behind legacies for other people to move in and take over. Approaching a pile of rock and turning it into a fortress to fight a war, and then long after the war is over this fortress becomes the place people can retreat to in time of crisis. A city comes about, growing around the fortress until the fortress is but a distant memory. How many real life cities are founded on such a story? Yet, it's not that hard to give the players the tools to create a fortress and convert it into a city. Dwarf Fortress proves this. In terms of a good artificial story arc, I think a lot of games already do this. Play Dwarf Fortress long enough, an it's not long before you start to spin a story about the inhabitants. Personally, I've done this with 4X games. So, here's basically been my thinking: bridge the gap between 4X Game and RPG. It's been my whole dynamic content scheme all along. Unfortunately, between my tendency to become distracted and the devil being in the details, I haven't fully realized anything yet. But all my shelved projects have basically been variations of this theme. My current focus? Go heavy on the abstraction. Start with the 4X game - that's actually pretty easy (it's the universe picture you see from day 1 of my current project). Then fill in as many details as I feel I can do. I'm stumped on the first detail: what is the player's role, really? Individual agents of the kingdom, or kings themselves? Best case scenario, first one and then another, but that introduces challenges of its own. It goes from a neat abstraction to a giant can of worms pretty quickly: your fourth paragraph. If I start with a 4X game and end at Dwarf Fortress style world building, I think that aught to keep the players busy for awhile. What's mostly stumping me is doing it in appropriate context as to be conductive with a long-term play experience. It's the difference between a tile-based construction being an overblown sand castle versus something that (with a little imagination) does a passable simulation of the last, best hope for humanity. I can tell from your fifth paragraph we're on the same page there. |
Sorry, in typical Internet fashion I failed to read every detail of your excellent post while I puffed up and ranted nonsensically. Here's one thing I wanted to add two cents on.
Lummox JR wrote: I don't know if you can really achieve a good artificial story arc, but I do know that in a world of dynamic content, you can definitely have NPCs react in realistically intelligent ways.[...] I think if an RPG doing this is to realistically keep reacting to player ambitions, it also needs to provide incentives and disincentives that push the player into going with the flow.[...] I think the challenge is for NPCs--and by definition also any quest generator--to recognize that some tasks need doing, and that they have needs and wants, and various ways of filling those needs and wants. It's not trivial, but if that core mechanic can be mastered then all you have to do is decide on an algorithm (even a simple one will do) to make NPCs choose between the options they're aware of. It's definitely not trivial, but I have heard of one solution that produces a streamlined answer. Basically, you have the objects in the game advertise their needs, and the NPCs pick up on that. It's how The Sims series and Dwarf Fortress both work. You basically turn the whole thing on its head. Rather than the NPC thinking about how to interpret each element of the world, each element of the world thinks for itself and the NPCs are instructed by them. I've experimented a little with this, and the really nice thing about it is this falls into an object oriented format rather nicely. Introduce a new aspect to the world and you don't have to tell the NPCs anything. Instead, the aspect you're introducing knows all about itself, and competes with any other aspects previously introduced to goad the appropriate NPCs into doing its bidding. (This is how The Sims is able to introduce expansions which bring new behavior to the Sims. The behavior is in the objects, not The Sims' AI. All the Sim decides is which object of the ones which are advertising to it will fill its needs.) Of course, this is just one solution, it's not the only solution, and even in this solution it takes a great deal of niggling experimentation and paperwork to iron out the exact behavior you want. This is also not to trivialize the extreme significance of what you're suggesting with dynamic NPC behavior as a part of dynamic content. I want to realize that, too! I'm just saying that this is the literal direction I'd currently go based off of the methods I heard about. |
As far as tasks that need doing, an approach where objects advertise their needs may or may not tie in. A good example is a typical RPG quest: Kill a bunch of critters. If the local townsfolk are having problems with an infestation of rabbits for instance, they have several approaches to deal with it: Kill the rabbits themselves, offer a bounty for dead rabbits if they can afford it, or collectively (usually through the local ruler) offer a bounty for X dead rabbits. However for such collective action to work, you have to have the townsfolk reacting to the rabbit problem ("The rabbits are eating my cabbage!") and communicating their problems in such a way that the common elements get magnified. A problem shared by many townsfolk might be something a local ruler is capable of picking up on ("I'm hearing a lot of complaints about the rabbits"), or they might need to organize into some sort of collective entity which would, in implementation terms, become its own sort of abstract object--possibly represented as a political/administrative post in need of filling.
|
I know what you're going through. At one point, what I had was a hierarchy of units. (Just the framework, not a working model.)
The idea is that every unit in the game has a master and subordinates. The master instructs its subordinates, but the subordinates let the master know its needs. How I thought to clear up the communication issue is that each unit only performs certain interactions. The townsfolk might recognize, "the rabbits are eating my cabbage!" They consider the viability of taking out the rabbits for themselves. If it turns out they can't, what they do is send a notification up to their superior, "monster problem here." The superior's AI is programmed to handle certain things such as "monster problem here" and amongst its subordinates are the town guards. It sizes up the threat versus the capability of currently available guards. (The bold part being an implicitly handled task queue.) If it is deemed the available guards can handle the task, away they go. Otherwise, the villager's superior escalates even higher: perhaps to the king and his armies! His majesty receives "reinforcements for monstrs needed" and knows how to handle that. He instructs one his available subordinates, a general of a company of his army, to take care of the rabbits: problem solved. The trouble at this point isn't that the AI can't figure out how to solve its problems. The trouble is that the player seems redundant! This game is intended to be played by players, right? What actually ends up happening is error states. What if the AI doesn't know how to handle a problem (perhaps it tried and failed) or no means materialize to solve the problem (the king's men are busy)? What's taking those guards so long to come back from the cabbage patch? Something needs to be done, but the AI has no idea what. The whole thing falls apart. The cabbage is eaten, the surfs starve, the kingdom collapses: unhandled cabbage eating rabbits are now in danger of destroying the world. Guess what the heroes of your adventure, the players, are? That's right: glorified troubleshooters bridging the gap of things the AI is unable do! Powered by human brains, the unstumpable nature of your players makes them valuable indeed. (It's creepy just how revealing this is: in your average D&D campaign, your player characters are just solving problems everybody else is too dumb or lack the means to do.) Once the hierarchy was set up, all you had to do to set up an epic "save the world" story was keep randomly spawning rabbits until they showed up in the wrong cabbage patch at the wrong time. The main problem now: Suddenly, there's fires everywhere, and the players are sick of putting them out. They ignore the problem, and so the unthinkable occurs: the world ends. Who knows - maybe that's a good thing. If the world ends because the hero of fate stayed home, isn't that the only way we know he had a real purpose? |
Probably the most important thing you'll need to learn here is realise that the AI is allowed to cheat, as long as it's no different from it not cheating to a human observer. For example, the AI for an RTS shouldn't automatically know where everything is in the game world - that's cheating, because humans have to deal with the fog of war.
But you can go "Loop through all objects in world. Are they inside the AI's unit's sight range? Yes? Add them to its list of stuff it can see", rather than doing image processing on a virtual 'screen' the AI is looking down from. It's cheating - the AI has perfect knowledge of everything in its sight range, something humans don't have, and it doesn't need to recognise stuff by looking at it like humans - but it's functionally identical, and also much easier to implement. |
The "putting out fires" approach is an interesting analogy. I think the problem might be simpler to handle though in that it can be looked at as the game trying to give players the opportunity to participate. The rabbit problem for instance can manifest in a few ways. Villagers who can afford traps might be buying them, driving up the price. Villagers who can't deal with the rabbits themselves could ask for help, but since small animal trapping isn't necessarily the guards' domain, the local ruler can institute a bounty. At this point the player has the option of seeking that bounty, but if no one steps up for a while, a few NPCs might take it on themselves figuring it's a sure-fire way to feed their families.
As far as pushing things up the chain of command, the meat of that seems to be the question of "Is this something I can deal with, and if not can it be handled by anyone else locally or is it too big a problem for us all?" Obviously the coming of a dragon falls into the latter category. A pending invading army does as well. A band of thieves causing problems, that's work for the town guards and it also opens up potential bounties and quests as well. On the subject of AI cheating: I've written about this before, how in SotS II the NPCs have a specialized system that treats them like real players in terms of giving them a more realistic form of memory. For a game like that, that's pretty important. For a simulated medieval town, it's probably quite unimportant how you handle communication and observation except when it comes to combat. |
@JP
I can see why you'd find this cellular AI approach to be done to avoid an omniscient AI. It certainly would seem like an awful lot of work directed at an unnecessary goal. The actual problem I was trying to address has less to do with that and more to do with trying to create a dynamically generated world that has a real purpose behind it. @Lummox JR Good point. I guess that whether or not I'm going to have the players involved in solving a given solution has more to do with choosing to tell a story and less to do with technical limitations. Another thing that crossed my mind is the idea of a "Virtual GM." Basically, it's an AI that follows the players and specifically custom-tailors threats according to how good that player is while simultaneously keeping track of what that player encountered to keep the threats they encountered varied. I like the Virtual GM approach in that it is extremely player-centric - it's all about making sure each player has as enjoyable of a time as possible. The player might even be able to instruct the game as to the kinds of adventures they like to have. Coinciding the Virtual Gm and cellular world AI would be tricky, but probably possible. After all, somebody has to do decide where and when those rabbits will spawn. The cellular world AI (as I've been calling it today) is really more of a threat tracker/dynamic quest database. |
The fundamental problem with any system such as those being discussed here, is that in order for any of them to come into existence, they need to be designed and programmed...
At first glance, that is a very glaring "Thank you, Captain Obvious!" statement, but the reason it needs to be kept in mind is that for many of these types of systems, that programming (heck, just the planning behind it!) can quickly grow to be a prohibitive amount of effort... If anyone really wanted to put forth the time and effort, they could create a virtually flawless real-world simulation (or fantasy-world) down to the minutest details... This would require the design and representation of virtually every single aspect of reality (think, The Matrix, with or without the fancy visuals and other sensory outputs) Behind a fully functioning simulation of the world lies a framework of an incredibly huge number of rules (again, equal to the number of rules our own reality is based upon) Unfortunately, though, no one's up to that challenge... It's just far too daunting of a task from any angle, and at any stage... Yes, it theoretically can be done, but it likely never will... So, we're forced into limiting ourselves further and further until we get to a level where we're comfortable with the effort required to pull it off... Thus far, though, that level always seems to fall short of expectations... As it turns out, even getting the level of sophistication to make a passingly complex and nearly-real world is just beyond the threshold of effort we're willing to put forth... I see lots of talk of these sorts of higher-level AI systems, economic systems, etc., but none of them are likely to come to fruition, because when you get right down to it, they require a hell of a lot of work... They sound amazing, and would likely be amazing if ever realized, but there's very little chance that they ever will... And this isn't just directed towards BYOND developers, this includes commercial developers, too (for instance, even Spore falls far short of the general hype and expectations, simply because to really make it what people wanted it to be would have taken an exponentially greater amount of effort) Not that anyone should stop dreaming, or theorizing, or even attempting... It's just that we shouldn't let these pipe dreams keep us from setting (settling?) more realistic goals and actually getting something done with them... So rather than trying to flesh out an AI system or economy into something that nearly simulates real life (down to NPCs communicating with each other to solve problems, set prices, etc.), just take a step back, and fudge things a little... As long as from the outside it looks like something sophisticated is going on behind the scenes, it doesn't matter if it's just a man behind a curtain... Players will pay him no attention... It's what all of the pros do... There's no harm in trying to reach for something a little bit more, but you have to keep your feet on the ground... |
In other words, dynamic content is limited by the amount and level of sophistication and detail you're willing to put into the rules that generate and govern it...
Achieving something like many of the ideas floating around here, requires an immense level of detail from an immense number of rules in the framework... If one is willing to go to those lengths (and really, no one ever has been, from indie developers up through the pros) then by all means, go for it... If one is not willing to put forth that effort, then one needs to reign in one's dreams and ideas until they get down to a more achievable level... Of course, I suppose a purpose of this discussion would be to decide exactly how to pare down the goals to the proper level, so my rant may be pointless... |
The way I look at it, if I've got the idea really well worked out in my head, it simplifies itself to the point where it's no harder than most of the things I do.
This cellular AI approach sounds super hard, but it's actually a lot easier than a centralized AI. Rather than having a routine that goes through all the units in the game and tries to figure out what to do with them, the units simply manage themselves and only escalate to a centralized AI when they encounter a problem they can't solve on their own. It's the same with any technology, really. The workings of a flashlight seem painfully trivial now, but the early pioneers no doubt invested considerable effort developing the technology we take for granted now. |
I'm not saying that these sorts of things can't be done (or, rather, that they can't be approximated), but that they really can't be fully realized because to do so would require a framework consisting of rules to handle every possibility...
If you can trim out the need to cover every possibility (or funnel things down to a small list of fudged solutions that handle multiple possibilities), then you can arrive at a decent portrayal of the original goal (one that from the outside might not seem anything less than that original goal) Setting up the AI so that individual units take in input, and make their own decisions based on it (including the decision to ask a higher authority) is relatively simple... Setting up an economy that takes the number of item X in supply versus level Y of demand to set prices is relatively simple... But to do either with the level of sophistication that is usually being tossed around is an entirely different story... The more sophistication desired equates to a greater and greater level of detail needed in the rules governing the system... It quickly gets to a point where the work needed is too great... [Edit:] I'm honestly not trying to sound so discouraging, mind you...lol |
A couple things I could say about that.
First - how many possibilities are there in the average RPG, anyway? Computer RPG, that is. Attack, drink potion, cast spell -- ever play Final Fantasy XII? They actually gave you a simple table you set up in their Gambit system and the game pretty much plays itself. Second - patching the gaps where I've yet to get around to telling the AI what to do in this specific situation is where I was thinking player involvement could pick up the slack. This all sounds a whole lot more complicated than it is. |
The thing is, the system you've just described and the system being brainstormed thus far are on completely different levels...
Computer RPGs are limited in the way you describe in part because of the problem I've mentioned... Why is there never really any meaningful custom content in a game? Why is there never any meaningful dynamic content in a game? Why is there never any meaningful emergent behavior in game AI? All due to the problem of just how much work they involve, because to put any one of them into actual practice requires a huge undertaking in setting up the framework to handle virtually any applicable possibility any of them would entail... So, all games inevitably fall back on a very simplified and limited set of elements and rules... Which is exactly what you just mentioned in this latest post... But again, what you just mentioned in that post is lightyears away from what this entire thread has been talking about from the initial blog post until now... |
I wouldn't call it a holy grail if it were easy to find, now would I? ;)
However, the tricky thing about incredible artifacts is they're not nearly as special after you've found them, toted them home, and tried to figure out a good way to display them on your mantelpiece. Go back 20 years and tell somebody you've created a game that uses 32x32 pixel tiles displaying tens of thousands of colors consisting of multiple layers while networking to allow multiplayer interaction from anywhere on the globe, and they'll tell you that that's impossible and an attempt to create it would inevitably fail too. Dantom delivers us an engine that gives us all that, and we no longer sweat the details. We didn't even have to pay for the privilege to use it. All I'm doing now is the kind of brainstorming that Dantom did earlier, but towards a different ends. I'm not saying I'm already there, but do you honestly think it matters that there's unresolved details? I'll just get to them when I get to them. If I don't, somebody else will, but maybe I'm not that patient. The main reason why we haven't seen them yet is because not enough people have got around to doing it and releasing it in a game we've found and played. It's not commonplace feature, yet. However, games like Dwarf Fortress or The Sims show us that it can be done. |
The thing is that it's not hard to find... It's simply too hard to collect...
We're in the historically unique position where we know the vast majority of the technological possibilities (if not all of them), and have the building blocks to get to most of them, but lack the resources or drive to do put the blocks together... It's not the same world that it used to be (even up until just relatively very recently) where we didn't have all of the blocks, and were finding new ones all the time... We've basically reached the point where we've found them all, and are focused on devising new ways to assemble them... How that applies to this topic is simply that we know that all of these things are possible to create in a simulation and we have many, many methods to doing so... But we also know that the work required to put the blocks together to construct that building is way beyond our level of effort... This Holy Grail isn't something we're still looking for... It's right there... And our digging tools and adventure supplies are right there... But, the Grail happens to sealed under mountains of solid rock, which will take us more time and effort (not to mention broken tools) to get through than we're willing to expend... So, here's this plastic knock-off Grail, it's the best we have the time to come up with... [Edit:] Let me be a little more generous with that last statement: "Here's a numbered, gold-plated, replica Grail with a statement of authenticity... But we're still not going to dig the real thing up..." |
Let me put it this way.
We've all the materials we need to build this house, and the challenge is in putting them together correctly. This much you've said. However, we can't build the house all at once. We can only build it beam by beam. Focus on the incredible audacity of a dynamic content generation system that includes cellular life, and it's very, very, quite impossibly, hard. Focus on the individual steps in doing so, including a step in which you conceive a plan of steps, and it becomes much more approachable. Clearly, my problem isn't that big concepts daunt me (though I do tend to get snagged on little details just because I enjoy pondering the possibilities so much). My problem is I'm easily distracted and physically tired. That gets into that next blog entry. ;) |
1
2