Monday, October 31, 2005

How far away is the future?

Google employee: "We are not scanning all those books to be read by people, we are scanning them to be read by an AI."

Sun says: "Sun has been quietly applying resources toward building what it considers to be the most versatile and scalable MMOG middleware ever conceived. With the imaginative working title of Sun Gaming Server, the first SDK's will be delivered for free to developers in the first half of 2006."

Quotes from here.

The biggest businesses in the world are starting to think like us. The technophile meme is now entering the mainstream.

My 40th birthday party will be in zero gravity.

Steampunk!

Well, since the engine architecture is so well established, it's time to talk a little about the game's setting: steampunk.

I'm sure everyone knows the term. Mid to late 1800s, in a world where science proved more effective. Steampunk worlds often involve steam-era space travel! Mine doesn't, this game, but will in later games.

The key element in steampunk isn't the technology. The technology is there merely as an enabler. Classic "steam-era science fiction" is all about the colonial era. It's about going new places, founding new colonies, finding new wealth, discovering new truths - and the trials and tribulations thereof, reflected in the eyes of a Victorian culture. For a darker tint, you can show the people back home - the attenuating noblemen, the rising middle class, the falling lower class.

Steampunk drops the importance of the Victorian culture in favor of a more modern "punk"-like culture. It doesn't dismiss the surface trappings of a Victorian culture: people probably still dress Victorian, they probably still talk Victorian, but they don't act Victorian. This is most easily noted in team structure: Victorian culture is big on large, carefully organized teams, whereas "punk" culture uses very small teams governed primarily by force of personality and anarchy.

My "steampunk" universe is driven by the fact that it's easy to fly. The difficulties of manned flight are solved by steam turbines which spin props.

This means that people can build their own planes pretty easily. One culture in particular is heavily affected by this phenominon of manned flight - the main culture in the game. I'm calling it "The Empire" at the moment, but that could change.

What this has led to is a level of connectivity and exclusiveness roughly the same as the early internet/BBoard cultures. Inventors and pilots can travel long distances with fair ease and make a good chunk of money flying light loads (a passenger or some mail). These inventors and pilots accept each other as part of the same "inventor's culture", a meritocracy based on either skill at building aeroships or skill at flying them. A continuous kind of one-upsmanship and "insider culture" results - very much like the early internet/BBoard cultures.

Of course, this rise in the power of inventors results in huge numbers of innovations, mechanical computers being the biggest. However, electricity is not possible in the same way flight is easy. "Telegraph" is not even dreamed of. The fastest way to get a message someplace is to hire an aeroship, unless it's within sight range and you have an optical relay.

The core enablings are still the same. Although most inventors and pilots stay within the civilized world making mail runs, many of them scout out the further reaches of the world, making discoveries, finding things out. The need for coal or oil to drive their engines means they are tethered to an expedition of some kind (usually land-born but occasionally blimp-based), resulting in a detailed exploration rather than a simple "mapping from the air" expedition. Plus, saying "I saw an ancient temple and put it on the map" is far less bragworthy than saying "I saw an ancient temple. We explored it despite the natives trying to stop us and found a jiggywhatzit whirlibag!"

The end result is a rise in small teams and individualism rather than large teams and Victorian conformity. "Steampunk". Closer to "steamhack", I suppose, but "steampunk" is close enough for me.

Ngah! Smegging socialism...

Over the past few months, I've read a startlingly high number of game-design related articles which espouse socialism because "it worked in a game world" (or, just as often, didn't work in the game world). A lot of game designers seem to be of the opinion that socialism is a viable way of governing a world.

Socialism probably isn't what you think. If you think "providing for everyone's basic needs" is socialism, then every game is socialist because every game has no basic needs. Your avatar needs no food, no shelter, no medicine. Unless, of course, he chooses to go out and do things which make him require those items.

Real-world socialism is when a governing body chooses to provide for everyone's needs. Game-world socialism has no need for a governing body to do that - it is a core element of their reality, in the same way that no governing body is required to dole out your daily allowance of gravity.

Real-world socialism's failing is that it needs to take supplies to give supplies. Speaking very loosely, people will then tend to be "takers" rather than "givers", getting worse every year. In a game world, there is no need for a "giver" at all - everyone is a "taker". This means that game world socialism is not the same kind of socialism as real-world socialism in the slightest. (Although the fact that there are so many "takers" is probably one of the major reasons people are so childish in these games...)

The closest we get to a "real-world" socialist environment is in a game-world guild or corporation. These groups often take resources from the guild coffers to supply newbies with equipment that will help them succeed. This is largely successful because the makeup of the world is such that people who don't care about succeeding won't be playing. Another factor is that most guilds/corporations are quite small in comparison to even the smallest nation.

If you're designing your game world, don't think in terms of "socialism", because it's nearly impossible to get into your game, and if you manage it, your game will crash and burn. Chances are, you're either thinking "benevolent anarchy" or "benevolent dictatorship", depending on how much managing of your player base you plan on doing.

There's nothing wrong with a well-thought-out benevolent anarchy in a game world. All the negative stigma of anarchy in the real world doesn't apply to a game world if you design it right, especially if the world is limitless.

I suggest against a benevolent dictatorship, because power corrupts.

Either way, your economy will be mostly free market, NOT socialist. Even the games which those writers called "socialist" have free markets. This is because players like making money, and free markets are the only way to let them do that. (Free market with, in most cases, significant moderation.)

This post really doesn't have an awesome ending planned. I was just getting upset by all the "socialism GOOD" game design essays I've seen recently. :P

PAC Complete!

Over the weekend I finished the core architecture of the PAC engine. Groovy. The only big thing left is bosses/wave scripting!

Of course, the codebase is far from "finished" - the engine will be polished continually right up until the end. But the architecture is there, and the polishing will be quite gentle.

Taking "screenshots" of the PAC engine is, of course, pointless. It's a scripting language. However, to sooth the eyeball, here is an image of my early (but not as early as it was last week) map prototype.

I was very concerned about the map. How would I represent a vast array of underground caverns? Especially since the player shouldn't know about unexplored locations?


Full size

The answer was simple once I found it: the map gets "drawn" as time goes on. The map is powered by a simple PAC script: memes which exist denote zones you have visited. For example, my first mission is "scaffold01". When beaten, it adds the "scaffold01" meme to your list, and in the map script is a line which is only triggered if you have the "scaffold01" meme. This particular map doesn't have any missions on it, because I wanted to show the unadulterated map.

Obviously, the graphics are still preliminary: I'll be giving the parchment "depth", for example, before it's ready to go. But the concept is there.

The script files are simple. Remember, this is not a programming language. It is only intended to do memetic calculations and control game flow. This is NOT TorqueScript. It's PACScript.

For example, the present script for which pilot portrait to return is:

---
? PLAYERFLYING
return Portraits/pilot
return Portraits/pilotonland
---

(Where the Portraits/* is the path/file of the picture to use.)

Obviously, "?" is an if statement. You can just as easily do:

---
? SCRUMDIDDLYUMPTUOUS > 10
{
m- SCRUMDIDDLYUMPTUOUS
CONVERSE
{
pack PilotGraphics
What's up?
}
PAUSE 1 second
}
---

(I don't support line-start white space yet, because I'm actually really unfamiliar with Torque 2D's string editing utilities. However, I am quite experienced with writing scripting languages, so the functionality works just fiiiiiiiine.)

If the pilot is flying, the portrait is the windblown pilot. The "m-" deletes the meme. "m+" adds a number to the meme (or subtracts a number, if the number is negative). There's also "s+/-" for stage adding and subtracting, and "o+/-" for option adding and subtracting.

So on and so forth.

Now I can start on content!

I'm in a great mood.

Friday, October 28, 2005

Scaling Images

Remember when I was whining about how shrinking the portraits made the people look bad in Machine City? Go here, look halfway down the page when they start talking about faces.

!

The core difference, far as I can see, is that the linework and shading are two different faces. When you squint, or are far away, the linework fades and you're left with the shading. From close up, the linework dominates.

Since I have little shading on my portraits, that would probably explain why they look crappy when scaled down.

Fascinating.

Game Spacetime

One of the difficulties of doing either vector math or pattern adaptation on a game is that space and time are not exactly... straightforward. Especially if we want to view it from a player-centric view.

To give you a quick background: a lot of people like to view the fabric of space as spacetime. Roughly speaking, as a four dimensional construct rather than a three dimensional construct. Unfortunately for our sanity, things warp space-time.

Think about flying from wherever you are to Hong Kong. Even if your plane flies straight, you'll still be flying in an arc, because the curvature of the earth will insist you do so. Shortcuts can actually be taken by flying in what would be, viewed on a map, an arc. Measured on the map, these paths are longer. But because they "skip" the curvature of the earth, these paths are actually shorter.

We generally think of maps as being very accurate, even though they have no "Z" component. However, missing these "Z" components means that a lot of little details you'll encounter along the way are missing. A map of Seattle doesn't show you that the whole thing dives a hundred meters down into the sea: as far as you can tell by looking at the map, the road to the sea is flat as a board.

Similarly, our "3D" "map" of the cosmos isn't accurate, either, because it has a hidden "time" axis we cannot see. We pull this time axis out of our butt using gravitic analysis - "The sun pulls us in an orbit". But as far as you can see by looking at a map of our solar system, there's nothing inherent telling you it's easier to drive towards the sun than away from the sun.

Games have maps, too. Whether 2D or 3D, these maps are usually absurdly complex things. In our mind, when we design them, we represent them with an added "time" dimension. Not where the player will be at a given moment, but how the player will be moving while in this part of the map. For example, "This bridge collapses as you touch it, so the player will be running across it". Or "the player has to jump over this wall to proceed". Or "the player has to get to the ax to kill Bowser, so we know how he'll be jumping".

In theory, we can consider these required motions to be geodesics from a game design point of view. That is, straight paths through our "game space-time". Deviation from that path is "unusual", even though adhering to the path requires the player to take action. We know he will take that action, because he has to in order to progress.

It's an interesting task, but is it workable? Well, for some games, time and "map" gamespace are very closely linked. You can draw paths across the level, from goal to goal. Mario has to jump the pipes, Link has to fight the boss, the progression is very clear. This could be called a "play-like" relationship, because the map will pass under you at a given rate ("the speed of play") in a given direction: "choice" is wholly illusory. Time, space, and the map are one and the same, although any given player's "speed of play" will differ.

You can do this for a large number of games without any real notable added complexity. RPGs are easy to do this way, for example. Even MMORPGs can be mapped in this way, both in their worlds and in their skill paths, using a graph for a map.

But this only works for games whose time and space are closely dependent.

What about a fighting game? Suddenly "time" is wholly independent from "location". You're on this little level, you'll keep criss-crossing it with essentially no preferences until somebody dies. And the "optimal path"? Varies based on ten million factors, including how skilled you were.

You can't represent this with a standard 2D "map", even though the actual gamespace is 2D. That's because the gameplay is largely independent of the map: the "memetic gamespace" that the players actually use warps and twists based on where the enemy is, what attacks are in the air, and where the walls are.

The very nature of "space" changes, from a certain point of view.

My vector math is attempting to quantify that by assuming a player will adapt to the situation, depending on their level of skill. If there is a fireball arcing at them, then from my game design perspective, the very nature of space changes such that the fireball can be considered a "bulge" in "time" which the player will "naturally" tend to avoid (or block). When watching a fight, you hopefully don't ever see someone just stand there and get hit by a fireball. They jump or block.

This isn't a player "choice". It is the optimal path - one of two "geodesic" paths. The player won't choose against it.

However, you have to remember that this bulge is in the player's mind. If he doesn't see the fireball, or doesn't grok what it does, then space remains flat and he'll get hit. That said, you can predict average and expert behavior by using this kind of model. (You should also, theoretically, be able to create average and expert behavior in your AI, but the calculations may be too time-intensive.)

This kind of map - with the criss-crossing and bulging - would be called a "time-like" map.

This same model also applies to play-like maps, but treating them as play-like is more efficient.

Can it be done? Sure can!

Remember my recent post comparing a shotgun to a machine gun in Machine City? The real difference is that a shotgun "compresses" space towards the mouse pointer, effectively bringing anything in that swath closer together. It is also a "dip" in "time". The dip is the "same" width, but not nearly as deep as the narrower machine gun dip. And, of course, it's much wider - except that space is compressed, so it's the same width.

It's fairly easy to map the "height" of an enemy within that dip based on their ability to resist your weapon (HP). The further below "the surface" it ends, the more likely it is to die when you fire.

This is a calculation which is considerably more computationally friendly both for you and for your computer than the mathy bits I spoke of before. However, in order to determine the type of "dipping" going on, you need to use those mathy bits beforehand. :)

I hope this explains a bit about why game spacetime is a little more complex than you might suspect.

This can also be applied to other forms of gameplay, from the longest RPG to Warioware. Player-centric vector calculation. :)

And...

Hee hee hee.

Snirk.

*Many Bubbles*

I am always asked by the *many bubbles* here what I *know* about *programming*. Silly *campers*, do not make me *frumple*. I am not *knowing* about *programming*, I am *programming* with my *many fingers*.

What the hell do they expect me to say? List off a twenty-long list of languages followed by the statement "and I can learn more"? Tell me what you want, I'll tell you if and how I can get it done.

Then we can do the *happy dance*, and you can *pay me money*.

Thursday, October 27, 2005

Do you see what I see?

I've talked about the underlying engine of Machine City. It's not the most fantastically simple engine, I admit. It's probably overkill. But the idea is that I can build up a suite of games on this same engine: some produced by me, some produced by players. However, in my engine-based gluttony, I have not gone the way of Doom III: the game is, in fact, a game.

There are a few features I like to concentrate on when designing a game. With board games, tabletops, and LARPs, I like to have:

(A) Clear but highly varied goals
(B) Clear but robust gameplay
(C) Clear user feedback

I plan on sticking to the same rules with Machine City. Of course, some of the people who know me are probably raising an eyebrow, because my general method is to create a huge number of clear goals, clear gameplay elements, and clear indications of gamestate... and then let them combine into something halfway between Frankenstein's Monster, San Francisco, and mud.

Still, almost everyone has a great time, so why mess with success?

In Machine City, there is one primary goal which drives you to take on missions and advance the plot even in the absolute absence of any other urges. In the beginning, it's "exploration", but it rapidly turns into "survival".

However, as is my standard, there are a huge number of clear side-goals. Factions exist - Machine City itself being one. There are various ways to interact with and exploit these factions. Most characters have a kind of goal-state: you can become friends with them, get special upgrades/quests, hear their backstories, and so on.

These goals will allow the player to pick and choose. Is he the kind that hates storylines? Stick to the main path, skip the cutscenes, and never talk to anyone. if you're like me, you'll plumb the entirety of the game, which will be as rich as I can write it once I've hammered out the exact scope.

The gameplay element, at first glance, is clear but not terribly robust: flying a ship around shooting things on a rail through a 2D map is not exactly a new and unusual experience. Especially since I doubt I'll have in-mission upgrades!

But, of course, that's just the "little game". Like an RPG's fighting engine. People loved FFVII, but it's core gameplay element was so recycled it didn't even register as a gameplay element for most people. The key is in how you use that core element.

Three things make the clear and simple game into a clear and robust game:

1) The ability to modify exactly what kind of situation the game is based on. This is done by introducing new levels, enemies, and gamespace elements. The 2D shmup supports a wide variety of paintings upon its canvas, and this one more than usual.

2) The ability for the player to modify exactly what kind of situation the game is based on. The obvious element here is the player's ability to choose who and what he is putting on his ship. A less obvious element is the fact that the player chooses not only which missions he will go on, but which missions he unlocks based on how he interacts with the game world.

3) Setting up each fight with an emotional punch. This isn't easy in a shmup because of the painfully restricted viewpoints. Unless I want to use an exceptionally large number of cutscenes, establishing emotional links is going to be tough. We'll see how well I perform.

Anyhow, in addition to that clear and hopefully robust game, there's also the "social interaction" game and the "equip your ship" game, both of which are fairly clear and robust.

The last element, a clear user interface, is critical in every game. In my game, most of it is extremely straight forward. It's not exactly a high learning curve to know that you steer your ship with these buttons, fire wherever you click, and can click on buttons if a cutscene offers them to you.

But it's a little more complex than that. For example, your ship has a lot of automated functions. Your gunner reloads and repairs the vessel. I need to show that. I show damage not only with the colored circles at the top-left, but also by the amount of smoke and fire coming from parts of your ship that aren't supposed to smoke and fire.

I want the interaction to be clear, so whenever anything hits anything, I want a special effect! T2D can evidently support this, since the only time I've had slowdown is when I was running it off a thumbdrive. I have a special effect for each and every bullet that hits anything, two special effects for every shot you fire, and tonight I'm adding the "wall scrape" special effect.

If there is any part of the game which marks even a subtle change in the play space (such as bumping into a wall or firing a bullet), I want it to be clearly marked.

By playing silly buggers with contrast, you can have a lot of special effects on the screen without actually ever having too many. For example, a week ago I had the shotgun bullets explode violently whenever they hit something. We're talking 30 bullets all impacting on something within the same second. But because I made the effect dark, rather than light, it didn't draw your eyes away from the important things to notice. Similarly, if you get hit, the special effect for your injury is a brilliant flash of white - the brightest, most attention-getting special effect I could manage. It says, "Hey! Watch out!"

There's a long way to go: the engine is about 75% done (aside from polishing, I just need bosses and advanced cut-scenes), but the game itself is still in early design stages. My primary goal: that the player should feel an urge to finish the whole game and then feel the urge to play it again. My secondary goal: When the player is done repeatedly playing the game, he should want to see more of the universe it is based in. :)

Keeping Tabs on the Worlds

I find myself visiting this site every day, just to scan the most recent additions. Some of the pictures are very nice, but that's not the reason - the reason is that I'm tracking the growth of the culture in that world. I can't play it, but I can still track it - and, given my interest in how the future of on-line play will evolve, I have a vested interest in tracking it.

That, in itself, would make for a very long post if I were to go into detail. So I won't. Instead, I'm going to talk a little bit about what makes a virtual world great. I'll keep it short.

There are a zillion things you can do to make your game better. But none of those matter if you can't get players. In a game where player-generated content is king - like all games I will ever make - there is one kind of player-generated content that is lord and master over millions of would-be players:

Sex.

It's well known: put sex in your game, your game sells better. Put elf boobies on your EQ box, panting fanboys buy it.

But that's not sex - that's meaningless flirtation. The games have no capability for sex, and usually filter out "naughty" words and actions. This is done out of fear. Fear of the ESRB. Fear of the retail chain. Fear of the millions of worthless baselines who will take offense at anything you care to do.

SecondLife literally embraces sexuality. Every flavor imaginable. But it doesn't force it on you - it simply, like Amazon.com, allows you to participate if you want to. There's no elf boobies shining at you during boot-up, no wangs hanging over your adventures. Sex is there but not pushing, not interfering, not demeaning.

You see, it's not just sex, although I won't deny many players obsess over it. It's the freedom that sex represents. And the freedom not having some idiot teen's standards pushed on you represents. By saying that nothing is taboo and nothing is expected, you prove to the player that this is a world they can live in. This is a "real world", not a child's petty playground. (This is probably why everything the Lindens ever do is met with derision: they have given the impression that their world is "free", so any time they show their power, they are "going back on their word".)

I would bet that more than 80% of the players of SecondLife weathered the painful learning curve specifically because of either the sex or the freedom the sex implied. Not just men - women, too. Not just teenagers - adults, too.

Get over your fears. The baselines can't stop you. Retail chains are a dying breed, and the ESRB dies with them. Even governments cannot stop you. Make a world which is free, and players will follow.

I hope so, at any rate. :)

Wednesday, October 26, 2005

More fear!

I may have mentioned a couple of times that I am a huge fan of horror movies and games.

Actually, that's inaccurate. I'm a big fan of terror movies and games, as well as psychological thriller movies and games. There's a difference. "The Ring" was a horror movie. I found it dull and pointless. Same with "The Exorcist". I'm sure they were good movies, but as far as I can tell, I'm immune to the drug they are peddling.

No, only two kinds of fear affect me: shock/impending shock and creepiness. "Horror" isn't a very good term, because it really doesn't discriminate between horror caused by fear of injury, horror caused by reality breaking, horror caused by seeing pure things corrupted, horror caused by seeing something incomprehensible... or any of the other myriad forms of horror. Horror movies are often enjoyable not because they are scary, but because they are campy - which is, of course, wholly NOT HORROR, but still falls into the same "genre".

I find very different things scary and have different reactions than most of my friends. This has made me extremely curious as to fear - how it can be caused, what kinds there are, why people feel it.

I've found that when I describe something that gives me chills, everyone I'm talking to says, "shit, yeah, that's freaking creepy/scary". On the other hand, when the situation is reversed, I rarely agree. I don't think my "this is scary, right?" routine will work over the internet - I'm of the opinion a lot of it is in the presentation - but I'll give an example or two. Tell me how scary/creepy you find the examples, or if you can even tell what the hell I'm talking about.

I think the last movie to creep me out was The Dark Crystal. After that, I haven't seen a single monster design that has impressed me. Seriously. The Skeksis, with their combination of weakness and brutal power, are the creepiest, scariest, most horrifying monsters I have ever seen. The scariest part of the movie? Two of them. One, when they suck life. Two, when the outcast says "Please... make peace. Make peace! MAKE PEACE!" (Actually, I may be misremembering. The scary part wasn't what he said, but how he said it.)

One of those is completely understandable. Hell, what kid wasn't terrified by the life-suck scene? But of the two, the only one that still gives me shivers in adulthood is the desperate screeching of the outcast.

There's something fundamentally different about it. Perhaps it's because the horror of the life-suck is something which you "get used to", but the conniving desperation of a sentient being is something we (or, at least, I) are hardwired against getting used to? I find it more likely that the screeching Skeksis is "too close for comfort", whereas the life-suck is horrifying but far enough from our realm of understanding to get comfortable with.

Anyhow, nearly all of my games in college had as much of the first kind of horror as I could really pack in. Some games couldn't fit much horror: METEOR!, for example, couldn't support any. Other games could really pack it in: running Nobilis, I put in things I considered mind-bogglingly creepy. I rarely trusted my acting abilities enough to put in any of the more personal kinds of horror. If you know me, you'll know I'm not real confident in my ability to physically pretend to be a tortured or scared person. Just a personal limitation.

I found that people have very different tolerances for how personal horror had to be before it creeped them out. If they are more personally-oriented people, they will think these creepy things are simply interesting. On the other hand, some people have a wide respect for any kind of this type of horror.

Example: In Nobilis, everyone plays gods. Not generic gods, but gods who have a deep connection to an aspect of reality. For example, the god of courage would not only be able to cause and drain courage, but also would be harmed if large numbers of people turned cowardly or strengthened if large numbers of people were courageous. In addition, powerful gods can even change the nature of reality. You can make courage a tangible object, or make it turn people blue. If the god of courage dies, courage never existed. If the god of courage is suddenly born, courage always existed.

Interesting? In the right hands, creepy as anything you've ever heard.

Start imagining. Can you think of anything horrifying?

How about the fact that humans inhabited the moon, Mars, Venus, and the fifth planet for thousands of years until a now-unknown god was destroyed, annihilating not only spaceflight but also the very fact that those planets were inhabitable in the first place? Suddenly, thousands of years of civilization are rewritten, and humans are stuck on earth!

How about the ancient god of Secrets? He keeps secrets from everyone - including himself. How about the fact that the color yellow didn't exist until halfway through the game? How about finding records of things that never existed and are mind-boggling weird but that shape the very face of reality itself? For example, the god of Things That Cannot Be Known, hiding the facets of reality that could be used to destroy reality so that nobody will ever discover them - and then hiding himself, so that the idea that things can never be known is something that cannot be known?

Sound outrageous? Where was gravity until Newton discovered it? In use, yes - but it was something that Could Never Be Known, until it was decided time was ripe to 'declassify' it, at which point it was instantly obvious. Of course, if you have a hard time comprehending that, it's just because it's something that Cannot Be Known. What other incredibly obvious things are there that cannot be known?

The answer was: Lots. Enough to discover that a few of the players really got creeped out by this kind of thing, a few of the players found it interesting but not creepy, and the rest didn't really understand it.

(The game was also creepy due to it's accurate, unforced prophesies and, if I do say so myself, the excellent way I played both the players and the characters. But, hey, I'm biased.)

So, anyhow, I'm still fascinated by the different kinds of fear. Is it just familiarity? Something familiar isn't scary. Something not-quite-familiar is always scary, and things which are unfamiliar are scary for a little while?

I'll write up some commentary on the matter later. There's a lot of interesting things to say about it. But, at its heart, horror is an art - and an artist needs to know his audience. The audience is vastly more diverse than most people think!

Don't forget to tell me what scares you, and whether any of the impersonal examples I gave have the potential to scare you, if portrayed in a less antiseptic media.

A bit more PAC detail...

More theory. This time about the specifics of The Machine City's PAC engine.

The PAC engine tracks "memes". Before the game even starts, characters, options, levels, anything the player will ever get the chance to choose in any way, these things are each given a ".meme" file. That file contains a list of the memes they represent, along with a numerical value.

The key is that each meme can also be a file.

For example, your inventor has a file. Presuming her name is Casey, her file name would be "casey.meme". Each of her inventions has a file. For example, "plasmacannon.meme". In the plasma cannon's file would be a list of memes and values. For example, "hotfireydeath 4", "heavyweapons 4", and "casey 2".

These .meme files are cloned from a core template set every time you start a new profile/game. After that, they are modified as the player navigates the game.

Each choice scripted into the game comes with a memetic weight. Commonly, a "friend" increase or decrease, but others are available. Also, every choice reflects a support or denial of the memes inside the .meme file of the choice made. These value modifications are copied into the profile file, tracking the player's preferences over the course of the game.

For example, if you regularly choose the plasma cannon as your gun, you'll have a seriously high rating inside your profile for "plasmacannon", "hotfireydeath", "heavyweapons", and (to a lesser extent) "casey". (The weapon probably has negative values for "lightweapons" and other conflicting memes, so as to keep the player from ever "maxing out" all the memes.)

These ratings are a critical part of the PAC engine, which runs (and runs on) "package" files. A package file is essentially a list of choices supported by the capability for "if" statements and the ability to affect both gamespace and the profile-specific variable/memes which guide the game.

For example, a package file might contain options as to what upgrades Casey will build in what order. Since you've selected the plasma cannon so many times, you have "hotfireydeath" and "heavyweapons" as very high values, so the package file will highlight the options which have those memetic attributes. Depending on the circumstances, one is either automatically chosen or you are presented with a selection to choose from. (Of course, they can also have required meme values, so you can't choose a "super heavy plasma cannon" before you get a "plasma cannon". The "plasmacannon" meme will be at 0 value until you use the plasma cannon.)

This can also be used to permanently change how some global thing behaves. For example, if you replace Casey with Finkle the one-eyed sociopathic mad scientist, that doesn't require a core change to the game. Your package files simply have a "scientist" split in them, and your scientist is currently set to "finkle", not "casey". This, in turn, calls the correct science-related files. "finklesci.package" is called whenever science is referenced instead of "caseysci.package". And, of course, any social files they have are also called correctly. These clusters of files are probably specified in their own package file for ease of tracking and maintenance.

You can even use this system to alter individuals on a shallower level. Say you just want to change how Casey looks. Maybe you win a bet, and for the rest of the game she has to dress in a chicken costume. Well, that's easy: the graphics files referred to in casey's package files reference a variable/meme. When you're first introduced, "caseygraphics" is set equal to the file "caseygraphicsdefault.package", which in turn passes back specific graphic files depending on what kind of display is needed. After a given choice, you can simply set "caseygraphics" to "caseygraphicschicken.package". This would have no effect on her speech or capabilities, save if you explicitly say, "if caseygraphics == caseygraphicschicken.package then".

Of course, using the PAC engine is voluntary. The game gets along quite well with minimal use of this engine - I think the minimum is probably its use in passing the correct graphic file depending on mood and situation. It's pretty easy to use it to spruce up the game with some random commentary based on who is with you at any given time, as well. It only gets complicated when you start trying to drive characters and plots with it.

We'll see how well I can pull it off. :)

Tuesday, October 25, 2005

PAC visits The Machine City

Another long post about theory. But at least this one won't include any math. :)

I've decided that the working title of the game will be "The Machine City", which is quite a bit more Google-friendly than "The Machine", with its only major competitors all being Matrix-related.

Anyhow, the game is being designed with a close eye on pattern adaptation control. The problem with most games is that they get boring. What makes shmups interesting is the way you have to maneuver for a safe but effective fire zone. The biggest way to keep the interest is by varying how much area you can maneuver in, how much danger there is, how easy the danger is to avoid, and what your effective firing solutions are. Most of these variables are altered by introducing enemies, bullets, upgrades, and terrain in various patterns.

Now, Machine City isn't quite as straight-forward, because using classical enemies, your maneuverability and fire solutions are completely disjoined: you can go anywhere while shooting in any direction. As I mentioned last post, this also radically alters the dynamics of which guns are good for which purposes.

So, we still have the same basics, but there's a different slant on them. Whereas in a normal game, each variable is pretty much even, in Machine City the "effective fire zone" variable is not deeply joined with the other facets of gameplay. Which, in my mind, is a giant problem.

When thinking of potential enemies and levels, I think in terms of maximizing pattern variation. Think of a normal shmup's level variances as being worth each variable multiplied together: each variable affects each other variable, and combining them in any given way results in a very different result. However, in Machine City, the results threaten to be variables added to each other rather than multiplied. I hope I'm being clear: the fire solution is not, as it stands, in any way related to how well you can move or how durable you are.

What I do, therefore, is link it by hook and crook.

The way I do that is by putting up interference which impedes the player's fire solution. No longer can he just aim at the enemy and pull the trigger: something is in the way.

I've come up with some unique enemies from this. For example, there's an enemy which fires a large number of short-range explosive rounds. He doesn't aim at the player - he has a fixed fire arc. However, if the player is firing along those same arcs, his bullets will hit the explosive rounds of the enemy, and be much ablated.

An easier enemy is one with heavy shields at certain angles - say, right in front. These shields may be invulnerable or simply very durable, but the end result is that the player is better off finding a firing solution which penetrates straight to the body rather than bouncing off the shield.

More interesting is rotating shields, or perhaps shields which move to block the direction which they were last hit from, requiring continual re-maneuvering. Of course, intangible weapons such as steam, small bullets, or fire can limit the maneuverability of the player without impeding their firing capabilities.

I also have ideas for debris-enemies - either ships which launch "guardian drones" or simply a large amount of floating debris. The shields will be able to be knocked around by the player, but they are mobile and quite durable, acting as a continually shifting mass of terrain.

Since many of the enemies are insectoid monsters and plant life, these methods manifest in fairly interesting ways. Imagine something like a praying mantis which has invulnerable armor plates on its arms. Imagine a floating fern which releases swarms of explosive mites. Etc.

Now, most shooters have enemies which have this kind of firing solution interference, but they are nearly always bosses because of the extreme difficulty of arranging for firing solutions in games like that. However, because of the wide availability of firing solutions in Machine City, regular enemies could have such methods.

The difficulty comes in making sure waves of enemies don't end up being invulnerable. For example, a large number of forward-shielded enemies descending at once would be functionally invulnerable. However, math can help that out.

With the understanding of the variables which are available and the methods with which they can be altered (both in-level and through rewards/plot), I hope to build a game which offers continuing new experiences throughout the whole of play.

I also hope to use a primitive PAC-driven social engine to manage some of the character-related and level-selection-type stuff. A simple memetic linkage system, but I think it'll work well. :)

A bit about the math



As I mentioned, the design of the game isn't just stabbing in the dark: am am/will be testing my theories about game design on this game. Fortunately for me, the fact that you can fire in any direction actually makes the math easier than for a standard shmup.
w
Here's an example of some of the math regarding weapons:

No weapon shoots straight. Each weapon/gunner combo has an inaccuracy, measured in angles. With a good gun and a sharp shooter, you can get an accurate stream of fire without difficulty. But when you whip out the shotgun and man it with your cook, you get bullets flying out in a roughly hemispherical aura, generally centered on your mouse pointer.

Which is "better"? Both are good. More skilled players will tend to prefer, if the weapon is balanced, accurate weapons. This is because they are pretty assured of their ability to lead correctly and hit enemies. In a fixed-fire game, wide-area weapons ("wave beams" and "shotguns") are useful largely because they allow the player some slack in how he needs to maneuver in order to hit the enemies. In this game, he can shoot at any enemy, regardless of his position, assuming there's not a giant rock in the way.

But wide-area weapons still have their place. Putting aside the awesome feeling as half the scaffolds in the level peel away under your wide-area weapon, the core effectiveness of the weapon can be calculated mathematically.

This is going to be a little complex.

A weapon has an effective cone. A highly accurate weapon has an extremely narrow cone, whereas a shotgun has a very wide cone. The bullets have a chance to be on any path down that cone. Let's presume it's an even chance. Inaccuracy is even, in my game, but shotgun shell distribution is weighted towards the center of the cone. Still, let's assume an even chance.

A shotgun fires 15 bullets per shot. The rate of fire, depending on the gunner, is around three shots in 0.75 seconds, followed by a half second load time. The cone, again depending on the gunner, is about 100 degrees wide.

Of course, you're likely to use a double-barrel approach. Two turrets means 30 bullets per shot, but a slower rate of fire, slower reload time, and less ammo. (More ammo, actually, but not as much more as the added drain. So less shots.) The cone is closer to 120 degrees.

Shotgun pellets do an average of 2 damage. Some gunners will bring it down to 1.5, some up to 3.

The machine gun fires about 10 shots per second, say. It can fire for about a second and a half, and reload takes a little over a third of a second. The effect cone is about 25 degrees wide, although with something like this, gunner selection really comes into play: the cone can be as narrow as 10 degrees or as wide as 60 degrees.

Double turrets means 20 shots per second, one second of fire time, and a half second reload. The effect cone is about 40, base.

Machine gun bullets do an average of 5 damage. Minimum of about 3, maximum of about 8.

Now, the questions are simple:

How many bullets will pass through a given zone of width 1? (1 "scale", which is approximately the width of a standard enemy: the size of your ship.) What is the minimum? The maximum? Obviously, this depends on distance from the source: 100% of shotgun shells will hit something of width 1 if it's right in front of the gun, but that percentage lowers rapidly.

With that in mind, how large are your enemies? What distances will they tend to be at? Minimum? Maximum?

How much damage does each bullet do? How much damage can they take? What is the chance they will survive the encounter? If they die, how much of the volley will sweep past their debris and how much will they have absorbed?

We have two enemies: a cannon (width 1) and cannon shot (width 0.3). Cannon shot is a valid target: this is not always the case with bullets. Cannon shot has 1 HP, the cannon has 6. Cannons, because they are mounted on destructable scaffolding, are a complex subject. Let's stick to bullets for this example.

The range at which cannons usually fire is when they are a bit less than halfway down the screen. The player is usually between 8 and 15 units away, depending on how open the level is and how many enemies there are. If a cannon gets closer than that, it is realistically destroyed - we'll discuss that in a later edition. However, for the sake of argument, we'll also talk about closer ranges.

Here is a quick table defining the width of an effect zone at a particular distance and the percentage taken up by a 0.3 wide target. This isn't perfectly accurate, but it is plenty close.

3 8 15
25 degrees: 1.3 3.5 6.5
40 degrees: 2.1 5.6 10.5
100 degrees: 5.2 14.0 26.2
120 degrees: 6.3 16.8 31.4

%3 %8 %15
25 degrees: 23% 8.6% 4.6%
40 degrees: 14% 5.4% 2.9%
100 degrees: 5.8% 2.1% 1.1%
120 degrees: 4.7% 1.8% 1.0%


The first two are pretty much accurate regardless. However, due to the special dispersion pattern of the shotgun rounds, the last two percentages are roughly triple near the center and roughly 1/3 near the edge.

So, if we're trying to shoot a bullet out of the air, a single shot doesn't have a whole heck of a lot of chance to do so. Now, the size of the bullet actually alters this significantly: we're using point-sized bullets in our calculations. But in this case, the player is firing essentially point-sized bullets. I believe they are 0.1 in size, which is not exactly formidable. It raises the percentages, but we'll discard that and simply remember that these numbers are a mite low.

Now, here's the same table, with volley information. We're simply multiplying the percentage by the volley number to get a final "realistic" percentage for a "short burst" at the target. Again, it's not incredibly accurate to do so, but it's easy and not really noticeably inaccurate.

%3%8%15
3 bullets @ 25: 69% 25.8% 13.8%
6 bullets @ 40: 84% 32.4% 17.4%
15 bullets @ 100: 87% 31.5% 16.5%
30 bullets @ 120: 141% 54.0% 30.0%


First glance at these numbers show what you might expect: two turrets are more likely to knock down an enemy than one turret, and shotguns are more likely to knock down an enemy than machine guns. This is especially true because the shotgun percentages listed are extremely low if our aim is decent and the bullet is near the center of the cone.

Of course, these numbers are because our enemy has only one health.

If our enemy was a cannon, with 6 health, we would have a different story: we would need to track how many shots are likely to hit, instead of whether any given shot is likely to hit. We can do that some other day.

Anyhow, the numbers aren't quite as straight-forward as you might think. That's for one "volley". If you miss and want to fire another "volley", you start running into problems. The double shotgun only has two volleys in it before a lengthy reload, whereas the single machine gun has a functionally unlimited number of volleys: you can keep firing over the course of the bullet's whole trip.

The other problem is multiple targets.

Multiple targets is really where the math starts to get complex.

A shotgun is both good and bad at multiple targets. If the targets are fairly closely clustered, you can hit them all with a single volley. However, if the targets are widely spaced, you can't. Or, at best, you might choose to tag both with light fire.

But if they're very closely spaced or stacked, you'd be better off using a machine gun, since the concentrated firepower will cut through multiple targets, whereas the shotgun will probably have most of its fire along any given vector absorbed by the target. This doesn't apply much to the 0.3 wide, 1 health bullets, since a single bullet of any kind will drop them.

A shotgun doesn't have very many volleys, so if you have multiple widely spaced targets (especially likely in cases with enemies that are quickly introduced), there's a very real threat that you will run out and be stuck dodging until you reload.

On the other hand, accurate weapons require a more accurate volleys... except they don't, really. They simply require a lengthy volley which traces a line the enemy is sure to cross. Since we're using simple enemies, these kinds of volleys are acceptable. If we were fighting an adaptive enemy, we would have to worry about how well he could dodge, and things get complicated again.

There's math for it all, but it would fill another five pages. So, I'll leave you now, thinking about shotguns vs machine guns, and which is preferable in any given situation.

By the way, I decided the health meter was too hard to see, up in the corner, so I added a "omygodimonfire" set of markers. As you get damaged, your ship begins to smoke and smolder, making it pretty obvious how damaged you are. :)

Monday, October 24, 2005

Gamey Update



So, I worked on the game over the weekend. Keep in mind these screenshots are using two tile sprites and one enemy sprite, all of which are preliminary. The player ship is complex, but still uses preliminary graphics (it's way too crowded).

The game is a shmup: a 2D shooter. It's a bit different than the usual fare, both in terms of gameplay and in terms of the engine which drives it.

You see, in this game you have a gunner. This means you have a turret. This means that you don't fire straight: you fire where ever your mouse pointer is when you click. This is a dramatically different feel of game from a normal shooter.

Shooting at the cursor.

In a normal shmup, your guns are fixed-fire. This means that moving is inextricably linked with shooting: you have to get into a position to hit the enemy while staying safe. The reason I didn't follow this was because the keyboard doesn't like having more than two buttons pushed at a time. Holding fire, left, and down is something which simply isn't possible on a keyboard. Therefore, fire control is in the mouse.

This dissolves most of the link between position and firing capability. You can shoot anyone, anywhere, so long as there's nothing in the way. This, in turn, means I can make navigation more complex. (I also make running into walls harmless, at least at this point in the game.)

Navigating made hard.

Originally, we (if I use "we" and "I" interchangeably, it's due to the makeup of the "team") were planning on using Torque 2D's native tile map capabilities. But I rejected this idea after some thought.

You see, the whole game is built in two stages. The engine and the data. The engine runs this lattice of scripts - scripts which can be seen and edited by any user, allowing for mods and easy game expansion. However, we can't ship every player his own copy of the T2D development studio, so they would be stuck using the tile maps we provided.

This plus a number of secondary concerns made it obvious I had to build my own "tile" engine. After thinking about it for a week, I made the one you see in these screens. It's not really a "tile" engine in the classical sense. Tiles do not have to be of a set size or orientation, for example.

Level layouts are generated on the fly by map heuristics. It takes tile "bricks" - groups of coherent tiles - and stacks them into something resembling a classic shooter level. If I want to change something, I don't have to edit a tile map: I change one script, and it cascades down through all the maps.

The effect is quite solid, and can be re-built and tweaked and replaced by anyone with an ounce of creativity. It's also capable of creating scenes a real tile map would be sheer agony to reproduce.

Tile map highlight.

The game allows players to set up their ship with the options they want for a given level. IE:

Selecting options.

Once objects are selected, the level begins. You don't have multiple lives. Instead, you have a large amount of health. While your gunner isn't busy shooting people or reloading, he or she repairs the ship, restoring a point of health after a few seconds of not shooting anything. Some gunners are better at this than others, obviously.

Combat example.

Cutscenes before, after, and during the game are available. These cut scenes can have 'if' statements, inputs, and variable outputs. If you wanted, you could drop the shooter part entirely and make the game nothing but a series of interactive cut scenes. The cutscene code is only partially implemented.

Ugly cutscene example.

At the end of Sunday, I had programmed twelve hours straight with only the shortest of breaks for two Marx Brothers' movies and an episode of Red Dwarf. But I wasn't done yet! I put in more FX!

This is the first time I've used the FX engine in T2D - the effects from before were graciously donated by Darius. Here I use some of mine, some of his. :)

Final shot.
Big version of the lead shot.

Things left to implement: Bosses, cutscenes.

This game is built using pattern adaptation control (PAC), both in the engine and the game itself. I will explain that, if I have the time.

Friday, October 21, 2005

Riverfall

Riverfall is the largest and most straightforward route from the surface to The Machine, made somewhat more challenging by the river that gave it the name. When the empire discovered that the immense caves above The Machine were packed to the brim with metals, coal, and oil, they went nuts. The empire needs nothing as much as metals, coal, and oil, especially from a source so near their homeland and in such rich quantities.

The city beneath the shaft has almost ten thousand miners inhabiting it. They call it the "Machine City". The shaft itself is inhabited by a lattice of almost-verticle cargo gondolas, most of which work at any given time. Those which are not working are supplanted by fleets of cargo blimps. The chain is used both to send ores to the surface and to receive food, cargo, and people on return.

The whole city - and each gondola station - is supported by titanic water turbines powered by the crashing weight of an entire river. Since electricity has never been discovered, everything is mechanically powered by an immensely complex series of line-driven machines.

All the lights are phosporescent globes. They last about a week before they need to be re-injected with the chemicals that make them glow. They only come in two colors: blue and a vastly more expensive orange.

Riverfall is the only "official" incursion into The Machine. Other routes (and free operators) were banned since so few returned from them. Even the Machine City has a hard time of it - not only are the caves filled with physical dangers - cave-ins, gas pockets, monsters - but also with mysterious psychological dangers.

You and your team have no connection to the Machine City or Riverfall.

Early concept sketch of Riverfall:

Thursday, October 20, 2005

A bit more game update

Here's two more characters from the game (tiny equipment-select portraits):



This is your mechanic and her step-father. It may be becoming obvious by now that (A) your team isn't the most well-funded expedition and (B) you're kind of dredging the bottom of the barrel. All the other, older inventors/mechanics have either been hired by earlier teams or refuse to risk their life.

Still, she's capable enough. Although she can't lift any of the heavy equipment, but that's what her father is there for!

The pictures are irritating me. Faces are very hard to do, because I'm scaling them. When you scale something else, if you lose a tiny line or the color gradient goes wonky, it's okay. But we know faces well enough that an error there shows painfully.

I'll probably have to draw these all several more times before I'm satisfied. I'm over-shading these faces. It's my natural instinct to shade, and this would be under-shading in illustration. But I don't think it's a good idea to shade much in this game, because I need high-contrast images, and if a sprite runs the gamut from light to dark, there's not much that can contrast with it.

Anyhow, the color schemes here are pretty obvious. The mechanic is a golden child, talented, innocent, relatively sweet, and thoroughly tactless. Her step-father is a salt-of-the-earth type guy. I don't like his shirt, so I'll have to figure something out there. His color scheme is intended to be boring, but I punched up his background because he was kind of disappearing into it. :P

Not the most inspired graphical designs. The father is intended to be solid and uninteresting, and the mechanic is just supposed to stand out among the rest of the characters - all of whom are either overdressed or dirty slobs. She's neither.

I don't know what to call this game. The perfect name is "The Machine", but that's not Google-friendly. I'll have to think about it.

Photographs vs Paintings vs Virtual Photographs

Have you ever noticed that the bar is much higher for created art over recorded art?

For example, this is a pretty good picture. But a drawing like that wouldn't impress me much, save in its realism.

In my case, and I believe in everyone's case, I expect drawings, paintings, etc to be more than what is physically available. On the other hand, I expect pictures to reveal what actually exists, highlighting the beauty (or horror, or whatever) behind things we might see, things we know exist. Because we perceive photographs as being real, we weight them very differently than drawings or paintings in our mind.

Seeing a corpse in a photo carries a whole lot more emotional meaning than seeing a corpse in a drawing. Of course, the drawing may evoke just as much emotion - or perhaps more - if the artist arranges the picture correctly, establishes an emotional core ahead of time, or uses other tricks of the trade to enhance his drawing over what is "realistic". But the photo, because it is real, inherently has more of a punch.

Now: screen shots.

Which category do they fall into?

It's almost like they take the worst of both worlds, isn't it? They show you what exists... but in a world few care about.

Hm.

Wednesday, October 19, 2005

It's... impressively large.

I've been thinking about virtual architecture. Well, virtual everything, actually. But architecture is a clear example. Here's a strange, fun-filled fact:

Height and size are worth quite a bit less in a virtual world than a real one. There are two reasons for this. First, there are usually a lot more very large-scale structures. If every building is cathedral-sized, then cathedral-sized buildings just aren't very impressive. Second, most virtual worlds allow you to fly, or at least move very fast. And size is relative to position (fliers see everything as "shorter") and speed (a mile isn't very long if you're moving at 60mph).

This means that the "really impressive building" you've got planned is really not going to be very impressive after all.

But there's a lot of nifty tricksies you can use to fool your visitors into thinking your building is very impressive! Here's a few tips for the "inside" of your building:

The easiest is the design of the entrances/pathways. If the player is forced to progress in a specific way (through a door, under a ledge, down a corridor, whatever), then you know precisely where that avatar will be upon entering that area. You can use this to maximize the impact of a room.

For example, forcing a player to enter a building near the ground rather than having an "air entrance" will mean the player will be moving slowly and seeing the full scope of the room, rather than moving quickly and seeing it from halfway. If your building is suitably airy, the players will get hit by the full scope of it.

Another trick is "inhuman ratios". Most rooms are wider than they are tall. You can use this in your rooms. If you must have an "air entrance", don't lead into a normal-ratio room. Make the entrance itself the room: a very tall and comparatively slender "tube". Or make it lead into an extremely wide, deep, but short room. this can be enhanced with partial visual blocks - like columns or occasional plants - to give a very clear reference for distance. If you want your room to look bigger than it is, make these visual blocks smaller the further they are from the door. This should trick the eye into believing there is a significant distance between them and their larger brethren.

If you're thinking of how to make the outside of your building more alluring, that's pretty simple while being quite complex. In real life, the outsides of buildings are rarely intended for use. They are nothing more than barriers to keep out the weather. In a virtual world, there is almost never any need for that. Ideally, visitors can't tell when they've "left" the "outside" for the "inside".

This means you want to have an airy, open feeling. First step: vary the height of your outside areas/rooms. "Draw" in height variations and unusual floor patterns. Think "skatepark meets Victorian garden meets crop circles". For example, a waterway cutting through your building, or a "path" suspended over (or under) the normal floor. This height differential also serves our next point:

You can build a structure without roofs or walls, but it'll just be a park. Perhaps a park is what you're aiming for, but when the player can fly, a park has to be pretty freaking impressive to draw the player down out of the sky for things he can clearly see while up there. What you need are areas which the player (A) cannot see inside while flying, (B) are clearly there, and (C) have an inviting opening.

The simplest one is an "eaves room". This can be built underneath a raised portion of the "park", if you like. It is essentially a cave, preferably with lights or markings on the floor to draw the eye.

What constitutes an "inviting opening" depends on the circumstances, and is perhaps the most critical part of constructing your building. An inviting opening has to be something which the player could swoop through at full speed, if they were feeling adventurous. This means that if you're appealing to flying players, the inviting opening has to be quite large... but if you're appealing to someone who's already sauntering through the area, it can be barely large enough to squeeze through. Sauntering is much slower than flying.

Certain shapes appeal more than others. The stereotypical "door" is a wholly uninviting entrance, especially in a virtual world where stopping to let a door open (or, worse, opening it yourself) is an irritation outside the norm. Most attractive entries are tall and wide enough that the player won't feel any danger of "hitting the edge" while moving at their current speed. They also denote that they are entries by clearly displaying that the room they lead to is different from the outside.

To people on the ground, this is pretty easy: they can see the room. Whatever is in the room is a lure, whether that's toys or darkness or a sudden turn that looks mysterious. If the player is walking, the height of the door just needs to be significantly taller than the player. Width is actually a priority, because the player can move around on that axis, but not up or down.

In the air, however, nothing is quite as easy. A "tall" entrance looks quite short when viewed from a 70 degree angle from above. This means that air entrances are generally "sloped" such that someone looking at it from, say, 60 degrees sees an entrance which is decently tall. This can be as simple as removing a chunk of the corner of your building - commonly, air entrances are invitations to land and enter, rather than keep flying while inside.

Also, effective entrances (ground or air) are often "wedge" or "scoop" shaped.

It is very much an art to create these kinds of interesting openings. When combined with careful external mapping and internal flow control, you can have a building perfectly suited to the virtual world.

The key is to "re-scale" the experience of the visitors. What scale you want to end on in any given place is up to you, but there's a transition to be made. That transition is made primarily through entryways, whether your entryway is as simple as a half-shell over a table or whether it's as complex as a tall shaft leading to a short room.

Decide what you want to re-scale to. If you keep your players flying, they will have a hard time "settling down" and probably won't be able to socialize effectively. If your room is "short" (too short to easily fly in) then they won't be able to scout around to find a group they want to hang out with. A tiered or stepped approach is often very effective at allowing socialization while still drawing people down into a sociable scale of space, often with extremely limited "roofs" which give the impression of cover without actually stopping anyone from going through.

Shopping is quite different, of course, and buildings of that nature will naturally tend towards other shapes that force the player to see the products. Low rooms or, if flight is a priority, narrowish tubes/floating displays. This is a much smaller scale of space than the open socialization of last paragraph.

Of course, if you're building your structure to lure people in to explore it, then leaving it flight-scale in most places is just fine. It will naturally let people skip from interesting place to interesting place while never making them feel claustrophobic.

It's all about your priorities.

Anyhow, I hope this was interesting for you. Virtual architecture is a hobby. :)

Game Advances

Yesterday I implemented gunners and fixed about 1200 bugs in the equipment selection screen. I also drew people.

I thought I brought the full-size portraits, but I didn't. Here's the smaller ones. As you can see, they don't scale very well. They'll have to be re-drawn.



These are the two anti-social members of your (tentative) party. Your doctor and your cook/surly handyman. Each "faction" in the game has its own color scheme - not uniforms, just a kind of unifying theme to keep the player aware of who is who. Your team is gold and blue. Each person adheres to it loosely.

Color is really pretty important. The doctor's colors - gold and wine - should imply a regal and intellectually robust character. The cut of her clothing - which you can't see here - is mostly straight lines. All together, it should be clear she is intelligent, restrained, probably arrogant, and full of knowledge and secrets. Since that's precisely what the character is, I hope that's what the pieces portray when combined.

The cook was drawn at 512x512, so this is really a very bad compression. I'll show the original at some point so you can see what I mean. :P

The cook's colors are gray and copper, and along with his rumpled appearance, this is supposed to suggest a worn-out man with no particular allegiance. His craggy face and eyepatch are intended to suggest that he's worn-out for a reason. The eyepatch and his sour mouth also suggest he isn't entirely trustworthy. People with eyepatches can't be trusted. He's one of the two people in the game that wear blue jeans.

Wheee! Because I'm sure everyone is wildly interested, I'll post the other (tentative) members of your party as they are drawn.

Love the Media!

So, I'm looknig at today's "USA TODAY (NO. 1 IN THE USA)". One of the headlines is "1 in 4 Iraq vets ailing on return". Beneath that, it gives these stats: 47% saw someone wounded or killed, or saw a dead body. 14% had an experience which left them easily startled.

Oh my god, how horrible! People who signed up to be trained to kill, were trained to kill, and were sent off to kill... saw dead bodies and had dangerous experiences? Oh my god! How can this be? Especially among those sent back - which includes mostly the injured and those who have had long tours of duty. Gee, what'r the odds?

I won't bother condoning or condemning what is going on in Iraq - nobody ever changes their mind about that kind of thing. However, I think everyone can agree that soldiers seeing injured or dead people is hardly front-page news.

Shock: When interviewed, 47% of fathers had seen someone wounded, and 14% of them had experiences which left them unpleasantly close to human excrement. These statistics were found to be much higher among mothers!

Tuesday, October 18, 2005

A bit of a game

So, I've been polishing the engine for this game I'm making. It's really very smooth. It's a shmup - a scrolling shooter - but with a strategic element where you can choose which levels to go through and what equipment/crew your ship has.

The scripting is very powerful. You should be able to create any similar-genre game by simply substituting your own script and graphics.

It's still a week, probably two, away from having nice screen shots. But the core engine is nearly done. Just need to add tile map support and "cut scene" support.

Here's a piece of an early mockup graphic from the game:

Monday, October 17, 2005

Reactive Data

I wrote up an insanely long post about dimensional displays, and the functions of 1D vs 2D vs 3D displays. Did you know a line graph with multiple lines is really just a very shabby 3D display?

Well, the post was too long. And in the end it boils down to one thing:

We've got these computer things. Why aren't we using them?

Regardless of what dimensionality we display our data in, we're not using the fact that we have computers. We can tell a computer what we're paying attention to, whether it's by mousing over something or by pressing a button.

The computer should react. Moreover, it should take into consideration how (A) you want it to react and (B) how other people have had it react.

Right now, the closest thing we have to this is "links".

Links are really shabby! They take you away from the page you're currently on. Even if you open them in a new window, they visually replace the page you're currently on. And, of course, they in every way utterly fail to adapt to your needs.

Some people are kind enough to create customized links. But links are still inherently flawed. What I want is to take the evils of scroll-down ads and use them for the good of mankind.

When I see commentary on a blog post, I want to see it with some kind of representation as to how useful other people found it. This could be a combination of how many people "opened" it, how long they looked at it, what they rated it, and whether they responded to it.

When I move my mouse over the comment, I want it to "fold down", showing me the body of the text. On this fold-down window would be a green (good) and red (bad) button for easy rating (if you're logged in). And, of course, a "reply" button.

As soon as you mouse off the fold-down pane, it folds itself away, vanishing back into the comment header.

Combined with some threading routines, I would think this would be a great way to deal with commentary! Sure, it requires some coding, but as a guy who has implemented things very similar to this for a living, I don't see why it isn't common. Because people would be confused? Bullhocky! They'll move their mouse to the comment header, perhaps thinking it's a link, and VWOOP, they get the post. They want to figure out how to get rid of it, VWOOP it goes away as soon as they mouse off of it. Not exactly a high learning curve.

If I implement a commentary/forum, I'll be doing something like that. There's no reason to "permanently" take up space for text the users will only want to scan. It's transient text: why is it taking up space on my screen?

The ways to represent the threading are also interesting... but I've already rambled enough.

As a final point, the other thing we could use this sort of thing for is for displaying data. Why do we have graphs and figures which are hardcoded? A user should be able to change the method of representation, if not the data, to a form more useful to him. And, on the fly, the representation is reconfigured. It's a simple applet, even at its most complex. :P

Friday, October 14, 2005

Argh! The Escapist Escapes from Reality.

I really like The Escapist. But this week's Friday special is a hopelessly naive call to unionize the game development industry.

No, dearie, it's not that easy.

Four reasons, in order of increasing importance:

1) There's about fifteen different jobs in game development. Are you unionizing into one giant union for all of them? Oooooooh. That's gonna be messy. That's not mentioning the fact that the cultures of the people who work those jobs is heavily anti-union, so they'll be even less likely to tolerate being marginalized.

2) There's a glut of people ready and willing to do these jobs. Unlike your primitive "coal mine" comparison, it costs EA almost nothing to bring in new drones from anywhere in the world - or go to them, if needed. On top of that, arranging for an effective strike is next to impossible because you'd have a hell of a time convincing the team leads to strike. They're not in nearly as bad a position.

3) This industry is a data driven industry with zero entry barrier. This isn't coal mining. Tomorrow will see the rise of a hundred teenagers trying to make games. None of them will belong to the union, and the union can't get them to join. If it tried, it would find that 99% of them aren't willing to do such a thing and the 1% that does join are among the 99% that will quickly fail.

4) If you do manage, against all odds, to create a union, this is still a data-driven industry. EA will shlep off to India for approximately zero cost, escaping the union and rendering everyone in it without a job. You even proposed this as a way to stop EA from shlepping off to India. Honestly, what are you thinking?

So you're proposing, if I get this straight:

A union specifically for EA employees, because nobody else would join. A union specifically for low-level, instantly replaceable EA employees, because none of the upper ranks would be willing to strike. Eight unions specifically for low-level, instantly replaceable EA employees, because one union for artists, scripters, programmers, sound technicians, etc would result in all of them thinking they're continually getting the shaft.

Which they would be. Unions are a shabby idea. In a matter of a decade, a union turns from something which helps workers get reasonable hours and pay into something which allows workers to slack endlessly while feeding the bloated monster it has become.

Collective bargaining is an excellent idea. But you don't need a union for that. You never did.

A union is an untenable idea for our industry and, worse, a bad one.

Thursday, October 13, 2005

Riddick

Okay, I finally got around to playing Escape from Butcher Bay (for the PC). A good game - some parts of it I wasn't much fond of (the excessive sidequests in the prison area, for example), but by and large it was great.

Great, but easy. Only two events caused me to die - very mild spoilers follow.

The first event was fighting the head guard - the guy with dreads. I didn't have a weapon, so that took a death. The second event was fighting the heavy guard robot. I spent literally an hour and a half unloading every bullet I had into his backside. He was the most irritating boss ever. He had this neat trick of stomping on you - even though his foot landed on the ground six feet away on the other side of a pillar. A lot of sudden, inexplicable deaths until I figured out that you weren't supposed to shoot him.

For most of the game, my favorite part of the game was the way you could attack someone who was armed and kill them with their own weapon. Slick stuff, there!

However, now that I've beaten it, my favorite part of the game was the audio associated with driving the heavy guard. It was a great touch to hear the soldiers: "We're DOOMED!" "Oh my god, someone stole a heavy guard!" "It's a fucking tank!"

Even better touch was the Heavy Guard's AI, with snarky commentary like "Battle analysis suggests: don't walk into things." "Battle analysis indicates: please read the instruction manual before operating unit." "Tactical analysis shows: for most effective use of unit, replace pilot." However, the level itself was pretty dull. Just blow things up, turn the corner, blow things up.

Overall, a fun romp. Well worth paying for. A few weaknesses in the plot and level design, but that's acceptable because there were a lot of strengths.

I haven't tried the director's commentary mode, but I think it'll be fun.

Wednesday, October 12, 2005

Matters of Scale...

The Bad Astronomy Blog just put up this. My interest is in the picture comparing the hurricane and the galaxy.

It's not exactly a new concept for me, but the universe tends to organize things in spirals. It's so prevalent that it permeates every part of our existence. Water spirals. Air spirals. Magnetics spiral. Space-time itself spirals. It can even be said that solid matter "spirals", if you expand the concept of "spiral" to a few more dimensions.

Are you familiar with atomic and sub-atomic theory? The idea of electron clouds, for example. I would bet that they act more like spirals than we think.

Then you have the opposite of spirals: every time matter shows up doing something incomprehensibly mathematical. For example, when you heat a pan of water and get perfect hexagons - a honeycomb of water. Or when you freeze ice, or look at crystals: regular grid patterns.

I won't try to explain why they happen, but they happen. Similar events can even happen to clouds!

So... does it happen on a galactic scale?

Not all galaxies are spiral. But, so far as I know, none of them are honeycomb-shaped.

Maybe they're just not dense enough? In which case, could star patterns near black holes be found to have an unusual "honeycomb" or "lattice" shape in unusual situations?

Just curious. I've never heard of anything like it, so they probably stick to spirals. But it is an interesting idea. You could easily base a scifi universe off it. :)

Tuesday, October 11, 2005

Aretha's Aliens

I was thinking last night, and I realized that almost all of the songs Aretha Franklin sang could be changed to be about alien invasions. She didn't write most of the songs she sung. So how did she select these songs? Obviously, she knew how easily they could be turned over to be about alien invasions!

For example, "Fever", which can go two ways! I prefer this one:

Sol lights up the day time,
My starships light up the night,
You light up when I blast my ray guns,
and you know I'm gonna treat you right!

I've burned all your tanks to ashes,
Your military's gone, it's true!
But when it came time to touchdown,
I found you'd given me the flu!

You give me fever...
Fever in the morning,
Fever long into the night!

Every human's got the fever
That is something you all know
Fever isn't such a new thing
But we simply didn't know!


You can easily re-do the whole song that way, or about that sizzlin' feeling when you get zapped.

"I will survive" is even easier.

At first I was afraid,
I was petrified
Kept thinking 'No where to run,
ain't got nowhere to hide'.
But then I spent so many nights
Thinkin' how you done me wrong
And I grew strong
I learned how to get along!
And so you're back!
From outer space!
I just walked in to find you here
With that smug look upon your face!


And so on: one woman's fight against the alien invaders. Presumbly using an advanced fighter prototype: I have it on good authority that Aretha was big on advanced fighter prototypes. Groucho also tells me she was pretty big even off advanced fighter prototypes.

I feel the earth move under my feet
I feel the sky tumblin' down, a-tumblin' down,
I feel my heart start a-tremblin'
Whenever you're around!

Ooh, baby, when I see your face,
Yellow as the month of May
Oh, darling, I can't stand it,
I scream and then I run away!


Or, if you prefer a tender lovesong:

Billy Ray was a spaceman's son
And when his daddies would visit he'd come along.
When they gathered for deconstructing,
That's when Billy would start abducting
Out through black space he'd abuct me,
Then he'd look in my eyes
Lord knows, to my surprise!

The only one who could ever probe me...
Was the son of a green space man!
The only one who could frontal lobe me...
Was the son of a green space man!
Yes he was, he was, oooh, yes he was!


I mean, look at these easy targets I haven't even touched:

A natural woman
RESPECT
Until you Come Back to Me
Killing me Softly
I say a little prayer
Rescue me
Ain't no mountain high enough
It's raining men

Coincidence? I think not!

;)

Monday, October 10, 2005

What is an Idea in a Computer?

I'm really working on something in the back of my mind. Some kind of connection, some kind of explanation for the way ideas, speech, and freedom interact, and the ways that we can use technology to further those interactions.

The ideas are fomenting in my mind, but all revolve around communication, for suitably wide definitions of "communication".

Here is something related to it. Click on the pictures - see it. Imagine walking by it or - as is more usually the case where it lives - flying by it. What an appealing little building! I can't imagine just flying by unless I was in a big hurry. It's a building you want to enter!

Chip, the author, is smack-on about the strengths and weaknesses of the design. But he's looking at the building from a different angle than I am.

Regardless of how attractive the building is, once I get inside and find it selling footwear, I'm disenchanted.

Obviously, the primary drive is, in fact, to sell footwear. He doesn't lose a paying customer when he disenchants me. There's certainly a place for that, I don't begrudge it. But I, of course, am thinking about what I would like to see.

A whole world to explore. And by "explore", I mean "wonder about" rather than "wander about". Going into the SecondLife business district and you'll see a zillion shops that sell clothes, footwear, nightlife, etc. These places mean nothing to me, save as a barometer for economics and social norms.

The buildings which are interesting - and the people who are interesting - are the ones which don't fit into my experience. Buildings which cannot exist, buildings which serve unusual purposes. Buildings shaped in ways I've never seen before. Buildings which sell things I've never seen and can barely comprehend. This gets steadily more difficult the more I see.

Buildings are, in their way, better than people. People are restricted organisms. Even the friendliest people are often unavailable and never fully plumbable. A building is always open, always plumbable. A society is made of buildings and products - the people in the society are represented by what they make. Architecture is central to virtual worlds... but "architecture" is a word which means so very little. An architect designs a house. But what about the giant, inhabitable statue? What about a robot? Wings? The avatar itself? They're all built using the same tools, the same tenets. They are all simply forms of speech, in the language of this virtual world.

There's something hidden in this. Something I don't quite understand yet.

Something about duplication, mutation, theft, and teaching. I'll figure it out.

Bits are Missing!

Blogger deleted my custom template, poof. So I've reverted to the original. Let me know if you see anything wrong with it.

Memetic Glue?

It turns out my landlord believes ID should be taught in public schools alongside evolution: he doesn't believe in evolution. Not just evolutionism - he doesn't believe in evolution itself. He thinks there's no data to support it and a bunch of data against it.

On the other hand, he can't believe that a significant amount of the population believes the moon landing was a hoax.

I realized at this point that I don't really understand religious people. There's more evidence that the moon landing was a hoax than evolution being wrong. There's more things about the moon landing that ordinary people don't understand than things about evolution ordinary people don't understand. So why do more people disbelieve evolution than the moon landing? Because they have a vested interest in defending their ill-considered religion?

But it wasn't until later that I started to think about it.

Most first world nations are not very religious. The USA is, as far as I know, the only highly religious first world nation, unless you consider the Vatican a "nation", or Ireland as "highly religious". This is because religion tends to make a society insular and retrogressive instead of progressive: the power coagulates in the hands of a few people, and that oligarchy tightens the reigns to insure they stay in control.

You see, all religion really is... is memetic glue.

It binds people together. Blind faith is an excellent binding agent. If you're Mormon, and you walk into a faraway town, all you really need to do is find a Mormon church and say, "I'm new here - can you tell me how to get started?"

Suddenly, that foreign town is not foreign at all.

In small countries, this binding means the whole country is bound to a small group of highly powerful people. If small countries neuter their religious tendencies, the power fragments into the hands of dozens or hundreds of small groups instead of one small group. The competition between these groups drives the nation forward, allowing innovation and disallowing stagnation.

But too much fragmentation means you have a tendency to naturally split the country into multiple countries: the people in power decide they would have more power if the other guys couldn't interfere with them any more. Draw a boundary and, poof, instant nation.

The USA is much too large. We're huge. The USSR was this big, founded in conquest.

The USSR didn't have religion as a memetic glue. They devised their own glue, in the form of their government practices. When those practices proved untenable, their country shattered into dozens of fragments - down to the level of "glueyness" their memetic connections allowed. Since their shared memetic culture was essentially nonexistent, they shattered into many smallish nations, often along racial and religious boundaries.

The USA had memetic glue in the form of religion (and, momentarily, anti-red sentimentality). Religion can't really prove untenable unless it interferes with the government to a significant extent.

Religion is a strong glue. But it can't bind a nation the size of the USA to a single oligarchy. It glues us down into approximately the same level of competition as a much smaller, non-religious first world nation. Same amount of competition, a hundred times the resources. Instant superpower, just add industrial-military complex.

At least, that's what I think. Actually, I think considerably more in detail - active memetics, cultural memetics, passive memetics. But it's my core idea, and I find it an interesting one.

There's no way to test it, as far as I know. But it's fun to theorize.

There is some supporting evidence for the idea of memetic glue. China, for example, uses excessive amounts of propaganda and censorship as memetic glue. Japan classically had exceedingly strong glue without a high population, explaining its sudden dives and drives.

Africa has no real strong memetic glue. It is fractured. Australia has a relatively small population clustered in cities. Europe is fractured, and has little memetic glue. Individual countries use nationalism as their memetic glue: France has Frenchmen, England has Brits, and they both know the difference and are proud of it.

South America has no real glue - there is quite a lot of religion, but no real agreement as to a primary one. Fragmented. India: a core religion binding kazillions of people together. It may prove untenable, since it has its fingers in the government, but at least at the moment India is progressive, with a high level of internal competition.

The middle east is a puzzle piece I haven't figured out how to rotate into place. I just don't know very much about their religion(s). Do the various countries have varied religions, or all the same religion? Why are they shattered the way they are?

China and India are would-be superpowers, but they are both crippled by their memetic glue. India has religion in the government, China is using glue manufactured by the government. Both cases are too sticky, binding too tightly. The government is too strong a binding agent.

Using this, you can look into the future. If religion continues to rise, the USA is doomed. It is either doomed to ogilarchy or to shatter, depending whether the government manages to keep a firm hands on the reigns or whether we slip them off. Either way, the world loses something interesting, unique, and excessively powerful.

Of course, the nation has really been doomed for decades, ever since the foundation of our economy started decaying and we started paying a third of our national budget to people who don't contribute to the economy in the slightest.

Anyhow, sure it's an aggressive, shallow premise. But I'm not looking to win a Nobel Prize, just to work my brain a bit.

Friday, October 07, 2005

Generated Content?

I've been thinking about player-generated content. I really can't imagine releasing a game these days - of ANY kind - without allowing for player-generated content. Even the 2D shoot-em-up I'm building in my copious free time will allow for player-generated content in the form of scripting your own levels, enemies, plots, and graphics.

One-player games with player-generated content are comparitively easy. There's no real problem if they put in porn, there's no huge problem with a dominant strategy. It's just one player. His preferences and his victories really mean nothing to anyone else.

Long-term multiplayer games. Persistant world games. Massively multiplayer games. Whatever name you call them by. They are a bit of a holy grail and more than a bit of a mess.

A little player-generated content goes quite a long way, both in terms of keeping players occupied and creating totally inappropriate content. That inappropriate content could be simply porn, but the starship Pamela's Nipple is a sight which is inappropriate not just because it is porn. It is intended to be a starship, so whether it's Pamela's Nipple or Barney's Head, it's inappropriate.

Similarly, inappropriate content includes content which irritates and interferes with other players. This, too, happens with even the smallest of player freedoms.

But it goes deeper than that. Players can only generate the content you let them generate. In most MMORPGs, this is their name and their tiny piece of the economy. Even in more open titles, such as Eve, few players are actually satisfied with the level of customizability. You cannot invent a new weapon in Eve, for example. Your generated content is primarily social, political, and economic.

Honestly, social, political, and economic content is good. It's good because those are three things which, when recombined with other people, will never really get old to people who are interested in them.

Unfortunately, I'm not interested in them. In fact, the idea of them bores me to tears.

Here I discussed a game idea, and I haven't really stopped thinking about it yet. I've got a design pretty much hammered out. All I need (snicker) is suitable massively multiplayer middleware and some free time.

The only real problem remaining in my mind is recombination.

SecondLife is a game which allows any player to build anything. There are some limitations - a limited number of prims if you're building on a plot of land - but if I sign in, ten minutes later I could build a two hundred foot tall bong.

What my game (codenamed Spider Space) would do is allow players to perform similarly open-ended works... but restricted by time and framework. For example, Joe's character might be a botanist. He can grow plants. He can grow plants which spit acid at anyone who enters. He can grow plants that look exactly like Snake Pliskin. Heck, he could grow plants that act exactly like Snake, if the player is a good enough scripter/programmer.

But building those plants would take time. And I haven't quite figured out how to put limitations on. I want players to be able to do an unlimited variety of things, but only within specific time/skill/energy limits. And I want those limits to be able to combine.

For example, someone who is an interior decorator AND a botanist is a pretty fruity character. But he could create objects which are a synthesis of plant and furniture. A tree that grows chairs. A chair that grows it's own chilly beverage in its own cupholder as you sit there.

And this needs to happen flawlessly and naturally for every possible combination of skills.

How the heck do I do it?

Dunno.

If you have a suggestion, I'll be glad to hear it.

Thursday, October 06, 2005

Virtual Worlds

There are really only two things that inspire me without fail. One is space travel. The other is virtual worlds. Since they're both advanced forms of escapism, perhaps that says something unflattering about me. But, hey, I am who I am. At least until I become the owner of a space hotel or build myself an interesting new avatar.

I always get excited reading about virtual worlds. There's such potential there.

Unlike most people who play in virtual worlds, I'm not interested in gaming in a virtual world. The only real purpose of a virtual world is to facilitate communication. Games are a particular message, a particular language. I'm interested in all languages, not just that one.

All communication mediums do this. Air, books, telephone, the web. They all allow humans to communicate with one another at various distances and delays and privacy levels. Each supports different basic language tenets.

The web, predecessor of virtual worlds, allows for wide-ranging communcation, be it email or web page. Unfortunately, these communications are high cost and low bandwidth. You can spend more effort for higher bandwidth, but it requires the person on the other end to be willing to spend more effort as well: every picture you include, every sound, every frame of video comes with a price attached that the average user will suffer. This is especially true since each person has different communication expectations from the web: some people are happy to have full video. Others don't even want pictures.

The thing is, the web is engineered to communicate in the same nameless, faceless way that books and, to a lesser extent, telephones do. The things we take as communication are not simply the words in a message: words in a message are a distant last place in our minds.

Our minds are geared towards faces, body language, intonation, appearance. Moreover, we don't limit our data gathering to people: walking into a building, flying, smelling food. We collect information with all our senses, and a simple string of words is, perhaps, the least intrinsically interesting method of doing so. Moreover, it's limited, since it doesn't take advantage of our senses.

We gain a shocking amount of data from our full senses, especially sight and sound. See and hear a car crash, you'll feel the rush of adrenaline even if you weren't in the crash and don't know who was. On the other hand, read "the car crashed!" and - nothing. No emotion at all.

The strength of a virtual world is in re-aligning communication with our natural, full-bandwidth capabilities. What we communicate is largely irrelevant, but how we communicate gets ever closer to the way people actually perceive things.

It's not limited to our natural methods of communication, either. Knowing that people collect information from hundreds of sources, virtual worlds allow you to use those channels for communication even though you cannot do so in real life. Choose your avatar's appearance. Build a building in a day. Twist reality as you wish to communicate with the people around you.

Choose how difficult it is to communicate carefully. Usually, speed is sacrificed for range. In reality, saying "let's go get coffee" is a tiny effort. In a game, saying "let's go get coffee" is several seconds of typing and it comes out without any nuance. Shortcut keys could be bound, but this means you're stuck saying whatever your shortcut keys say.

The only real way around this is allowing vocal communication, but that's not very good, since most people's avatars don't closely match their voice. 12-year-old Jimmy doesn't make a very impressive Troll as he squeeks, "let's kill something!" So, in a game where avatars are critical, you'd require some high-tech vocoding that kept the emotion and message while changing the underlying message of "who you are".

Similarly, in Second Life you can build avatars and buildings. You can even instantly change avatars and buildings by simply selecting a different set-up. But that's a pre-programmed change. What if you decide you want to show Gloria a beautiful forest scene? Unless you had something perfectly suitable already in your inventory, you'd have to spend hours and hours building one. That's a lot of effort.

How that could be accelerated is beyond me. But make no mistake: it will be. That's a method of communicating, and as we go on all methods of communication will become faster, sleeker, and more robust.

Until the virtual world allows for faster, more robust expressions than the real world.