The Mystery of the Missing DX DLL

As a newbie to releasing DX9 games, I’ve just been bitten by this 3-year old problem, so I’ve been digging around on this missing DLL issue. I’ve found that the real explosion of pain began in 2005, when MSoft did weird releases of DirectX9, including a new and different DLL every couple of months for a while.

They provided a DX9.0c installer, but… it failed to add all the different possible DLLs an app could reference. So players had problems, and simply re-installing DX9.0c didn’t fix anything.

The developers complained, and MSoft told them to ship all games with the DX runtime installer that came with their exact version of the developer package, adding 10-20 megs to the download size. Lame.

Many users simply chose to download the individual missing DLLs, and slap them in their windows/system32 folder. That works, but several shady websites began offering these files, within which could be hidden malicious code.

The developers often found themselves shipping the game with the DLL files in the game’s root directory. This too works, but still bloats the download size. PLUS, doing so is expressly against MSoft’s EULA, for what it’s worth.

A few developers have made these files available in their own install packages, which fixes the EULA problem, but otherwise is only better than shipping with the whole dang runtime installer.…asp?p=D3DX+DLL

Finally, I’ve found posts by a MSoft guy who swears that the real, best solution is to tell your players to go use the MSoft Web Installer:

Am I missing something, or misunderstanding? Has anyone got a better way, or more information? Thanks!……

Lost Odyssey

I just picked up Lost Odyssey for the X360, and played for a couple of hours. Clearly I haven’t played enough to be able to judge the overall quality of the game itself, but this rant is about something bigger.

Jeez, could there BE a more tired old game genre? For all its fantastic beauty,…Lost Odyssey plays exactly like a 20 year old game. Can’t we go somewhere new with the mechanics? And no, let’s not just make the battles real-time. That’s almost as old, and not the point. The point is, when I play something like LO (or Persona 3, which I talked about earlier this year), I just wanna run back to my computer and code up an entirely new vision of party-dungeon interaction.

That’s much easier said than done, of course. But I’m not sure I can say, "If it were that easy, everyone would do it." Clearly there’s a giant market for the same old dungeon-crawl mechanics, and a whole bunch of players who see nothing wrong with playing 50 different games that all function nearly identically. Japanese developers are famous for doing the same thing over and over. LO is from Square Enix, after all. And ChunSoft has been doing nothing but cutesy rogue-alikes for ten years (which makes my wife happy).

On a related topic, I have a profound dislike and distrust of Hollywood. So when I find a game like LO, which is really a "cinematic experience" assembled on top of a game engine, I naturally assume that some movie guy wanted to make a movie, and settled for making a game, and that situation bugs the hell outta me. You never see a video game guy desperately want to make a video game, but settle for making a movie, do you? Of course not. Movie people look down upon games as an inferior art form (they aren’t) and just assume their movie skillz will naturally allow them to make a good game (it won’t). They don’t get that the Art of a game lies in its functionality and gameplay, NOT its designer-imposed storyline.


How to make a puzzle game

Next Tuesday I’m on the hook to give a presentation called, "How to Make a Game Like Pacman". However, after playing Braid (the new XBLA game from Jonathan Blow) I feel like puzzle games need to be addressed, too.

Braid is a puzzle game masquerading as an old-school platformer. It’s good, with interesting puzzles and plenty of quirky meta gameplay (excellent presentation, too.) But it still falls into a puzzle game pattern that…

I’ve been aware of for a while. Now, I will share the pattern (the how-to) with you. Use this knowledge well.

Basically, a puzzle game is a collection of objects on a playfield. The types of objects interact in interesting ways with each other and with the playfield itself. The objects are (in some way) interactable; you can move them, turn them, push them, etc. By interacting, and thru the relationships between the objects, you can achieve some goal (win the level). In many puzzle games, the avatar (the player’s character) is an object, and the level is interactable by using the relationships between the avatar and the other objects on the playfield.

Let’s break it down:

1) choose an overall theme. Is your game about clouds, fire, the desert, sadness, clowns, or the sadness of flaming clowns?

2) come up with some objects you’d like in your game. What if we make a puzzle game with fishes and flamethrowers? Think about the interesting ways they could interact. Flamethrowers can burn or cook or repel fishes.

3) come up with a playfield for your objects. Many puzzle games just default to a simple grid, but that’s one of many possibilities. Braid’s playfield is a 2D platforming level, like Super Mario Bros.

4) now you’re ready to build a matrix, a grid showing all the relationships between each type of game object. If your game had three object types (avatar, fish, and flamethrower), you’d build a 3×3 grid, and fill in each box with every possible interaction of two objects. Actually, you’d build a 4×4 grid, ’cause it’s important to detail how each object interacts with the playfield, too.

5) now it’s time to actually program the first version of the game. Code the playfield, the objects, all the interactions, and the ways the player can control the game to reach the goal. And there’s one more critical thing you have to make; a level editor.

Puzzle game game levels are all designed meticulously by hand. Do yourself a favor; make the level editor as powerful and easy-to-use as possible. It won’t just make your life easier, it’s also a great feature for your players to make their own levels (which you can appropriate and sell as an add-on pack, or just host on your forums for free).

6) now it’s time to make levels. Each level should have an "Ah-hah!" moment, where the player realizes what they must do to win. In order for them to have that moment, YOU must have it first. Dreaming up 50 levels of "Ah-hah!" is actually really hard, but there’s a good place to start.

Look back at the matrix you made in step 4. Each of those grid boxes is an "Ah-hah!" moment waiting to happen. In the example 4×4 matrix above (avatar, fish, flamethrower and playfield), you have the concepts for 16 different levels ready to go. Just build one level for each interaction in the grid box.

After making those, keep making levels. You can’t make them all at once. You’ll need days to come up with enough ideas for levels. You’ll get cool ideas for levels in the car, or while brushing your teeth. Write them down and implement them all.

7) So your game works, it’s got a bunch of levels, interesting objects, and a powerful built-in level editor. Congratulations, you’re 33% done! Now you have only two things left to do; make it beautiful, and make it perfect. Polish, polish, polish. Keep working on it until you’re sick of it, then take a break and get right back at it. Get everyone you can to play it. Watch over their shoulder to see how long it takes them to do each level. Then get back to polishing.

Jonathan Blow worked for more than 3 years on Braid, and most of that time was spent polishing. I’ve read of many other puzzle game developers, who work in the same exact way. If you can’t commit yourself to that amount of slavish devotion to your puzzle game vision (and lord knows I never could), you might try making some other type of game.

Puzzle games are a lot of hard work, not just in the tremendous amount of polishing and refining you have to do, but in the hard thought necessary to come up with interesting puzzle levels. But if you can work that hard, follow my pattern and you can’t go wrong.

Profound podcasting

I’m a regular listener of the Evil Avatar podcast ( ) mostly because I need something to listen to while exercising. But today I came across something in their podcast that SEEMED to be profound.

You can listen to an 8 minute clip from the show here ( ).

In it, the speaker says…that his concept of gameplay has changed fundamentally. He understands that social connectivity is a powerful part of playing games, and he no longer feels comfortable playing single-player games without an added (or integral) umbrella of social connectivity. He doesn’t want games that don’t leave him screen-space AND mind-space to connect with his buddies.

And he goes on to demand that the connectivity functionality be completely controllable and adjustable. He doesn’t want to spend a lot of time fiddling with settings for who can talk to him and who can’t, but he wants to know that he CAN.

Now, he’s only one voice. But he’s a player, and here he is saying what I’ve been hearing Raph Koster, Mike Steele, and others say for years. Raph said several years ago that single-player games, as we "traditionally" know them, are going to become extinct. And MMO designers have been saying for a long time that nothing really matters except socialization and communication.

Is it possible that both players and designers are converging on the conclusion that EVERY game should just be a mini-game, stuck in a sub-window of your chat client? That ultimately, every game is a meal, and eating alone in a quiet room is unacceptable?

It makes me feel like a dinosaur (again). Ever since I started playing games, my most intense gaming experiences were the gripping, cant-think-of-anything-else, all-consuming gaming addictions that drove me into my room and made me play late into the night. As an adult game developer, I’ve found that feeling more and more fleeting, and set my sites on getting that feeling again.

But what if that’s not the future? What if young players don’t get grabbed and choked by the single-player experience anymore? What if they have a completely different concept of how a good game makes them feel, and that connectivity with their friends is an integral part of that good feeling?

It’s of course probable that some will, and some won’t. It’s possible that I’m not a dinosaur because players won’t feel the way I felt, and play the games I played. Instead, the player base has expanded so greatly from my childhood, that it’s just natural that more players will play more games in more different ways.

In which case we’ll all be living in a very long tail.http://www.evilavatarra……