Oooh, such a pretentious title! Hopefully, not as pretentious an essay...
Duncan recently mentioned Uru in a comment. Uru is the massively multiplayer variant of Myst, and is a game that has done so badly that even Gametap is taking it off the roster. I only managed to play it briefly, not because it stinks, but because I didn't have much time on my hands.
Exactly why it didn't do very well can be left in the comments section, because it has nothing to do with this post. What does have something to do with this post is the Myst mythos. Mystos?
In the fiction of Myst, putting it simply, worlds can be created by writing in special books. Then you can travel to those worlds.
Obviously, the implementation of this within the Myst fiction leaves a lot to be desired: it's not an easy concept to get close to. Not simply in terms of giving the power to the player, but even in terms of giving it to writers. For example, writers decided this language has numbers in it. I can not imagine any possible use numbers would have in defining a world.
Progressions of numbers, sure. You want a symbol for the Fibonacci sequence, that I could understand. You want a symbol for "3"? Why? The idea of "3" has no purpose in algorithmic world design. It's a flat symbol.
If you didn't understand that, I... um, might be about to lose you completely.
Anyway, one of my long-time interests is the creation of worlds (... obviously?), so the idea of this language has always stuck with me.
Algorithmically designing things is right up there for efficiency. It's obviously more efficient to be able to specify that this next level is a close-combat mission containing lots of shotgun soldiers, and then have the level design itself. You could make a thousand missions a day.
In practice, this works out not so great. In practice, it's dangerously close to a "hard AI" algorithm.
This system has to design a level understanding the parameters of the player and the player's avatar, and make sure to make the level interesting, challenging (but not too hard), paced for humans... and, oh, put in fun microquests and plot elements. Moreover, the design of this level will therefore effect the design of the next levels, because the player and avatar will have slightly different parameters upon leaving the level...
Then, of course, understanding where the level stands in the global game is also important, and basically requires you to solve the whole problem again from the opposite direction.
Creating an algorithm that designs a level is not really feasible.
Which is why the language in Myst fascinates me - as a concept, not as an implementation.
See, when you write in the book, the book doesn't say "this would be interesting, that would be interesting, let's think about it like this." The book says, "physics have been defined as such, materials as such, culture as such... processing..."
This leaves the hard-AI problem on the shoulders of the writer.
But, obviously, the writer couldn't simply write "make a world made of chocolate". The writer would have to write something that the simple underlying algorithm would interpret to mean a world made of chocolate.
This is why the theoretical language would need to include concepts like "high altitude wind pattern", "electron shell progressions", "elemental makeup of the planet..." and it's why "3" is so useless.
Obviously, this kind of language is a ridiculous idea. It's so complex, so interwoven at so many levels, it might actually be easier to create it using C++.
But... then again, it might be possible.
The fundamental problem is that of complexity. How many layers is the player dealing with at once? Can the player define new symbols that encapsulate packages of symbols? Can symbols interact with purpose rather than blindly being executed?
This would let "basic" players do things like write the word "elf" in their book. That word would actually be a complex piece of code that interacts with the algorithm that runs the world. It would try various things to make the world produce elves: any complexities such as lifespan management, genetic weirdities, magic, and so forth would happen behind the scenes.
Obviously, a newbie couldn't design the world "elf". Such a word would probably be more difficult to create than an entire planet from scratch. (Unless it takes the easy way out by opening a portal to a world full of elves...)
So... the design... would need to be encapsulated. There would have to be tools to help you.
Tools to help you design words that design worlds.
Now, here's the thing: not everyone would benefit from the same suite of tools. Someone who wants to design words that proliferate specific items or ideas would need a radically different set of tools than someone who is experimenting with how different universal constants affect things.
So you could have very different suites.
Imagine this as a MMORPG. Instead of choosing a race or a class or whatever, you choose what tool the character can use...
Unrelated problem you may have picked up on: the idea of simulating a universe from beginning to now sounds a little... computationally expensive, don't you think?
Well, I've been thinking about that. What you do is build a language that is specifically geared towards abstracting cleanly. When someone writes down symbols that change the way the universe formed, the system doesn't sit there and extrapolate every atom. It knows how the words act abstractly, and can therefore rapidly extrapolate any given piece of the universe at any given time.
Progressions would be critical to this: you don't want a world that's the same everywhere. If you include progressions, the abstraction algorithm can look at "where" in the progression it "is" and create something meaningful. Sort of like a smart random number generator.
Just random thoughts. What I'm interested in is a system that allows the players to design languages for designing systems. Basically, because player-generated content is crippled by the assumptions your system makes, why not let the players generate a wide variety of them as well?