I've always really liked the idea of randomly generated game worlds. Being able to choose "generate new game" in the main menu, enter a few parameters ("Yes, I want dragons", "I want it to be Very Hard"), wait for the game to generate the world, then get to play a totally new game has to be one of the coolest things possible.

Unfortunately, all the games I've played that have the random game/random map feature have always been MORE repetetive than predesigned games.I remember playing around with the random games in Adventure Construction Set for a while until I found the included game ("Rivers of Light", iirc) and realized just how bad the random games were.The random map feature seen in some RTSes seem ok, but they rarely produce believable or intresting levels.

And don't get me started on the horrible Dungeon Hack. *shudders* I'd rather play the random levels in Soldier of Fortune II.

Now, as a game developer, I should probably look at all this historical data and realize that predesigned content is a must if you don't want to kill a perfectly good game with horrible, horrible gameplay.. but I just can't stop thinking about it. After all, UFO: Enemy Unknown / X-COM 1 pulled it off nicely, the random content, but fixed map in Darklands did wonders for the feeling of really being there, and the random maps of Warlords 2 were usually better than the predesigned ones.

As for the pros and cons..

Random content pros:

No need to find/hire level designers

Potentially much longer lifespan

By using a fixed random seed, the game could look the same for everyone, but still be infinitely large. (The elite series comes to mind)

Random content cons:

For some reason, the result usually seems MORE repetetive.

The players don't stay in the same world long enough to really find their way around there. (I don't remember a single Warlords 2 map, but I still know my way around Eye of the Beholder 2 with my eyes closed)

So what do you think? Is random content good? What can be done to improve the results?Is it REALLY good to let the programmers design the world?

i think it's much harder to create a good looking random level than to build it via a level-editor. you have to fine tune the random seed very carefully to create a good level.

i tried to build a random generator for my little game, but in the end i started creating a level-editor. and if someone doesn't like my levels, (s)he could create some new on their own and put them on the net.

I love the idea of random content- in my dream game everything would be random/AI powered - starting from a random seed but then using whatever weapons are in the AI arsenal to generate the world you play in. For example, having generated a random landscape, I would want to model erosion and weather effects. Once those are established those it would be possible to place trees and larger plants in more sheltered areas. With a relatively small selection of different types of tree and large plant, each with its own preferred location in terms of dryness, shelter and so on, it should be possible to create a convincing eco-system that gives the player more of an impression of where they are just in terms of the plant life. Giving a set of creatures along the lines of small medium and large herbivores and predators that largely interact among themselves but can be seen by the player will also go towards this - it would be possible to give them preferred diets so they would be more likely to occur in certain areas. Given all of this information it should be quite easy to model where crops would grow, hunting would be good or any other necesities for human habitation so you could place your NPC villages appropriately and so on... Finally, kick off the AI for everything and let the whole world live for 1000 years or so, without any player presence and see what world you end up with...

Why do all this? I suppose because it creates the impression of a living world- I have always enjoyed games that were totally internally coherent and to be able to have a game that did all that and generated itself, giving pretty much unlimited replayability? That would be awesome. It would also look more real than a straight random scene because it would be based on the same principles that govern the geography of the real world. The possibilities are fantastic.

Not yet practical, unfortunately.

More usefully, I would think that you could generate elements of the landscape randomly - for example, random trees, if they are generated from scratch using fractal systems or generated cookie-cutter style from a selection of different tree sections, can still be a lot more varied than using 7 or 8 models repeatedly. The same could go for rocks and other static scenery.

The ones to avoid, as yet, are random dungeons- in the Daggerfall style at any rate. If you missed out on Daggerfall then you missed a brilliant RPG that had the most horrendous cookie cutter dungeons that used a few selections from about 8 different large chunks placed side by side. The effect was huge and repetitive dungeons (often you would get the same section twice facing different directions) that meant after a while you would save before asking anyone for a mission just so you could reload if they wanted you to go into a dungeon.

I'm very interested in the use of Knowledge based agents (or similar first order agents) in games.

Anyone know of games which use interesting AI approaches to "NPC intelligence"?

When I say AI approach I mean that they aren't just using "if value > 0.5 goto X" or something similar but instead that they use first order logic equivalent algorithms coupled with basic "machine knowledge" to model the agent/NPC behaviour. Kinda like a neural net. So that they become more intelligent based on outcome of your and their own actions.

An [bad ] example would be a mmorpg ai controlled merchant selling goods being able change price on wares depending on current trends among players. Or a NPC in a bar being able to judge from conversation/clothing/etc what interests a player have and thus being able to let him/her know of interesting "quests" available. And, when the player returns remembering what they talked about the previous time and maybe yell a "Hello, old friend" greeting or something similar

I guess that this task of making games more "intelligent" is/will become one of the most interesting areas in the next decade (we all see that FPS are becomming more and more boring and need some new energy

www.gameai.com (under topics/current games) has some good info on games that use more cutting edge/unusual ai technologies.

I think neural nets are really neat, and I've wanted for a long time now to try and create a game that uses them that's interesting enough to be playable, but still small enough and managable to be finishable, not an easy combo to accomplish.

I've long lost the bookmark but I used to have a site that ran through the creation of a simple game that used neural nets so that the tank enemies could zero in on you better and better.

I also think fuzzy logic has some good potential in games, which is what the Sims uses extensively.

I've always really liked the idea of randomly generated game worlds. Being able to choose "generate new game" in the main menu, enter a few parameters ("Yes, I want dragons", "I want it to be Very Hard"), wait for the game to generate the world, then get to play a totally new game has to be one of the coolest things possible....So what do you think? Is random content good? What can be done to improve the results?Is it REALLY good to let the programmers design the world?

I remember the first game I had that generated a significantly complex random game world. Seven Cities of Gold for the Commodore 64. It placed continents and rivers, mountains, villages, etc. very well. I thought that was brilliant at the time. I still like the idea. With good heuristics to assist the random content generator I think it can give you good quality results.

I have heard very interesting stuff about the use of finite state automata to model the behaviour of large groups of individuals by giving them very simple objectives and allowing them to interact. This has been used to model all sorts from Financial Markets to crowds trying to escape from a burning building, with a high degree of reported success. I don't know how well this would work in a game environment but I would think that could be put to all kinds of use in the background of a game.

The trouble with using neural nets and so on is that it is really hard to avoid creating uber-god opponents that never make mistakes- you need to find a way to enable them to get things wrong.

I can see a lot of potential for the use of evolutionary computing in game AI as well, for a whole lot of stuff.

I've always really liked the idea of randomly generated game worlds. ...Unfortunately, all the games I've played that have the random game/random map feature have always been MORE repetetive than predesigned games.

I suspect the secret is to use a variant of "greedy" algorithms. Note: I've never tried this.

Greedy algorithms are used to create sets of items / data. They have all sorts of cunning uses (the first one I ever saw was a LOD engine in someone's diploma project - it used a greedy algorithm to work out what collections of polygons were "probably least significant to a human viewer" and hence minimise popping etc). You tune them by providing thresholds for them to grab new items/data, and they start with one piece of data, then grab everything close to that, and then start again (but now with a bigger set of starting data).

The most obvious gameplay problem I see with random-generated maps/levels is that usually a large section of the level is "pointless". In a film, the director usually doesn't show you anything that's irrelevant to the plot - he doesn't show you that nothing's been happening in the empty street for 8 hours before the car chase zooms through in 5 seconds! Human level designers perform similar filtering. In the best levels, everything has a purpose (which can include "adding atmosphere"). In a random RTS level, your base might be right next to the enemy base, and the rest of the level cut off by impassable cliffs.

In that particular case, pathfinding can be used and levels with less than 80% reachable areas discarded - but you really need to do this for every kind of game-action, not just walking around. A greedy algorithm is a fairly simple and high-performance way of doing this (and it can do the path-finding inaccurately but reasonably well too). Pseudo-code is that you create heuristics for what would make a good level, e.g. "enemy base and player-base not adjacent", "main path to enemy base goes via a major resource (like a gold mine - this sets up conflict in the level, providing for an interesting game)", etc.

Obviously there is still considerable skill involved in deciding the heuristics. You could dispense with the greediness altogether, and just match your heuristics directly against the leve, producing a "score" - but I warn you this is VERY difficult (I've done it a lot for genetic programming, and it's really hard even in simple cases). Greedy algorithms are slightly more random, but somewhat easier to direct in a high-level fashion.

Hope that makes sense .

Actually, re-reading it I've got a feeling it doesn't - really, my point is that you start building your level by picking a starting "area" (e.g. "lump of forest") and then growing the level outwards from there. There's a slight bit of jiggery-pokery involved in making data structures that befit this (because you don't know in advance how much you're going to grow in any direction) - I'd suggest generating the map like this in a freeform data structure until a certain total radius has been generated, then centering that inside an instance of your map-data-structure, and filling in the gaps as required.

Better?

Quote

and the random maps of Warlords 2 were usually better than the predesigned ones.

Yes, I've often wondered about that - although the W2 maps could still have been *much* better (e.g. several unit types almost never got to make use of their special-abilities, which are a major part of the game). But I think it had a lot to do with the fact that the levels were huge compared to the rate you moved AND that you could never build new castles. Compare this to e.g. C&C etc and you see that W2 doesn't let you affect the scenery at all. You can't build anything, and you can destroy very little.

We're really into randomly designed levels (but not random content or gameplay). Imagine your game is a board game. It comes in a box, and there's a finite number of bits in the box, divided into a finite number of game elements ("player pieces", "mission cards", whatever). The trick is just like in board games that makes them fun - not knowing what's going to happen next. Remember the Chance deck in Monopoly? That was a good way of making a totally mindlessy boring game merely mindlessly boring.

There's a long, windy extrapolation to video games, but you basically want to achieve the same end result: an infinite variety of situations based on a small set of content strung together in unforeseeable ways.

It works like a charm for indies because one of the biggest costs associated with game development these days is designing tons of content in an effort to out-Hollywood some other developer. "Like Doom3, but with bigger levels and more weapons!" etc. Bugger that! Creating games which are basically content-based is a killer for indies.

Unfortunately it's pretty bloody hard to do. The reason why level designers exist is because people can create infinitely more subtlety and variety than a simple algorithm can. So randomly generating levels may be possible but if you're trying to create random levels for a content-based game it'll still fall completely flat on its face.

The ultimate random game is NetHack of course. The object of the game is clearly not to see what all the different levels look like; it's all about the wacky things that happen to you, and how all the wacky things affect each other in unexpected and amusing ways. Even if you nearly always end up dead as a result

The GTA series produces a similar random chaos effect (that usually leads to your death) as NetHack, but with predefined levels. That's probably more about good game design than random input.Just take Diablo, for example. The levels are random, but there's never really any real chaos.

Something similar I've thought about are random and/or evolving plots. Instead of having a predefined plot, you just start the game with some kind of abstract goal (get rich, kill your evil twin, win the powerball), then the NPC and faction AI takes care of the rest, by getting angry at each other, building massive armies of undead and hiding the Fax of Life +2 in the Caves of N'Thar.

This would of course have to be tweaked to involve the player more than the average joe in the world so the player doesn't spend his entire time killing rats in basements.

One of the (several) nice things about randomly-generated content is that you can eliminate any a priori knowledge of the geography on the part of the player, making it possible to play the game over from the beginning without simply "retracing your steps" There are several ways to accomplish this from simply including stochastically-driven events into predefined content, to establishing complex heuristics for auto-generating landmarks and terrain, as well as everything in between. The trick is to do this in such a way that supports, rather than detracts from, the game play.

What I'd personally like to see is more games in which the computer is treated as a "player" rather than simply a set of intelligent obstacles. If you look at games like Chess and Go you find games that have been played for thousands of years by an extremely broad audience, depite the fact that the rules, board and pieces are the same every time you play (Yes there are Chess variants, but they are the exception, not the rule) Computer versions of these games attempt to model the computer opponent as a "player" whose goal is to reach some winning end-state before the human player does. There's no reason other types of games shouldn't be modeled in a similar fashion. It's not *that* hard to conceptualize and I believe it goes a long way toward eliminating repetition in games. Building an intelligent opponent is not always easy (Chess is pretty easy, Go is REALLY hard) but I think it's a worthwhile challenge as IMO it provides a greater opportunity for games that can't be "solved" and therefore have much greater staying power.

The fact that many computer games involve multiple computer enemies to a single human player does not change this thesis, as there is a vast history of traditional games that follow the same pattern, most of which fall under the category of Fox & Geese, or Hunt games. For more information about these and other traditional games, take a look at:

The Oxford History of Board GamesandThe History of Board Games Other Than Chess

both of which are considered authoritative academic texts on the classification and history of board games around the world. I found it surprising how many computer games cleanly fit within the categories outlined in these books, and yet fail to model the computer as a "player" in the truest sense of the word.

That is exactly what I'm talking about - the computer becomes active and suddenly there is a far lower chance of the game being the same twice and rather than different difficulty levels you can play the same against different styles of computer player.

I've been tinkering with a MMORPG for a couple years now. Reading the posts in this topic reminds me of the way I thought when I started this project.

The NPCs in my game live their lives similarly to players. They run around, form groups, kill monsters, gain experience and collect items. Some go even farther and form families with other NPCs, creating tribes that occaisonally war with one another. Other NPCs go even farther than that, and have successive generations that mutate, slowly evolving their species against the environment they live in. This may sound like a success story for these ideas. It's not.

The problem? CPU Cycles.

I'm borrowing a metaphor I read on one of these boards somewhere: players in a MMORPG are like gorillas. They quickly lay waste to vaste areas of consumables. A game like this needs a huge world to provide the space and time needed for your NPCs to create a lush enough world to sustain a PC's appetite for killing. NPCs that know how to behave like players consume far more cycles than dumb ones found in traditional games. They have to observe their enemies, observe their friends, and observe objects around them. This creates multiplicative, and at worst, sometimes exponential growth of cpu cycles for every creature added to your world.

With a 1.7ghz p4, I can run a world that can sustain about 12 players.

I'm not saying this sort of game isn't possible. Just keep in mind the growing cycles generated by legions of intelligent NPCs.

Personally I've found that random content works in few scenarios - and it seems to be more related to the actual play mechanic when it works. Some games require a more predictable world in order for them to work because there is significant context in where things are in the world - so you spend a lot of time teaching a random world generation engine to put things where it 'makes sense' and then try to throw in some randomness so everything doesn't look the same. Unfortunately it just doesn't work well in many instances. The developers who did XCOM were working on the sequel for Bethesda at one point (and no I can't get into why that whole thing collapsed on itself) and I had a chance to pick their brain on how they generated their random worlds and basically what they had done really amounted to world templates - a high level prefabrication system. This actually works very well from what I've seen and is currently in the works on my current project... just in 3D

But in terms of context, XCom had you going somewhere random in the world so it just made sense that a random locale would look different. The maps were also relatively small so you didn't really have too much massive repeats. In many 3D games that have tried this, the worlds they want to make are so large than randomization of them just feels random. Even worse are games that give you an entry point and then have the dungeon inside be random - which makes absolutely NO sense

For me, random content is cool if you want to play a game forever. If you want to have focussed gameplay though, you need to have a more predictable environment. I have played few games with random content that worked well when there was an actual goal to the game (outside of shooters and that general genre).

In my earlier post, I alluded to the idea that computer opponents should be modeled on human opponents. This was *not* to suggest, in any way, that NPC's should be modeled on human beings. The fact that NPCs go out and start families, grow food, get old and die in a plausibly realistic way may be completely irrelevant to gameplay if it doesn't factor into the set of competing goals between the computer and the player.

I think it's important to make a distinction between trying to create a infinitely variable "world" versus creating an infinitely playable "game" I think there's a common misconception (or perhaps merely wishful thinking) that if you solve for the former, you'll miraculously accomplish the latter.

Chess and Go are two examples where there is no random content whatsoever and yet both have been played for thousands of years, and will coninue to be played for many more.

Which is not to say that random content can't play a significant role in the dynamics of a game. Poker, for example, is only meaningful as a game given the random arrangement of the cards. The same can be said of the Chance and Community Chest decks in Monopoly, as Cas pointed out earlier. In both cases, the randomness is an intrisic quality of the game mechanics, not simply a feature added for variety. Adding randomly generated geography or randomly placed game pieces may increase visual interest , but unless it factors directly into the mechanics of the game there's a good chance that it'll end up working against you.

In my earlier post, I alluded to the idea that computer opponents should be modeled on human opponents. This was *not* to suggest, in any way, that NPC's should be modeled on human beings. The fact that NPCs go out and start families, grow food, get old and die in a plausibly realistic way may be completely irrelevant to gameplay if it doesn't factor into the set of competing goals between the computer and the player.

I think it's important to make a distinction between trying to create a infinitely variable "world" versus creating an infinitely playable "game" I think there's a common misconception (or perhaps merely wishful thinking) that if you solve for the former, you'll miraculously accomplish the latter.

Excatly! And this is becoming a problem with games as they get larger and larger. As games go for this random gigantic world feel and the distance between players increases, the problem isn't that they world is random - its just that its boring and unplayable. An EXCELLENT case study of this is Asheron's Call 2. When they increased the size of the world, it spread the players out and while this may have been more realistic - what resulted was a world that was devoid of anything interesting to do. Even in MOOs, people are still attracted to other people because at our core we're still social beings. The only way to beat this scenario is to make the entities in the world so interesting that they can be a replacement for regular people. Otherwise they are nothing more than walking signposts.

Never underestimate the power of a game that ENDS or at least has some overall objective. Games that are truly random in nature usually lack this objective or reduce it to 'LEVEL UP' and that gets old quickly and there becomes no point in playing. A case study of this PLANETSIDE. Cool, a world like Tribes that's large and is persistent... and, oh crap, never ends. You take the base, we take another base, etc. The one thing that made Tribes GOOD was that the levels ended and the goal was attainable. In an infinite war with no truly attainable goal (you can level up forever) - there quickly becomes no reason to keep playing... except for the fact your friends are playing.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org