World Building as a 'Game'
I doubt this is a novel concept. The main hurdle I see is one of implementation and presentation. When I first played Myst I was enthralled. That led me to the novels that were written in the Myst mythos (I highly recommend 'The Book of Atrus'. One of my all time favorite books even years after the original allure of Myst has faded). It occured to me as I read it then that it would be incredibly fun to have the skill to write Books that link to different worlds you can describe. You could describe anything you could think of, go and visit your world, and see how your language was interpreted. At the time I thought it was similar to programming (which I had recently started to do), and in many ways it is. But the difference is in its determinism. The way it's described in Myst, I see writing books as having more of an 'oops' quality to it. A certain unpredictability. Like when Atrus tried writing a ship into a world. It worked, but the ship was lodged directly into a mountainside. In programming, you only get exactly what you program in. As it's described in Myst, writing Books is more like throwing paint of canvas or something like that. All sorts of unpredicted elements come in to fill in any gaps that weren't explicitly described, and occassionally you get elements you weren't planning on in the least. I think technology exists now (probably has for a while) to build a 'game' that would take descriptions of a world the player gives and build a world from it to explore using algorithmic techniques. One of the large hurdles I see is deciding how to break every element in a virtual world down into simple parts that can be recombined in such a way as to produce an emergent world. I believe it's from such an emergent system that the feeling of unpredictability would come from. In Myst, a successful book had descriptions of air currents and soil composition and chemistry, so creating the complete list of elements to be combined together would be the bulk of the developmental work for such a program. This is what I'd call implementation. In Myst, there were thousands of words to describe all the elements. Which leads me to my next point: presentation. While you could just develop a fairly standard scripting language (Perl or something like that) for users to use to describe the worlds, I think you'd be missing out on a certain amount of possible aesthetic quality. AirCurrents = NORTH; just misses the mark for the aetheral quality something like world building should have. However, you're limited in what else you can do. People have QWERTY keyboards to type with and mouses to click with. You could have a whole language developed that uses pictographs, like Chinese or the language the D'ni use in Myst, and have the user select the symbols using a mouse or keyboard combinations, but that has problems too. In addition to having to learn a whole language, users couldn't really be expected to produce worlds with any sort of speed. Mouse menus and keyboard shortcuts really work best with a limited set of commands. Ideally the user could write down their worlds in a physical book and somehow give that book to the computer to construct a world from. That hardly seems possible to me though (handwriting analysis in and of itself would be a full time project, not to mention logistical concerns of somehow scanning the pages into the computer). This is really where I'm stumped. I'd like to see other people's ideas on this. There are many practical solutions, but for a project like this to really succeed you'd have to stay true to a certain aesthetic quality, and that becomes really difficult with decidedly non unique input methods. [Edited by - Numsgil on January 23, 2006 5:27:11 AM]
[size=2]Darwinbots - [size=2]Artificial life simulation
Quote:
Original post by Numsgil
I think technology exists now (probably has for a while) to build a 'game' that would take descriptions of a world the player gives and build a world from it to explore using algorithmic techniques.
For real? man, you got to find a download for it. It can save me alot of time creating models and enviroments in my game...
Actually, this technology is used in MUDs for about 10 or 20 years.
-----------------------------------------Everyboddy need someboddy!
What really convinced me something like this was feasible is the clip I saw of Will Wright talking about and demonstrating Spore.
Unfortunately, algorithmic techniques are relatively under-developed compared to the more mainstream 'design all the content by hand' method. Still, I think this is very possible. Definately not easy, but possible.
Unfortunately, algorithmic techniques are relatively under-developed compared to the more mainstream 'design all the content by hand' method. Still, I think this is very possible. Definately not easy, but possible.
[size=2]Darwinbots - [size=2]Artificial life simulation
Quote:
Original post by someboddy
Actually, this technology is used in MUDs for about 10 or 20 years.
Procedural generation yes, but the question here is about the interface.
The writings of Myst speak often about finding a right balance between the elements and energy. This balance between, and a specific composition of these elements could be expressed in a painting.
If you add symbols to the mix it might make it more interesting. For example a simple for NORTH colored in blue might mean a sea to the north. If you follow this with a brown symbol for NORTH you might end up with a lake with a mountain range to the north. Composition between the symbols might be of influence here.
I like the idea of color being used as part of the descriptive language.
I was thinking about it some more, and if you were to use an actual language you could have certain keys on teh keyboard map to specific strokes. Symbols could be built up by adding strokes together.
The nearest equivelant I have any experience with are music sheet programs. The strokes would be like notes, and the symbols would be like chords.
Of course, the user would have to learn a new language. Memorize symbols and strokes and all that. I'm not sure if this would be a feature or a liability. It would probably scare off more casual users, but it would just drip aesthetic. This could be made quite managable if the editor would give you tool tips for what the symbol you have presently means.
When you say 'composition between the elements', what exactly do you mean? As I read it I think you're meaning relative order, but maybe you're suggesting something I'm missing?
Order definately matters I think, but I'm not sure exactly how you'd do it.
Also, you'd have to decide some way to differentiate between an adjective form and a noun form of a symbol.
Like:
copper (noun)
copper (adjective) statue
copper filled (adjective) mountain range
That's really out of my current skill set. I'd have to do some research into linguistics.
While I'm on the topic, I'm thinking that the compiler or world builder or whatever you'd call the program that converts world description to actual explorable world would fill in gaps in information that isn't provided. 'copper statue' could be interpreted as a statue of a horse, a man, a tree, etc. of any dimensions. It could be 6 inches or 6 feet. That's where I see the fun really comming from. The world inventing information you didn't provide it with.
Also, locality is a major issue. You'd need some way to describe location to do anything more complex than a homogenous lang mass. Describing things in terms of a cartesian grid doesn't seem right to me. I see some unit of measure for length as being absolutely necessary, but you also need some sense of relative position.
Actually, I think some sort of polar coordinate system would be best. To describe a new 'something', You'd select some (previously defined) landmark, give an orientation from North, give a distance (and maybe an elevation difference), and then describe the object.
The result is a sort of interlinked web of the relative positions of landmarks.
I was thinking about it some more, and if you were to use an actual language you could have certain keys on teh keyboard map to specific strokes. Symbols could be built up by adding strokes together.
The nearest equivelant I have any experience with are music sheet programs. The strokes would be like notes, and the symbols would be like chords.
Of course, the user would have to learn a new language. Memorize symbols and strokes and all that. I'm not sure if this would be a feature or a liability. It would probably scare off more casual users, but it would just drip aesthetic. This could be made quite managable if the editor would give you tool tips for what the symbol you have presently means.
When you say 'composition between the elements', what exactly do you mean? As I read it I think you're meaning relative order, but maybe you're suggesting something I'm missing?
Order definately matters I think, but I'm not sure exactly how you'd do it.
Also, you'd have to decide some way to differentiate between an adjective form and a noun form of a symbol.
Like:
copper (noun)
copper (adjective) statue
copper filled (adjective) mountain range
That's really out of my current skill set. I'd have to do some research into linguistics.
While I'm on the topic, I'm thinking that the compiler or world builder or whatever you'd call the program that converts world description to actual explorable world would fill in gaps in information that isn't provided. 'copper statue' could be interpreted as a statue of a horse, a man, a tree, etc. of any dimensions. It could be 6 inches or 6 feet. That's where I see the fun really comming from. The world inventing information you didn't provide it with.
Also, locality is a major issue. You'd need some way to describe location to do anything more complex than a homogenous lang mass. Describing things in terms of a cartesian grid doesn't seem right to me. I see some unit of measure for length as being absolutely necessary, but you also need some sense of relative position.
Actually, I think some sort of polar coordinate system would be best. To describe a new 'something', You'd select some (previously defined) landmark, give an orientation from North, give a distance (and maybe an elevation difference), and then describe the object.
The result is a sort of interlinked web of the relative positions of landmarks.
[size=2]Darwinbots - [size=2]Artificial life simulation
Quote:
Original post by Numsgil
When you say 'composition between the elements', what exactly do you mean? As I read it I think you're meaning relative order, but maybe you're suggesting something I'm missing?
I was thinking along the lines of the simplified grammar you propose. A grammar would probably be more durable but using composition for this might be more 'artistic'?
With composition I don't just mean 'order from left to right' but also up or below, and the distance. Afterall, in my example a propose a canvase or painting and not just a script.
The balance between the elements might be an important concept. For example after you have defined a probably nice world you might come to the conclusion that it has to little energy to support much life. You might decide to leave it or add some 'unfocused' energy (that is, you add the energy color to the painting but not in a specific symbol) that will give unexpected variety.
Quote:
Original post by Numsgil
What really convinced me something like this was feasible is the clip I saw of Will Wright talking about and demonstrating Spore.
Unfortunately, algorithmic techniques are relatively under-developed compared to the more mainstream 'design all the content by hand' method. Still, I think this is very possible. Definately not easy, but possible.
Those "algorithmic technoques" you talk about are not as intelegent as you might think. They can not do the thinking required to make a complex model. What they do is stuff like calculating all the polygons in a sphere instead of having to premodelling them. Sure, there are more complex algorithms, like the ones that creates terrain, but they need a pre designed data to produce results you can put in your game. For example, terrain algorithms need a pre designed height map. Sure, you can make it random, but you will get very limited results.
Every model in a game must be either pre modelled, created by such an algorithm, or a combination of the both. The creature creation in spore is an algorithm that combines different models into a single model. Yes, it is a very advanced algorithm, but still far behind from what you want. It can not generate a body with 3 legs. It can only attached 3 pre modelled legs to a pre modeled body.
If you want to make the game you described, every tree, house, lake, animal and so on will have to be pre modeled. No algorithm will make it for you.
-----------------------------------------Everyboddy need someboddy!
Quote:
Original post by someboddy
Those "algorithmic technoques" you talk about are not as intelegent as you might think. They can not do the thinking required to make a complex model. What they do is stuff like calculating all the polygons in a sphere instead of having to premodelling them. Sure, there are more complex algorithms, like the ones that creates terrain, but they need a pre designed data to produce results you can put in your game. For example, terrain algorithms need a pre designed height map. Sure, you can make it random, but you will get very limited results.
Every model in a game must be either pre modelled, created by such an algorithm, or a combination of the both. The creature creation in spore is an algorithm that combines different models into a single model. Yes, it is a very advanced algorithm, but still far behind from what you want. It can not generate a body with 3 legs. It can only attached 3 pre modelled legs to a pre modeled body.
If you want to make the game you described, every tree, house, lake, animal and so on will have to be pre modeled. No algorithm will make it for you.
not true.
there are really sophisticated methods for creating plants and buildings and whatever.
not one algorithm can create everything, but either algorithms specialized for one thing or bunch of controlled, small generic algorithms can do it.
sure there's no magic wand that makes it happen automatically, but there's no need for premodelled things.
or, if you like to put it that way, premodelling happens with script that controls system creating your models,
not by defining the result, but defining possibilities how the result could be constructed.
astu.
Quote:
Original post by Seraphim Quote:
Original post by Numsgil
When you say 'composition between the elements', what exactly do you mean? As I read it I think you're meaning relative order, but maybe you're suggesting something I'm missing?
I was thinking along the lines of the simplified grammar you propose. A grammar would probably be more durable but using composition for this might be more 'artistic'?
With composition I don't just mean 'order from left to right' but also up or below, and the distance. Afterall, in my example a propose a canvase or painting and not just a script.
Ah, yes, I see. That would be incredibly interesting. Most languages are very one dimensional. One character/word/pictograph follows or preceeds another. Adding a multidimensional element to 'order' could be very rewarding.
On the other hand, I'm not sure I want it to turn into the computer generating a 3D world from a 2D painted landscape, which would be the logical conclusion this could be taken to. Spatial relationship between words shouldn't necessarily represent spatial relationships between objects in the created world. Rather, distance should somehow represent relative relationships between concepts.
That's rather vauge, isn't it? I'm thinking of attempting to make an extremely simplistic world generator/editor to see how this would work in practice. If I define, say, 20 concepts and see how they should interact I would probably get a better idea of exactly how this should work.
This sort of reminds me of the idea of the Infinite Canvas.
Quote:
The balance between the elements might be an important concept. For example after you have defined a probably nice world you might come to the conclusion that it has to little energy to support much life. You might decide to leave it or add some 'unfocused' energy (that is, you add the energy color to the painting but not in a specific symbol) that will give unexpected variety.
I like the idea but I'm still a little fuzzy on the implementation. Do you mean colorizing the symbols? Maybe coloring behind them?
Maybe symbols should represent constructs. Trees, plants, land masses, etc. Colored symbols could represent a particular attribute of that symbol. A brown tree could mean decidous while a green tree symbol means evergreen.
The background color underneath the object could represent more abstract concepts, like solar energy or something like that.
You'd have to be careful with the number of concepts you have and the number of colors you use. Using 255 colors is probably too many. Using just 3 (red/green/blue) might not be enough to represent enough attributes, but it would allow you to combine concepts in the same spot.
Quote:
Those "algorithmic technoques" you talk about are not as intelegent as you might think. They can not do the thinking required to make a complex model. What they do is stuff like calculating all the polygons in a sphere instead of having to premodelling them. Sure, there are more complex algorithms, like the ones that creates terrain, but they need a pre designed data to produce results you can put in your game. For example, terrain algorithms need a pre designed height map. Sure, you can make it random, but you will get very limited results.
Every model in a game must be either pre modelled, created by such an algorithm, or a combination of the both. The creature creation in spore is an algorithm that combines different models into a single model. Yes, it is a very advanced algorithm, but still far behind from what you want. It can not generate a body with 3 legs. It can only attached 3 pre modelled legs to a pre modeled body.
If you want to make the game you described, every tree, house, lake, animal and so on will have to be pre modeled. No algorithm will make it for you.
I think you underestimate how powerful algorithmic techniques can be. Yes, there would be limits to the novelty of individual elements. But what it allows you to do is create a more general case object/model that's then modified by parameters.
For instance, to construct a simple tree you might have a fractal algorithm for generating a branch off of a larger branch. You'd have to have a fairly fleshed out method for generating the joint of that branch, but you could construct many different kinds of trees and maybe even a few bushes from that single algorithm.
In your example, yes, you'd have to define 3 legs and let the computer attach them itself. The legs would be the 'elements' I'm talking about. That would be where the majority of production time would be spent.
However, you most certainly would not need to craft each house, tree, or lake. Here's a relatively simple example I envision:
1. A random height map is generated for the world, and a water table established. This is not unknown to algorithmic programming, there are many open source programs you can find that generate this sort of landscape.
2. Player specifications that a lake should be located at a certain spot are 'patched' onto the world. For simplicity, you could simply lower the terrain around a spot until the ground falls beneath the water table far enough.
3. Player specifications that a town should be located next to the lake are taken into account.
Building shapes are constructed by a kind of random walk on a grid. That would give you simplisticly different buildings. The player has not specified what these buildings should be constructed out of, so the game makes an educated guess. There happens to be a forest nearby, so the game chops down some trees and makes houses of wood. (That is, wood textures or something like that).
The orientation of the buildings is decided from some sort of simplistic urban planning algorithm. I could go into some ideas I have on the matter but basically you'd pick a center and build a town up step by step based on the needs of the town as it stands. That is, a x(n+1) = f(x(n)) kind of algorithm.
There happens to be another town some distance south. The game decides the trade relationship of the towns, and constructs trade routes based on natural land dynamics, like rivers and mountains. (Railroad Tycoon 3 does this). Trade routes over land have a chance to become dirt trails, cobblestone trails, etc.
The towns need people. Since that second town is near some mountains with copper, the game might decide that the town produces metalugrical goods. A random decision (since the player didn't specify) decides the town is aggressive. Thus people met in that town would be warriors, with obvious psychological effects and responses.
All in all difficult, time consuming work but not impossible. You just have to decide at what level you're going to define your base elements and with what other elements they interact with and how. That's the basis of an emergent system.
[size=2]Darwinbots - [size=2]Artificial life simulation
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement