On Randomly Generated Content In Games
Thanks to Skotos.net for their article discussing randomly-generated content in videogames, in which the author discusses pioneering games with random elements, suggesting: "One of the reasons [classic RPG] Rogue was so popular (and spawned so many children) is due to its generation of random content." But he goes on to point out: "Computers don't have the imagination to make good puzzles... asking a computer to create an interesting puzzle is very similar to asking it to tell a story, make up a joke, or create a riddle." The suggested answer is game elements "placed randomly within the [linear] structure", but with recent random level-generating games such as Toe Jam & Earl III striking out, how far should randomness be taken in games?
There's an old saying that goes, Art hung in restaurants is usually as bad as food served at museums.
Paraphrasing, asking a computer to do level design is as bad as asking a level designer to do math.
This is one of those features that the marketing department loves ("Infinite Gameplay!"), but in practice almost always sucks. It's the rare game (Populous?) where random numbers can deliver a enjoyable level.
What were you expecting?
One of my two "main" programming projects at the moment is a Rogue-like that tries to do for plot what Rogue did for level generation. I put "main" in quotes because it has since been overshadowed by the other main project I'm doing, but I still hope to get back to it someday.
;-) )
For anybody else who would like to take this up, since you could probably finish at least a "0.1" release before I turn back to this project personally, I would point out what is probably "the way" to do that sort of thing. The fundamental problem with modern roguelikes is they are too low-level, where "the dungeon" is an array describing what is there, and "the engine" just manipulates this. Thus, "the engine" is only capable of generating really low-level events, like "X killed Y".
To get a "plot" in place, you need to generate a much higher-level representation of the world to start with. You need to start with what "groups" are in place (cities, towns, nations), maybe run through a routine that does high-level generation of the map (placing these groups in cities, etc.), then iterate down to the next level where the groups are given relationships and placed in actual buildings, then iterate on the landscape again, then build actual people in the context of the groups, then build the place for the people, etc. When you're done, you'll have not only a map like a current Roguelike does, but also an engine with a much higher-level understanding of what the map actually has on it, allowing quests like "Get X out of the evil henchmen's building and return them to Y", etc.
(Alternatively, you can try to "grow" the land, starting by placing down the general landscape, then adding settlements and using some basic economic rules to govern how they grow and interact, then try to create the "game" at the end.)
Obviously in a Slashdot post I can't explain too much, but IMHO at least in the Open Source efforts I've seen (and even many commercial ones) this is the fundamental mistake I've seen made at the architecture level that prevents this stuff from working. It probably seems obvious after you've thought about it for a while but it apparently isn't. From here you can probably fill it out too. (If not, perhaps you should be thinking of something else to do.
One warning: You're going to need (or really wish you had) some actual Computer Science to pull this off well, specifically the study of expanding unrestricted grammars into final statements, which is essentially what this is, especially when it comes time to add links between the entities (for instance, antagonism between a "legitimate government" of a town and the underground theive's guild). It's not easy, but IMNSHO it's the only way likely to work.
I'm quite certain this is possible and I have a design half-sketched out, I just haven't had time to implement it until my other project becomes at least self-sustaining.
Dave Chess wrote an automatic level generator for Doom, called SLIGE. Search against "SLIGE" and "doom" and you'll find it on top, add "chess" if you wish.
I've never actually tried one of these levels myself, but it is automatically generated content for a game, pertinent to the thread. Imagine a pseudorandom (deterministic, repeatable) in-game SLIGE based on x and y coordinates, a garbage-collecting in-core map, and you could have infinite space to play in. The map keeps expanding in your direction of travel, and it gets thrown away behind you. (There would be some problems of course, especially with switches, objects, and monsters.)
The living have better things to do than to continue hating the dead.
The games I have the most fun with are those with decent random content generators. Done right, they can really add to the replayability of a game. Port Royale has suitably 'open-ended' gameplay (within the confines of its environment) through random mission generation and all the fun of trading.
The thing that really gets me, though, are games that are billed as 'open-ended', infinitely replayably, etc, that are instead cripplingly linear. (Republic : The Revolution is a great example of this - a game *crying out* for decent random mission generators, but instead has a lockstep set of objectives that you have to complete to advance ).
I've had plenty to deal with over the years in randomly-generated OS behavior in Windows, with Blue Screens showing up at very inconsistent moments, and unexplained slowdowns and file corruption.
I guess it is all a game?
I've been playing Nethack seriously now for the past 6 months, and not serious for the past, what, 15 years?
That game is such a classic, and it's mix of randomness and expected elements make it a fun, different experience every time. And while there exists that element of randomness (what will that scroll labelled FOOBIE BLETCH do?), you can always expect to find the Oracle and this level, or the entrance to the mines on one of these levels, etc.
In conclusion, Libya is a land of contrasts.
Thank you.
Geometry was the same for the SAME CHARACTER, but when you switch characters (or games), it re-generates the level. There are several locations in the games that are hard-coded, but often how to get to those places are dynamic.
Take Ancient Domains of Mystery - This is a roguelike game in every sense of the word, and the only maps that are static are the world map, towns, and a select few dungeon floors.
There is only one pure level-up dungeon, the rest all have limitations and hard-coded stuff - ie the first dungeon will always have 7 floors, and it's associated quest will climax at that point. The floor layouts are always random, and in a roguelike game (where death is permanent) not having the same floorplan all the time is a GREAT benefit - I doubt I'd have half as much fun with it after the first 5 times through the beginnings of the game.
If I wanted to play games that appear randomly, id get a girlfriend.
> Computers can't be creative,
> at least not in the way humans _can_ be.
Oh, poppycock.
We humans have a very nice, cushy, arrogant view of human creativity. I see it in movies, where the humans win over the 'calculating machines' by creativity or love or some hogwash like that. Scifi's traditionally very bad about this as well.
My degree is in psychology with a tendency toward physiology. The brain is a deterministic machine -- or at least, as deterministic as anything else. This hypothesis is as strong as nearly anything else in science: it fits the data well, and has yet to be proven false.
A statement like "computers can't be creative" has the assumption (correct me if I'm wrong) that a deterministic, calculating, "pure-logic" machine like a computer isn't capable of producing the same level of creative work as a human. I would argue that a human is just as deterministic as a computer, though the calculation and logic functions in a very different fashion.
I say the problem is in the algorithms. I've seen properly trained computers draw brand new Picassos and compose fugues as good as anything from Bach. "Oh," the critics would say, "they're just taking the input data and modifying it and reproducing it."
Yes. Yes they are. And so are you. That's why we have a concept of 'inspiration.' Of 'derivative works.' That's why each song that's written, each house that's designed, isn't a completely new, off-the-wall creation. That's why we can categorize things into 'styles' and 'genres.'
A properly trained (read: programmed) computer could generate levels for your-game-of-choice that would be on par with a human designer. And chances are good the computer would take some directions that the human wouldn't have thought of.
By contrast, I doubt Bob off the street would design a very interesting level for Counterstrike. It's all in the input and training.
The game uses a randomly generated battle zone, with the random seed based on the name of the zone. The player selects the name of the zone by picking three keywords from three separate lists. This can be seen in more detail on gamefaqs .Hack keywords effects
While the zone weather, day/night, and element type are determined from the keywords, while the locations of enemies, scenery, and the dungeon entrance on the map appear to be random. They are consistent for each visit to the zone, so the RNG must be seeded from the combination of keywords. The dungeon maze within the zone is also randomly generated, by connecting various prerendered rooms by matching up doors. The level generator only needs to connect rooms so that the doors match up and rooms don't overlap. Rooms may have multiple doors, allowing for loops and dead-ends. Dungeons are multiple levels deep, controlled by the difficultly level of the zone.
Some keyword combinations are "special" and contain plot elements and bosses and/or cutscenes. These keywords combinations are revealed within the game, or by watching the related anime series.