The Semester Project: Self-generating Virtual Environment
I'm interested in seeing if a computer can semi-randomly build a space that fulfils these criteria:
a) The space must be entirely navigable by the player. That is, a player must be able to go to any crucial point in the environment as well as leave such points. In other words, the player cannot get "stuck".
b) The space must be coherent. In this case I mean that the space must have some sort of visual coherency. This does not necessarily mean the virtual space is uniform, but rather that a user can believe that such a space has some sort of internal system or harmony: It cannot "look" random. The space needs to be more like a spawling city than a junkheap.
c) Perhaps most difficult of all, the space, in each of its incarnations, needs to be engaging and novel. That is, each time the user grows or generates a new space, it should be considerably different from its previous manifestations. The player must sense minimal repetition, and should be surprised to some extent within each new space: The spaces cannot be superficially different from each other.
While at a core, basic level I suspect part (c) impossible, especially over a large enough span of time, I think it can be achieved in a limited sense. In any case, part (c) is the key aspect I want to research. Heck, your basic random maze generator fulfills criteria (a) and (b).
At some level, I suppose this would be maze generation, although I hope that there's more to it than simple rectilinear line drawings. Hear's a few ideas of how I plan to build such a space:
Random Square Kilometer of the Inland Empire:
Streets and blocks are basically square, there's a cluster of fast food joints every x blocks, a best buy, some residental homes or apartments, zoned accordingly, and probably a section of freeway nearby. Have a database of business and street names to choose from and *bam*, here's your little piece of Los Angeles County. To those skeptics (and cynics) who think this cannot fill rule (c), I'm curious to see how far such an entity will go. It would be a little like having your car break down, and you're forced to navigate an unfamiliar territory built with familiar building blocks.
Give Us Color:
A more abstract space...basic, primal elements like color and shape would be called into question.
Give Us Climate:
This would probably extend more toward wilderness, although I building could certainly be involved. The space will be given randomized terrain (probably a heightmap base), with lifeforms, weather, and a general climate layered on top.
The midterm, as mentioned below, will be the stereo maze game. I'm stil experimenting with the limitations of the anaglyphic shapes, but it will probably be a case where the main action is in 2D, with crucial activity occuring within a limited 3D (that is, the z-axis, or "depth" dimension) that needs the stereographic cues to successfully navigate.
No pic today, just a short, but pretty important addition: I've gotten all the camera variables controllable by the user (aperture, eye separation, etc.), as well as corrected the camera alignment. The cameras are perfectly parallel, and I've implemented the frustum-clipping needed to get the overlap.
The game itself will gear more towards a funhouse mentality, a player's avatar trying to make sense of the environment. Anaglyphic 3D is a very overt optical illusion, made using a fairly simple process. In other words, you know that your eyes are getting tricked...this has some common ground with various "mystery spots", and other optical illusory spaces.
The game will, in short, be a maze. Navigation will be difficult, as the shape of it will constantly change, taking advantage of the silhouettes, occlusion, as well as changing the view angle and stereo-3D-ness. Imagine a maze, for instance, where you can only detect obstacles with the stereographic depth cue. Turn off the 3D (or make the display monocular) and the vista falls back into a series of 2D shapes. I suppose an analogy would be being thrown into a "magic eye" maze, where all you can do is see visual noise unless you concentrate long enough for the walls to "pop out". Hey, at least here you have cool, new-wave shades.

An hour later than my usual post time, hmm...well, here's an image of my latest progress in the worlds of OpenGL and anaglyph 3D. Got user input, movement, and fog, but perhaps the largest development comes from implementing object lists. While I only have a vague idea of how they work (like most of the code I'm duct-taping together), each of those pillars is an instance of a single 3DS file. It's really pretty neat, and beats hand-drawing shapes every frame.
Actually, the biggest progress today was organizing and gaining a better understanding of the code. I had to learn how to adjust the focal length and aperture of the virtual cameras eventually, as well as aiming them, pushing and popping matrices, dealing with relative coordinates...I still have volumes to learn, but I think I know a little more about openGL (and anaglyphic imaging) than I did 24 hours ago.
Next: more code cleaning, plus formulating a game that will jive with the tools I have. I don't know if I'll stick with the Gradius-type model (it seemed the simplest thing to demo at the moment), but I do have a few ideas of where to go with this.
Today's talk still just scratched the surface of some very interesting subjects. History has always been an important (and rather interesting) aspect for me, and I'm glad Erkki looked at a lot of work done before the seventies. While a lot has changed in the last few decades, a lot of it was either anticipated or done before. There's a lot that people don't know about their past...for centuries, locals living around the Parthenon could not tell you why it was originally built.
Somewhere between "It's all been done" and "It's a new era unlike any before" exists a view of the past more interesting than these two blanket statements combined. Innovation does not occur in a vaccuum, and reincarnated inventions (stereoscopic photos, say) were undoubtedly different in each of their lives. Why things were different, as well as how they were the same, invite study and often provide amusing answers.
Looking into the roots of modern interactivity, specifically games, has been a topic of research for me. Video games today still owe a lot of their characteristics to the old arcades that go back to the last turn of the century. The disorder of seeking constant stimulation that was described, coinciding with the rise of assembly-line occupations, also caught my interest. "Automatic Amusements" with all of its implications, perhaps sums up many of the themes in that section of the talk.
Finally, I've been thinking about the "levels of interactivity": Interruption, Selection, and Creative Conversation. I've been known to say that the reason why so many games are violent is that it's easier to make an artificial character attack you than to talk to you. Computers still can't handle language that easily, and when they do, it's usually through a fair amount of trickery. Trickery that begins to question how creative most human conversation is.
However, if we expand "conversation" to mean "an extended, complex mode of feedback", the issue may start to get easier. Extended, open ended simulations could arguably be conversations, giving outputs that result in very unforseen consequences.
I'm wondering if one could compose an environment-the computers method of communication, if you will-the user doesn't so much "talk" to the machine, but converses through their actions within the environment. This has been done to an extent in a few places, again usually with simulation in mind. The sim games use it as part of a game mechanic, and toylike educational software could also be said to have this dynamic.
At any rate, this "creative conversation" idea will be something to think about as I look more into self-building environments. Complex methods of interacting with a virtual space, beyond solving a contrived puzzle, slaughtering its inhabitants, or "winning", might be the decent precursor to conversing with a machine. In terms of conversation, actions, even virtual actions, can still speak louder than words.

OK...now it can read a 3DS file. Those of you who have seen "Yuun" may recognize the model.
As for how to do it, I got good guidance from gametutorials.com.
Next Step: Consolidate and organize. You can actually see the bubble gum and duct tape inside the source code.
I'm also going to add in some ability to navigate the model, change focal length, etc.

Yeah it's a rather boring anaglyph image, but it's taken from an OpenGL program I finally got working. This pyramid actually spins within a 3D space. I used a NeHe tutorial (#5), combining it with quite a bit of help from here.
Word of advice: Read all the way to the bottom of the page before you start coding.
Next step: Build in a model loader, perhaps something that can handle DXF or 3DS formats.
Okay, here are a few ideas I've been thinking about developing. They would all, in one way or another, be considered a computer game at some level, probably 3D, although I hope to us, abuse, subvert and in a few cases revert many conventions that have formed over 30+ years of electronic gaming:
City Without Time
Cities grow and change like some strange macroorganism. Many places and structures last lifetimes, while others vanish before we even know they exist. How many times have you wandered by a building under construction and struggled to remember what house, shop, or park was there before?
The game will take place in a city that constantly shifts through its history…but never all at once. An apartment building may change into an office block and then fade back into primal orange groves, while a bookstore next door may remain static for the time being. The most disturbing times are when sections change to ruin…perhaps reminders of a dark chapter in the city’s past, or a grim foreshadowing of its future. People…perhaps ghosts, maybe just memories, inhabit these places, but also change. You may not even notice that the man who gave you a magazine at the newsstand was different than you saw yesterday, but could have been the same one you say a month ago.
The narrative would revolve around the player character figuring out why the city has come to exist in this manner. Exploring the ever-changing city would be the primary means toward this end. Indeed, the game may be more archaeological, or forensic, following the mystery-novel type of dynamic of piecing together something that has already happened. I guess it could be a like a Film Noir undertaken within a gigantic mesh of overlapped time lapse movies.
Twilight
Set on a tidelocked world, where one side of the planet is always dark, the other always day. The only known cities are at the edges of the planet, where the sun exists in an eternal sunset (or sunrise, depending on your outlook). Exploration would be a key component to how and why the user would interact with this environment. The current plot I have projected onto the world involves its inhabitants’ discovery of the properties of electricity, and how it may be harnessed…
Therion
An idea I've been thinking about for a while...a game using a "show, don't tell" philosophy with regards to menus and dialogue. The protagonist is an alien beast, analogous to a lion or wolf, whose world is invaded by two human, warring factions who proceed to use the planets resources to further the war against each other. The beast's path manages to cross right in the middle of the conflict...With no coherent dialogue, the enviornment should gve the exposition needed for the player to understand what is going on, even if the character they're playing cannot fully comprehend the forces at work. I've also been toying with the idea of transcoding alien senses, like scent, to a visual form that the player could use.
Yuun: The Patchwork Universe
Another "silent", dialogue-less piece I've been thinking about. The “Patchwork Universe” is called such because several worlds are basically within walking distance of each other, entered through a Swiss-cheese network or portals. These range from a freeway-covered, artificially lit world to molten glass bubble islands to floating iceteroids. All of them also seem to be enclosed as well, not a sky among any of them. The general look is kind of meant to be more computer-ry, simplistic, like Rez or Tron.
The plot would involve two warring factions, each strange, silent, semi-machine like races. They fight over a substance that looks like liquid visual noise...a sort of supercommodity that can be worked into any physical object by modulating it or shaving out extraneous color wavelengths. The protagonist needs to work to stop the conflict, as well as find out the nature of this patchwork universe.
While I hope to have this game in 3D, I have authored a small 2D game based on the ideas here.
With these ideas I'm more concerned about different uses not only for existing technology but existing conventions within a media. I'm trying to figure out new ways to engage a user/player, express a certain type of visual aesthetic, as well as communicate a narrative.
It should be noted I have other interests...I've been browsing planetary data collected by NASA (very interested in martian missions right now), VR, especially in relation to virtual enviornments, is of great interest, and I have a few of my own ideas on the subject of location based interaction.
This is part one of a lengthy post. As the title implies, this is the links portion of the CTIN 548 post:
-World Building-
Codex Seraphinianus: http://www.io.com/~iareth/codindx.html
Everyone who has talked to me in the last year probably wants me to stop talking about this book by now. I still rank this as one of the most intriguing books I've ever heard of, in concept, exectution, and implication. A surreal encyclopedia of an alien planet (though oddly similar to ours) written in an as yet undeciphered language. There isn't too much on this site, but there's more here than anywhere else I've found on the 'net, plus it has a few decent links to Serafini's other work.
http://www.hut.fi/~vesanto/world.build.html
Focus of role-playing game stuff, but has a lot of good links to externals sites as well.
http://www.io.com/~eighner/world_builder/world_builder_index.html
A link to a few other links, plus a long checklist.
-Technical Stuff-
http://www.gamedev.org/yabbse/
http://nehe.gamedev.net/
OpenGL Tutorials, among other things. I think it was michael Steffen who posted this earlier, but nehe especially is a great site that I've been using.
http://astronomy.swin.edu.au/~pbourke/opengl/redblue/
Anaglyphs in OpenGL. I like anaglyphs.
http://www.rainbowsymphony.com/3dlinkz.html
3D (Stereo, not polygon) links page
http://www.3dluvr.com/
3D (polygon, not stereo) page
http://www.spin-studios.com/articles/
A few more game development articles and applications
-Aesthetics-
http://fantastic.library.cornell.edu/
At one point I was specifically looking for creepy woodcuts. Found 'em.
http://theimaginaryworld.com/rayart.html
At one point I was specifically looking for creepy art from 50's animated commercials. Found 'em. Seriously...they give me the willies.
http://image.ox.ac.uk/
Facsimilies of old manuscripts
All the links I have of "sprite" databases that had graphics from old video games are defunct, although there are still a few around...
Whew...I've got more, but I need to get to my semester proposals. Those'll be up in a short while...
OK, here are a few ideas for what I might like to do this semester:
1: Something Anaglyph
I’ve been experimenting with anaglyph, the “poor man’s stereography", and find myself as interested in its inherent limitations as its strengths. I’m working on a few ideas for games, fairly simple ones, that use hijacked anaglyphic techniques. Right now I’m looking at how far I can get with a piece that only uses silhouettes, the only depth cue being stereoscopic (and perhaps some parallax). Some of the animations and backgrounds I’ve been toying have had some interesting results, and I think that a very engaging, dynamic atmosphere could be expressed using this and other anaglyph techniques.
I’d either use Director or OpenGL towards this end, both show promise.
2: Grow Yer Own Enviornment
The moment I heard the two phrases “Artificial Life” and “Architecture” together I immediately had associations similar to “Peanut Butter” and “Chocolate”. Some sites I’ve found on the web seem to have also associated these different but possibly symbiotic ideas in a few different ways; I myself am curious to see if, given a set of initial constraints and variables, a computer could create an engaging place for a user to explore. The interior of buildings, or terrain, or cities (such as “create a random 2 square miles of the Inland Empire”) could all be interesting…the major problems would involve avoidance of blatant repetition, as well as generating something interesting enough for a person to want to explore.
3. Oscilloscope Terrain
I’ve mentioned this before, but I’m still interested in its implications. For those who just entered the blog: If you set the WinAmp oscilloscope to “expand” and “fade out”, as the waveforms change and leave behind afterimages, it looks for all the world the surface of a planet. Fine, even waveforms resemble rolling hills, shouting and complex sums end up looking like desert badlands. My idea is to have a psuedogeological map generated by the sound or musical piece of one’s choice…it would be a matter of transcoding the sound data into a heightmap, using a library like OpenGL (my current plane of action). Ultimately I’d want to texture map the resulting geometry to make it look as much like an actual landscape as I can. The whole thing may end up resembling a Michel Gondry/Chemical Brothers video.
Oh, I originally mentioned this in relation with the projection system in the ZML…the added immersion could prove very effective.
I've a few more ideas, but these are the one's I've been able to write out the most coherently (you can imagine what the others are like, then). I'll be posting some other ideas as well, although these would be for a longer-term project.