As usual, Here Be Dragons can be grabbed here.
![]()
Continuing work on the viewing program for Here Be Dragons-getting a stable version of the motion blur hack I've learned. It's a good way to hint at the motion the creatures use (I'm curious to see how the cities turn out).
The following are three views of a creature, over the period of a few seconds. I'm using the GL_ONE technique, which is basically analogous to overexposure (pixels just keep brightening if they can help it). This could be interesting as a camera setting, along with the panoramas and stereographic pics...

As usual, Here Be Dragons can be grabbed here.
![]()
I'm working on separating out a program that will allow one to look at a city/creature individually, and make adjustments.
I was digging through my old stuff, redoing my demo CD/Reel/Tape and found a few things I realized I haven't made public yet. Or at least net accessible. One of these was a little game I called "Yuun: the Patchwork Universe". This was waaay back in undergrad-I think I used footage from it on the reel I used to get into USC.
This executable should run fine on a PC, although I haven't tested it extensively. Roughly 8.4 MB zipped, 16.5 unzipped.
Screenshots:



Looking back this was one of the games that made me think about procedural/generative content. Each background screen took a fair amount of work to author, and took by far the most work to do. The programming and basic level systems were cake in comparison.
I would have done a few things differently, looking pack. Ultra top priority is cleaning up a few graphics, especially in the score/lives layout. The scroing system itself is pretty brutal (complete the game a see for yourself). Had to have the melodramamtic text at the end as well.
I may come back to this, I still have a few ideas for it, and am fairly proud of the protagonist I made. I actually think the little guy would do well in a 3D platformer as well-I just got started on all the moves he could do.
As usual, Here Be Dragons can be grabbed here.
A major overhaul is in the works!
Towards procedural languages:
This has been done, like many things, quickly and incompletely. Most "invented languages" are treehouse-club cyphers-You simply replace "A" with one symbol, "B" with another, and so on. The vocabulary is still, essentially, english (or whatever local language you want). Take, for instance, the Indiana Jones Ride signs at Disneyland (courtesy of Wikipedia):

This is actually pretty cool, since there is a hidden layer of meaning that's fairly easy to grasp. However, I believe you can take it further.
This approach is incomplete as well. I probably should note that my experience in linguistics is limited to one introductory undergraduate course (still one of the best classes I ever took), taking Spanish in high school, and a halfhearted attempt to learn Esperanto. I have studied a fair amount of structuralism, and I fear some amount of semiotics has crept into this train of thought.
That said...
In terms of written language, here are three basic structures (and are more, and could be much more):
Ideograms (i.e. Heiroglyphics/Chinese). Each character denotes an idea. Many Egyptian Heiroglyphics aren't exactly like this, but this should be enogh to illustrate the point.

Syllabic (i.e. Japanese). Each character denotes a syllable, like "we", "ska", and so forth:

And of course the alphabet (i.e. English, European languages). Each character denotes a basic vocalization-This system apparently evolved independently a few times, often from other systems.
If you theorize that a vocabulary can consist of nouns, verbs, and adjectives (again, not necessary, but let's go with this...)-In a computer generated world all of these elements can be pretty concretely defined.
Nouns:
If with think of a noun as a "thing", or an object, the computer can assign a symbol (or sound) to this object. If objects are similar, the symbols can share similarities-or not. I've already worked on building heirarchical structures, why not apply the same idea to an arbitrary language?
Adjectives:
Objects (I mean computer language objects, suggesting concrete ones) have qualities that are malleable, adjustable, and must be expressed. One might have a "tree" object, but this object also needs a size, color, texture. All of these are adjectives, and the computer, at a basic level, "knows" they are adjectives. Again, one can assign a symbol to each of these variables, or some and not others (a language that doesn't address color, or maps color different would be one example).
Verbs:
This one I find interesting-In a specific game, or even an open-ended walkthrough, your possible actions are limited and generally very explicit. This breaks down after a certain point ("Warthog Jumping" comes to mind), but even "up, down, left, right, jump, use
Now things get a little trickier...
Grammar:
Very hard to do well, easy to do simply. Heck, there's a reason that the L-System genes I use to build the creatures, cities, and terrain in Here Be Dragons are called "grammars".
Tense and Time:
Proper language as most of us know it generally needs to address time and casuality. "Who did what when" and all that. Thing is, quite of bit of this is explicit, or at least explicit enough for a computer to determine. A timer is a crucial to most engines-The computer can know the past, has a good idea of the present, and in many way can fortell the future (especially in deterministic environments).
Context and Subjectivity:
Computer translation programs are proof enough that this stuff is friggin' hard. "The spirit is willing but the flesh is weak" can turn into "The wine is good but the meat is spoiled". While a human can tell the difference between the two, a computer generally can't. Many philosophers think that this sort of stuff is the crucial, perhaps the only part of true language. Perhaps, but for now the best way to generate this sort of thing is to grow it. If I gave users a dictionary of a Here-Be-Dragons-like world in an procedurally generated language, they would build their own ideas, and a "dead" (read: static) language would change and develop-idioms could arise, common terms would solidify and perhaps change.
How:
One could assign random symbols to each sign or signifier. This is where a lot can become arbitrary...I could see L-Systems forming the lines to written symbols, these could evolve or fuse and breed in much the same way the virtual creatures I’ve made can. One could develop a pidgin (or modern English, with its Latin, Germainic, and French roots) this way. I suppose criteria could influence how the symbols look-Cultures that wrote on tablets and stiff materials tended to use staight lines, curvy characters could be produced much more easily of pliable surfaces like paper.
Stuff like this has kind of been done with programming languages, compilers, #define’s (a deceptively powerful C/C++ command) and the like-Moving it to virtual worlds could have potential.
Now, while I'll be the first to admit these would not be complete languages, the worlds and creatures I've created are not complete either, and in much the same way. Perhaps with user usage they could evolve into proper, complete language. This sort of turns the current problem of natural language processing (like “Facade”) on its head-In many ways this is having humans learn the language of a generated world, instead of having a computer try to learn ours.
Maybe this is like Half-Life’s innovation with Artificial Intelligence. The agents in Half-Life were not more sophisticiated that previous AI in earlier games, but they did shout out to the player what they were thinking (“RUN!!”, “GET HIM!”). This bridge in communication heightened the experience, and people though the AI was rather canny (I certainly did). Parsing a log file of what occurs in a world (“70 Creatures born, 10 eaten, 5 die of old age, 2 cities formed..."), or generating descriptions of what a world looks like into a different, generated langauge could add a sense of versimilitude, while in many ways doing nothing terribly new (computers build log files all the time). That, of course, would be only one use, but I think a viable one.
A few ideas translated:
“Red Tree” => “Tree.(R = 1.0, G = 0.0, B = 0.0)”
“See Spot Run” => (Camera.view.direction) (Object.Spot) (Object.Spot->MoveState = “Fast”)
"Here Be Dragons" => “(Multiple Creature Objects) (At this location (x = 0.0, y = 0.0, z = 0.0))”
“It was the best of times...” => “(Time = -1000) ((definition of “best” may be arbitrary or unclear in world))”
“Look upon my works, ye mighty, and despair” => “(Camera.view.direction) (Location/City Objects) (High level user) (User.Emote = “Sad”)”
I should also note there has been similar research and development along these lines in computer programming languages, and there are all sorts of flavors of scriptiable compilers, compilable scripts, compilers, compiler compilers, metacompilers, etc. etc. Normally these only interest people who are true computer scientists, but these areas could be useful in defining fiction al langauge.
Relations to culture, artificial and otherwise could be interesting-but's that's for another time...
I supposed there are a few who have tread a similar path to this before me, I haven’t done my basic perliminary “prior art” search yet. This will warrant further study...