Wednesday, October 05, 2005

Pong... with math!

I've created a better introduction to vector balancing using pong, and also put in some of the basic math.

Please note: I haven't done breakout, yet. Just pong.

Learn the mysteries of pong!

Sadly, I'm not joking. :P

Click meeeeee! Click me!

Tuesday, October 04, 2005

Pong, Dissected!

I wrote a simple introduction to my vector balancing, using no math. Currently there are no illustrations, either. It's in .rtf format. Let me know what you think, but read it only if you're a geek.

Here.

Pinball?

Darius pointed me here. Eee!

In case I haven't been entirely clear, I love - absolutely adore - 2D vector games. Examples of 2D vector games are fighting games and scrolling shooters (shmups). Even 3D fighting games are actually 2D vector games. Platformers such as Metroid are also 2D vector games, although not the style I prefer.

But before them all came Pinball.

Back when I was just a wee boy with my Apple II, I did two things: I wrote my own games, and I played two games. At least, two games I can remember. One of them was Hard Hat Mack, which I remember only because it was the first game I ever misplaced, and I spent a few hours every week searching for it in vain.

The other game was the best game ever (at the time): The Pinball Construction Set. With a picture of a white hand holding a silver ball over a Tron grid. Although, at the time, I didn't know Tron.

I don't think it's stretching to say I "played" that "game" for hundreds of hours, in one-hour increments. (More than one hour and the Apple II overheated, randomly flipping bits.)

It was the beginning of my love for vector games, and it has never been fully replaced by anything else. It was also a very solid place to begin, since it taught the simple fundamentals that all vector games are built on.

I never built my own pinball game for three reasons. First, it's really tough to get the physics simulation to work believably. Second, it was beyond my programming skills when I was young and beneath them when I was older. Third, I had the Pinball Construction Set, so I built dozens of pinball games inside that. You know what I found?

It's really hard to create a perfect game of Pinball.

After all, the relationships between bumpers, sinks, chutes, flippers... all so complex! Even the basic Windows pinball program, "Space Cadet", is dauntingly complex, with all the flashing and bouncing.

Most vector games are deceptively simplistic. Some rely mostly on speed, some rely mostly on tactics, but they all have one motion. They don't bounce. Bouncing makes vectors really hard to track.

That's why Pinball has only one ball - two, if you're playing hard. I even once played a (real) pinball machine which put three silver balls in play. That was a rush, but insanely difficult. After all, that's three balls which are constantly changing direction. You can't just glance at them, say "it's heading there", and look away. They'll be bouncing off something soon. In fact, in that particular game they ended up bouncing off each other, which totally screwed up my mental game.

Seeing the Gamasutra article brought it all rushing back. Recently, I've been analyzing different vector games, coming up with the math to balance and dissect them. I long ago applied them to shmups, I'm researching applying them to fighting games. I'll make sure to add pinball to my list.

Monday, October 03, 2005

Word Verification

Due to growing amounts of spam, I have turned on word verification. Irritating, but necessary.

Friday, September 30, 2005

Me Brain Hoits!

Last night I had one of those brainstormy nights, where you come up with great idea after great idea after great idea. Unfortunately, none of those ideas include "sleep", so I'm pretty damn tired today.

Still, I'll do my best to explain one of these ideas, which is a clarification of how to use 3D representation and game design to create an interactive non-game experience for the purposes of telling people stuff. I also thought up a really great way to simulate romance in games (not sex: romance). I think it's astoundingly awesome, but it's not something I want to show off until I've verified that it works.

Ahem. 3D representation and game design.

Actually, this post will just limit itself to adaptive game design. I've got things to do, and you've got more interesting blogs to read. 3D representation will come later. I came up with this idea long ago, and I even have the algorithm to support it with... but it's still untested.

Presumably, you all read books, at least on occasion. You've probably noticed that sometimes you don't feel like reading a book, sometimes you do. Moreover, sometimes you feel like reading, say, Asimov. Other times, you might be in a Piers Anthony mood. Still other times, you might feel like tackling a textbook or a magazine. A given book can't be all those things without being really irritating... but why do games limit themselves to one particular mood/genre?

The thing that software can do which they presently don't is adapt to the mood of the player. Some people are making forays, but they're hideous mockeries - like Yahoo's "MindUnSet" system. Defining several different "moods" for your game or software might take quite a bit of added time, but with the middleware explosion, costs in both time and money are going to drop for us indies.

In addition, it's easy to tell what the memetic landscape of the player is. For example, it's generally pretty easy to tell what the player's favorite characters are, and from that establish a meme. I tend to pick the cute girls for my initial run of a game, and drop them only if they prove to be useless. It's pretty easy for a game to determine what one of my interests is from that. I hate mascot characters - I kill them and leave them dead, even if it makes the game phenominally hard. Again, you can clearly see my memetic landscape.

A game could easily adjust to that memetic landscape, either pandering to or educating the player. You could easily explore social concepts such as equal rights, communism, gift cultures, and a thousand other concepts this way. Or you can just pander to their already existing interests. But you can't do it with a nonadaptive game, because you need the memetic hooks. You need to know what buttons to press to get the player interested.

Thursday, September 29, 2005

Network of Trust

Darius accidentally pointed me at this guy, who apparently has some of the same basic ideas as me about personalized networks. This guy, Charles Bloom, talks about a network of trust and explains it in the same basic way I once explained mine. Did I explain it on this blog? I'm pushing 300 posts, so I would bet I did, but it would have been long enough ago that without a handy-dandy search function I'm not going to look for it.

His idea is either incomplete or just poorly explained. As I pointed out here, you need a remarkably complex tool for determining what content should be rated at what level... and a way to either fully- or semi-automatically put content into its particular "band".

This is not as easy as simply making categories, because categories are foolishly large and are usually diluted with irrelevant material extremely quickly. For example, a "music" category would not be detailed enough. Neither would a "rock" category. And what about a song which is rock AND soul? Does it go in both categories? Neither? What about the jerk who puts naked pictures in every "music" category you have?

The categories need to be created automatically and things need to be plunked into them automatically, based on who rates what as what. That's not an easy task, but neither is it insurmountable.

The other half of this setup is what it can be used for. It could be used as a P2P network, sure. Could Google use it in "Google search"? No, not really: the whole concept revolves around it being central to the computer, and making it a P2P setup is really ideal. Otherwise, Google is taking on a lot of overhead for very little benefit. Ideally, it's a program you punch up - like eMule - and it knows who to contact and who you trust at what levels. As you rate downloaded content, it would automatically re-rate the trust ratings and update your "spectra" - what kinds of content you like and what kinds of content other people like.

It would really work well because the machines could ask favors from each other in order to increase trust in general. For example, your server is being hit with ten thousand requests for a fifty-meg file. Your server goes to its friends and says, "hey, host this, would you?" at which point it can redirect would-be requesters to these new computers. Then the new computers gain trust from their downloaders, you gain trust as a router, and the file gets spread. You could even negotiate to download only to programs that agree to keep the file hosted for a certain number of days.

It would also be nearly ideal as a news client - think Blogroll, but with exceptional, largely automated content control. You could sign up for my blog, but choose not to receive any of my posts which were (A) longer than 500 words or (B) about theory. You could trawl through blogs in general, using the spectra controls, number of links, and indirect trust level to highlight blog posts you're likely to like.

But the real key here is that spectra. You need to be able to decipher the myriad of goods offered in the network into a set of categories - either explicit categories or implicit categories. But you can't just have a certain number of predefined categories, and you certainly can't allow people to create categories willy-nilly.

You either need a central database which dissects all the traffic and turns all the clients into lists of bands... or you need to have each client do that on its own. Which is more efficient? I don't know, but having a central database is both more expensive and legally more iffy.

Hm.

Well, thanks for the interesting read, Mr. Bloom.

Wednesday, September 28, 2005

Partioned and Counter-Weighted Game Elements

The MMORPG of the future is going to have some trouble.

Right now, massively multiplayer games are essentially really long RPGs. Players level through them, reach the end, and eagerly await an expansion. However, balancing an RPG is a science which has yet to be founded. This means that the game gets rebalanced every month or so, especially right after a new expansion. Moreover, just the act of releasing an expansion rebalances (or unbalances) the game.

You can't leave a game unbalanced, or it becomes a dominated strategic space. IE, not a game, but a puzzle. A solved puzzle.

The thing is, this isn't healthy.

First and foremost, it requires serious manpower. All this data-mining and re-balancing takes employees, each of which costs probably $100,000 a year... or more! Certainly not affordable for a niche game, and even a big-name game should think twice before just dropping that kind of cash. Especially since the balancing is usually pretty tenuous.

Second, it pisses off the players. Rebalancing will always please some people and piss off others - but you don't need the additional pleasure and the additional pain is not at the top of your list, either.

Third, the law is about to hit hard. With real money trading, it won't be long before game administrators find themselves getting sued by people with tens of thousands of dollars invested in the game - tens of thousands that were just cut in half by a rebalancing effort. Especially plausable in games where one player can conceivably upset the balance simply by investing tens of thousands of dollars.

What's the alternative?

No rebalancing. Sure, have add-ons. Whether player-generated or corporate-made, they're all but necessary to keep a game like this interesting. But build the game so it doesn't require balance.

How?

Partition and counter-weight your gameplay elements.

Counter-weighting is simply making every feature have a counter-feature.

For example, every game with stealth should have an anti-stealth. The ability to detect stealth in every manner that stealth gives an advantage. If stealth lets you rob houses, houses need to have traps. If stealth lets you steal from players, players need to be able to invest in wards and watchers.

Is stealth too powerful? All that means is a rise in the stealth-related population. Stealthy people become more popular because stealth is more useful. Anti-stealth becomes more popular because stealth became more popular. Stealth stops becoming more popular. Equilibrium is reached, albeit with a larger stealth-related infrastructure than you might have originally planned.

If you release "The Hounds of Orgoth", which gives thieves a significant bonus if they do such-and-such, you won't be unbalancing the game. All thieves will flock to Orgoth, but when they emerge all that will follow them is a horde of anti-thieves, getting fat on protecting people from thieves. Maybe the anti-thieves are also thieves... which brings us to the next point.

Of course, to do this you need to design your game with it in mind from the ground up. You can't reasonably expect to paste this sort of fundamental feature into a game that's in development.

Because none of the gameplay elements can stand alone.

No matter how many thieves or anti-thieves there are, they cannot do anything very well without non-thieves. Or, at least, thieves who do other things. Thieves, no matter how good at stealth, are greatly enhanced by having wizards, warriors, blacksmiths, alchemists, and any other class around. Not only because they're easy to steal from, but because the gameplay advantages they offer are overwhelming. A thief with a sword is better off than a thief without one. A thief with an invisibility potion is better off than a thief without one.

Because of this, even if thief was the uberclass, thieves would be all but forced to find and hire non-thieves to boost them. "I'll protect you from other thieves if you make me invisibility potions," for example.

The same could be true no matter who the 'unbalanced' class is. If it turns out that potions are insanely powerful, everyone will want to be an alchemist... until the market is flooded with potions and nobody to buy them. Self-correcting, self-balancing.

Counter-weighted.

Of course, this produces a vibrant, complex, and thoroughly daunting world. Newbies and casual players will feel lost and outgunned.

That's where partitioning comes in. But this post is already long enough.