Get Phit

Thursday, July 31, 2008
 0 comment(s) send this post to a friend
Phit for the iPhone
Phit for the iPhone and iPod Touch is now available from the iTunes store. Get Phit!

Labels: , ,


iPhone 3D Renderer

Friday, June 13, 2008
 2 comment(s) send this post to a friend
iPhone SimulatorProgress on porting Phit to the iPhone has moved quickly this week.

On Wednesday I set out to port my 3D renderer from Windows to the iPhone. This is a renderer I've maintained for several years and which I use in teaching 3D rendering for games at the Guildhall. (A renderer is a piece of software that displays 3D objects on the screen.)

Porting the renderer proved much easier than I expected. Now I can load and display 3D models—like this one from Unreal Tournament 2004—on the iPhone simulator.

I was surprised that the renderer ported over so well. It was written for the PC. On the PC it supports both Direct3D and OpenGL—I stripped out the Direct3D portion. It is quite a large piece of code, with about 40 files or so and maybe 15,000 lines of code. I've only ever compiled it with Visual Studio, and the gcc compiler used for iPhone is substantially different.

I thought the biggest hurdle would come from the fact that the iPhone framework is written in Objective-C, whereas my renderer is all C++. As it turns out, Objective-C files that have the extension .mm happily coexist in both worlds: they can call C++ object member functions as well as Objective-C object methods. So I wrote one or two Objective-C classes to interact with the iPhone OS and framework. I have my two dozen or so C++ classes that make up the engine. And then I have three or four "adapter" classes in .mm files that help my C++ classes talk to the iPhone OS.

I tried to get an iPhone this week to test the code on. (The iPhone Simulator on the Mac tells you nothing about how your code will actually perform on the iPhone. Presumably the iPhone will run quite a bit slower for complex 3D scenes.) Unfortunately, with the June 9th announcement of the new iPhone, nobody is selling iPhones anymore. So I got an iPod Touch instead. But I'm still having to wait because Apple hasn't gotten us our Developer certificate yet. You need that to make your iPhone/iPod Touch into a development device.

So on the one hand I'm learning the iPhone SDK. On the other hand I'm working on Phit, upgrading it for life on the iPhone.

Specifically, I wanted to improve the way the pieces move in Phit, making them smoother and more natural. The iPhone sets a high standard for user interface "feel", and I want iPhit to meet or exceed that standard.

So I'm creating a new physics system for iPhit. It uses Verlet integration to move and constrain pieces, and features a sophisticated collision detection system so that pieces can "stack" and won't pass through each other. The implementation I have now seems to work very reliably, but is slower than I'd like. Still, it begins to give an idea of iPhit might feel on the iPhone. Feel free to try out the new physics and let me know what you think.



Labels: , , , ,


iPhit Coming Soon to iPhone

Monday, June 09, 2008
 4 comment(s) send this post to a friend
iPhitSince the release of Phit last year, this simple, addictive puzzle game has become one of the web's most popular past times. Now it's time to spread the word that Phit is coming to the iPhone.

For the past few weeks I've been working with Armor Games to port Phit into a native iPhone application. We're adding multi-touch capability so you can drag more than one piece at a time. We're updating the way pieces move to be more fluid and responsive. And we're providing a whole new set of fresh puzzles—even experienced players will discover new challenges.

We think Phit will be the perfect boredom-basher for iPhone users everywhere. Keep an eye on this space to find out when iPhit will be available in the iPhone App Store.

Labels: , ,


Agnostiphobia

Wednesday, May 28, 2008
 1 comment(s) send this post to a friend
Mike Hyatt, CEO of Thomas Nelson Publishers, talked recently about how they choose which books to publish. He reveals two key criteria: brand equity and competitive advantage. Brand equity asks, "Will people buy this book because they recognize the author?" Competitive advantage asks, "Will people buy this book because it has great writing and ideas?"

Then Hyatt drops a bombshell. At Thomas Nelson, competitive advantage is more important than brand equity. A well-written book with great ideas, he claims, is better than a book with a famous author. He awards well-written/great-idea books "Tier B" status, whereas books merely written by famous people languish in "Tier C." (Books with both great writing and a "platformed" author receive the coveted "Tier A" rating.)

Brains over beauty? That's what Mike claims. Score one for the little guys! Publication—here we come!

And yet—something about Mike's post strikes me as fishy. Maybe it's my own sad experience of smashing up against the door to publication. Maybe it's my inner cynic gritting his teeth at a cruel glimpse of hope. Or maybe it's the fact that out in the real world, publishers don't think like Mike Hyatt thinks.

Consider Thomas Nelson's own bestseller list. (It's not actually a bestseller list. None of the top three titles score better than 4,000 in the Amazon sales rankings. It's a "what we wish were bestsellers" list.)

Come On PeopleWho's the author of their number one "bestselling" title? Bill Cosby. Yes, that Bill Cosby.

Number two: Max Lucado, the most prolific writer in Christendom.

Three: David Jeremiah, megapastor. Starting to see a trend?

The trend continues through the top twenty, thirty books. William Bennett. Beth Moore. John Eldredge. Stasi Eldredge. Another Max Lucado. Frank Peretti. Bono. In fact, every author that Nelson spotlights as a "bestseller" is either a TV personality, an already-bestselling author, a radio host, or all of the above. I see Tier A books (celebrity + good writing). I see Tier C books (celebrity + bad writing). Tier B books are conspicuously missing.

Mike Hyatt says good writing trumps celebrity. His company's favorite books are all about celebrity. Where's the disconnect?

In a more recent post, Hyatt lays out some of his reasons for blogging. He says, "When I am writing, I have my employees in mind first." Maybe this statement holds the answer.

Maybe when Hyatt champions good writing, he is prescribing policy, not describing it. Maybe he regrets that his editors and marketers clamber after titles with "platform" while overlooking quiet gems. Maybe he wants to reverse the trend.

But is it really reversible?

Having worked in the video game industry for over a decade, I've seen the inner world of how games get chosen and made. I've seen great ideas passed over because they didn't have a game god to champion them. I've seen millions of dollars poured into losing ideas because the people who pushed them were "stars." In the games industry, celebrity almost always trumps quality.

The principle is universal. In an uncertain world, decision makers gravitate toward what is familiar rather than what is actually good. I got a Mac last week. I love it. Why didn't I get one before? Uncertainty. This morning I was thinking about buying a new file server. I visited the Dell site. Later I thought: "If I love my Mac so much, why don't I think about getting a Mac for my file server?" But I knew the answer: Uncertainty. I know Dells. I've used them for years in a million ways. Sometimes they've betrayed and cheated me, but I know their wiles. They may be worse, but I know how they're worse. I didn't even considering buying a Mac.

Fear of the unknown. Maintaining the status quo. "A fool returns to his folly like a dog returns to its vomit."

Imagine I'm a book editor. I've got two crisp manuscripts in front of me. On my left is a proposal by an unknown author who quilts in his spare time. His book is luscious, profound, riveting, hilarious, life-changing, world-changing. On my right is a proposal by Joel Osteen entitled Polished Turd. Which do I buy?

The answer is not as obvious as you might think. It comes down to a question of numbers. How many early adopters will each book attract? What will the book's infection rate be?

Every product—game, book, toothbrush, anything—has some number of early adopters. These are the people who buy a product as soon as they get wind of it. They're fans. They search for news about the product. They subscribe to the mailing list. There are 1 million people who will buy U2's next album on the day it comes out. (I'm one of them.) They don't care if it consists of 60 minutes of pulsing static: it's U2, they'll take it. These are U2's early adopters.

Those of us who make and sell products love early adopters. Three reasons:
  1. They buy early.
  2. They buy predictably.
  3. They buy crap.
A product or brand that has lots of early adopters is guaranteed lots of early sales. Even if the product stinks and nobody but early adopters buy it, at least you've made that initial wave of sales.

So what's a book editor to do? I look at the initial sales figures for the last Osteen book. That tells me, roughly, how many early adopters he has. ("Roughly" because if the book sold well after the initial wave, the number of fans probably increased, but if it sold poorly then we may have lost some.) I do the math. The J Man (as I teasingly call him—we're old pals by now) will sell at least 2 million copies of Polished Turd. Well, okay, discount 25% because of the title. Call it 1.5 million.

Now I look at Quilter-Boy's masterpiece. If everyone in the world were forced to read it, 90% would love it and world peace would ensue. But we can't use force, unfortunately. So we pay for endcaps in B&N and Borders and slip Amazon a little something to nudge their Recommendations engine. Now millions of people will see the book. It will pass across their optic nerve, if only for a moment. Will they buy it?

I laugh aloud and shake my head, recalling past glories and regrets. Phew! What a question that is! How long you got?

Poisonwood BibleWill the title grab them? Will my cover designer score another Poisonwood Bible? Who can I get to write the blurb? Who can I get to endorse? Who'll write the forward? How handsome is the author? How interesting his bio?

What's the competition? Will this book stand out? What titles are other publishers developing that could get the jump on us?

Is the world "feeling" this book? There's an edge of gloom to this guy's writing—is the mood of the day on the upswing? Maybe we should let it lie for a year or two. The market might be more open then.

So how many early adopters will we get? Unknown. I can ballpark it. But ballparking doesn't feed the kids.

So we ask another question. What's the infection rate? Will the thousand-odd people who read this book in the first few weeks get their friends to read it? How many early adopters will become evangelists? How virulent will their evangelism be?

"Yeah, I read it—it's okay." "There's this book I've been reading that has really got me thinking." "Listen! I just finished this new book—in one night—and you have got to read it. If you don't, we can't be friends anymore."

The infection rate is a number. It answers the question: How many new readers does each new reader make? Zero—the book is a bomb. Nobody who read it recommended it. Zero point Five—the book is okay. One out of every two readers got someone else to read it. One—the book is good. Every reader made another reader.

Two. Five. Ten. Now we're getting into Philosopher's Stone numbers. People can't talk about the book without wiping foam from their lips. Those who haven't read it feel they have to apologize.

This is what I want for Quilter-Boy. He deserves it. But will he get it?

Unknown.

For both books, their sales will be the result of their early adopters and their infection rates. An unknown author's only chance is to write such an incredible book that the infection rate is huge. Even then, infection takes time. Harry Potter's first print run was 500 copies. That was 1997. It took two years—it must have felt an age to Rowling—before the series hit the bestseller lists.

Why would an editor take a chance on so many unknowns? Here's where Mike Hyatt steps in. "We have to find the next generation of talent," he says in a related post. "In fact, we will continue to take risks on those relatively few manuscripts that are exceptionally well-written."

Why? Because the safe road leads to stagnation.

We're learning that hard truth in the games industry, where every other game is a remake of DOOM. The risky, innovative Wii is trouncing the competition. The latest Unreal Tournament (the fifth installment in the series) sold worse than all the others. Even the evergreen Ultima series died around sequel #7. (I helped dress the corpse of #9.) If the youthful games industry is learning it, the book industry must have learned it centuries ago. When it comes to choosing what product to make, risk is a necessary evil.

So I don't believe that Thomas Nelson—or any other publisher—will ever take on risky writers with as much enthusiasm as we'd like. They'll tell themselves that their Tier Cs authors belong in Tier A while tossing Tier Bs out the window. Mike Hyatt imagines a world where Tier Bs get the respect and investment they deserve. It's a dream, but maybe dreaming it can make it more true.

Labels: , ,


Sculpture Garden

 0 comment(s) send this post to a friend
SculpturesOur family invented a new game this weekend. It's fun and cheap so we thought we'd share it with you.

We call it "Sculpture Garden." It's good for any number of players. Our 3-year old found it boring, but our 5- and 9-year olds loved it. It would probably work for 4s too, but we don't have one to test with! Oh, and I liked it a lot, which is more than I can say for most children's games.

To play, you need a set of wooden play blocks. If you have kids, you probably already have some. You want a set with interesting shapes (not just cubes) and plenty of pieces. Our set started out as 100 pieces, but we've probably lost a few.

Begin the game by removing all the blocks that don't sit "flat." Our set has triangular blocks and a sort of curved block that don't stack well. We set these aside.

Now pick three blocks and set them down about 9 inches apart. Choose who goes first, then take turns.

On your turn, you pick a block without looking (we kept them in the box, averted our eyes, and reached in). Then place the block on top of one of the three stacks.

If a stack falls over, you lose! If more stacks remain standing, the "surviving" players can keep playing to see who gets first place.

That's all there is to it.

Yes, it's like Jenga. But:
  • You don't have to buy a Jenga set.
  • It's faster to set up and put away.
  • There's more strategy. You can decide which stack to place a block on each turn, and this choice allows you to "rig" other players.
  • The stacks make interesting, abstract sculptures that look quite fun—until you destroy them.
(The picture shows a game where we were experimenting with a variation. In the variation, you can use any block—even those that don't "stack well." When you place a block, you don't have to put it on top of a stack—you can put it anywhere it fits. We're not sure whether we prefer the variation. We'll let you know.)

Labels: ,


Unsolved Problems in Digital Game Development

Friday, May 23, 2008
 0 comment(s) send this post to a friend
FogI spoke on the subject of "Unsolved Problems in Digital Game Development" at a recent meeting of the IEEE Consumer Electronics Society in Dallas. The talk laid out the current state of game technology, then outlined some problems that remain unsolved. I focused on three problems: Atmospheric Rendering (i.e. fog), Realtime Radiosity (i.e. indirect lighting), and Simulating People (thinking here mainly of the complexity of integrating AI, animation, and physics). I focused on these three because solving them would make such a great difference in the video game experience.

In truth, interesting possible solutions for all three of these problems have appeared in recent years, so they're not entirely unsolved. I showed several videos of these early solutions in action. The group seemed to enjoy the talk, and I enjoyed giving it. A PDF version of the talk, with links to the videos I showed, is now available.

Labels: ,


Slip Sliding Away

 0 comment(s) send this post to a friend
iPhoneI'm still in the honeymoon phase. I just discovered that I could add Phit as a widget in the Mac Dashboard and play it any old time just by touching a button. Now that's good mashup.

Last night I discovered what Apple means when it talks about an "always on" policy, and again it has made me sad for the PC. On the PC, "sleeping" your system involves several seconds of the system semi-shutting down. Waking the system takes several seconds, and then you have to log back in. On my Mac, sleeping takes no time, and waking up takes no time. I close the lid of the laptop, it's asleep; I open the lid, it's awake. Why can't the PC do this?

I'm searching for a good alternative to Office 2007. Mellel and Nisus both look tolerable. We'll see.

It sounds like I'll need to use OpenGL ES as the drawing system for iPhit. Apparently it's the fastest option for games. I'm well familiar with OpenGL (I teach OpenGL at the Guildhall), so this should be a quick point of entry for me. But I'll run some performance tests early on to verify that I can get 30fps (that seems to be iPhone's max frame rate) with as many moving elements as Phit uses.

I also had a game design thought for iPhit. What if the user could tilt the iPhone in order to make all the pieces "fall" toward gravity? Obviously this would need to be something the user could enable or disable quickly—otherwise it would be too easy to screw up your game with an accidental tilt. But assuming it was controllable, it might offer a neat way to quickly shunt all the pieces off to one side of the board, or to reset the level by sliding everything up toward its starting position. Just a thought.

Labels: , , ,


Speech Impediment

Thursday, May 22, 2008
 0 comment(s) send this post to a friend
iPhoneI just played my first round of chess on my new MacBook using only my voice. The Mac has amazing speech input support. I can make chess moves just by calling them out—"Computer, pawn at e2 to e4." And I'm thinking, "Why have I never used speech input on my PC?" So I click the Speech icon in the Control Panel in Windows—I don't think I've ever clicked it before—and, oh yeah, XP does have speech recognition ("if installed," it cautions). I just never thought to use it before. Because the Mac is unfamiliar, it's forcing me to rethink how I use computers, and I'm discovering all sorts of new ideas.

I suppose it's a bit like moving to another country. In the early '90s I went to college in England and suddenly discovered I was a child again. I was startled by street markings. I didn't get certain grown-up jokes. I was delighted by TV shows that seemed fresh and new to me, but which—I would later realize—were actually banal.

PC users must never look at Spotlight in the Mac OS. It allows you to do a sort of Google Search with Suggestions in real time on your system. On the PC I use Google Desktop Search, but Spotlight is faster and even more friendly. And it comes with the OS. I guess Vista has something like that, but who cares?

I installed the iPhone SDK and played with the iPhone Simulator for a bit. Then I tried to get their HelloWorld project working and was astounded that it failed to compile. I have implemented hundreds—nay, thousands of HelloWorlds in my twenty-five years of programming, and I don't recall one ready-made by the SDK developer that instantly spewed out a hundred error messages. No doubt I just have a setting out of whack somewhere. Still, it's a little worrisome.

Labels: , , ,


iPhit: Porting Phit to the iPhone

 0 comment(s) send this post to a friend
iPhoneThis week I start a new project. I'm porting Phit to the iPhone. The FedEx man just dropped off my new MacBook—my first foray into Mac. Liam uses them at school, so he initiated me. He showed me the button on the bottom of the Mac that tells the battery life. He helped me figure out which power cord to use. He assured me that the white light on the front of the Mac bodes well rather than ill. Then we formed a GarageBand and recorded our first megahit.

I considered a Mac a few years ago but chickened out at the last minute. No right mouse button? No delete key? Why don't you just cut off my arm?

This time I have no choice. I'm making a game for the iPhone, and the SDK requires a Mac. So here I sit, searching for a Home key that doesn't exist (though Command+Left Arrow does much the same thing). Isn't it a little bit ironic, considering Apple's 1984 commercial, how totalitarian is their approach to user interface?

The Mac interface is so slick, though. A high-energy, full-screen movie greets me on startup. Everything is smooth and colorful. It's a beauty bath. I go back to my PC running Windows XP, and it's like watching an old Land of the Lost rerun. Great special effects, for the time.

My goal is to get Phit ported over soon after the iPhone AppStore opens. Daniel McNeely (of ArmorGames) and I have partnered to make it happen. We think people will absolutely love Phit on the iPhone. What do you think—how does Phit with multi-touch sound to you? You'll be able to drag two pieces at once, yank this one out of the way to get that one past. Sitting on a train. Or driving your car. It will rock.

You haven't played Phit? It's a simple puzzle game I made last year that you can play on the web. Try it—it won't bite. Though people do tell me it's addictive. I had a note from a lady who was quitting smoking and using Phit as a replacement.

Over the next few weeks I'll keep you posted as I delve into the dark, mysterious, vaguely Fascist world of making games on the iPhone. Check back often or you'll totally miss it, and then your friends will ask if you saw the last awesome post and you'll have to admit you didn't and then they'll realize you suck.

One last question. Who thought it was a good idea to sharpen the edges of a laptop?

Labels: , , , ,


New Game: Coffee Shop

Tuesday, November 20, 2007
 2 comment(s) send this post to a friend
Coffee ShopI've just released a new flash game: Coffee Shop, available at ArmorGames.com. This summer I partnered with Daniel McNeely, who owns and runs ArmorGames.com, to release Phit. We had so much fun we decided to do it again, and Coffee Shop is the result. James Dalby's art and Chris Branscome's music really bring it to life. Enjoy.

Labels:


Good Game

Friday, August 17, 2007
 1 comment(s) send this post to a friend
Relevant published my article How Video Games Taught Me about God this week on their online portal. It appeared there in an abbreviated and sanitized form. For the full, raw, uncut version, read on.



Let's make a game. Let's you and I sit down together and invent our very own video game. Then we'll show it to our friends, put it up on a website, and people all over the world will play it.

What sort of game should we make? Should we design a strategy game, a puzzle game, a role-playing game, a massively multiplayer game—yeah, how about a massively multiplayer game? Let's make something that will bring people together and help them connect.

What should we put in our game? What features can we think up that promote relationships between players?

First we need a way for people to talk. We'll add a chat window so players can type messages to each other. But relationships take more than words. Let's allow players to choose their faces and expressions. That way they can express their personalities and emotions: solitary or sociable, grumpy or jolly.

Now players can communicate, but they need more to do than stare at each other and talk. They need activities. Let's make it so they can build things: statues, houses, machines—anything. Each player will start with a few parts that they can stick together—bricks, wheels, motors, axles, windows, gears. They can combine their parts with other players' to build bigger and better things than a player working alone could ever make. A single player could build a unicycle, but a couple of players could build a bike, and a team of players could build a bus. This sounds good—our design begins to take shape.

Will WrightWill Wright, the brilliant designer of Sim City, The Sims, and Spore, defines a game as "a series of interesting decisions." Our design already meets his definition. By giving players building blocks and letting them put them together in a variety of combinations, we've envisioned a world that rewards ingenuity. Some players will team up to build artwork—replica of the Statue of Liberty, anyone?—others to build functional things like shopping carts and bulldozers, others to build instruments of destruction like battering rams and catapults, and others to run markets for rare parts or handy devices. I imagine a noisy, exciting, talkative world full of players making, using, and trading things. We have ourselves the core of a good game.

You and I have just done what I do for a living. I develop video games. I helped make Ultima Online, Brothers in Arms, Halo PC, and Phit. If you haven't played one of my games, ask your nephew—he probably has.

Christians often ask me why I—a Christian—would work in a godless, immoral, child-corrupting industry like game development. Not wishing to disappoint, I give them the usual excuses: to shine light in the darkness, to fight the corruption from within, to bring the gospel to geeks and artists. The real answer is more complicated. For me, making games is an exercise in experimental theology.

We Create Worlds

When I started my career twelve years ago I worked for Origin Systems, developer of Ultima Online. Origin's slogan boldly asserted, "We Create Worlds." We loved that slogan; it captures the power and allure of making games. In a very real way, game makers fashion worlds like little gods would.

The word "game"—with its offhand, childish overtones—fails to capture what games really are: virtual worlds. Game designers create vivid, living places. You can visit them, explore them, even live in them. Not long after we released Ultima Online in 1997, we discovered that many players spent upwards of 12 hours a day, every day, inside the game world. We heard of divorces caused by players' gaming addictions. We had created a world that appealed to many players more than the real world did.

The Good Game

As I design games, I keep rediscovering how God's world resembles a well-designed game. Sound ridiculous? J. R. R. Tolkien, that greatest of modern mythologists, once described God as the ultimate Myth-Maker. God, he said, authored the True Myth. Like any myth, the True Myth has plot, events, characters, heroes, and villains. Yet it lives and breathes: you and I dwell in its pages. In much the same way, the real world resembles a game. It is the Good Game, designed and programmed by the ultimate Designer.

How does the real world resemble a game? A game poses challenges, leading players into interesting decisions. Likewise, the real world confronts us with choices and responds to our decisions. Video games have instruction manuals and strategy guides to help players excel. Likewise, God has provided us with the Scriptures to teach us the objectives, rules, and hints (and even some of the cheat codes) to help us excel in the Good Game. The mastermind behind Ultima Online, Richard Garriott, entered his own game as a player named "Lord British." Similarly, the mastermind behind the Good Game entered as a player named Jesus Christ.

A Series of Interesting Decisions

As Game Designer, God has total control over every element of his Game. If he says the sun will shine, it shines. If he says players should blink every few seconds, they blink. If he wants to teleport a player named Philip, Philip goes zipping through space. But in a game—unlike a book or movie—players should have some control. Their choices matter. Much of the skill of game design lies in crafting rules that limit what players can do while granting them freedom. The Nintendo character Mario can jump high, but only so high. He has power within limitations. We see the same principle in God's Game. He grants us, his players, control within the boundaries he defines.

Because players have freedom to do what they want, game designers influence players in indirect ways. A good designer suggests what players should do, rather than forcing them. For instance, many games flash the health bar when your health gets low. This warns you of danger but leaves you free to ignore it: you can carry on picking up bonus points if you choose to take the risk. In God's Game, hunger has a similar effect. By requiring us to eat, God wakes us up and gets us focused on the world around us. We choose when and what to eat, but God's Challenge of Hunger puts the choice in front of us. Without hunger, we would spend our lives yawning and daydreaming—why bother getting out of bed? Hunger lets us know from the opening moments of the Game—from our first seconds of life—that we have something at stake, that we have to play to win.

We all know the rule that nobody lives forever. Death horrifies us, yet serves a good purpose: it tells us we cannot win God's Game through material gain. With one, simple rule, God makes clear that health and wealth fall short as the currency of success—even the healthiest and wealthiest players die and decay. Incredibly, many players ignore this basic, undeniable truth. Jesus' parable of the rich fool who toils for wealth only to lose it with his life illustrates what happens when we forget the Challenge of Death (Luke 12:16–21).

The Challenge of Sex

More than any other game element, the Challenge of Sex advances God's desire to teach players how to love. Yet our distorted views of sex blind us to the genius of its design.

Game designers will tell you that if you want players to work together, you have to entice them. Players prefer to work alone unless cooperation pays off. To promote cooperation, designers give players complementary abilities. In a role-playing game, for instance, archers excel in long-range fighting but succumb to close-range attacks, whereas swordsmen excel in close-range fighting but succumb to long-range attacks. To survive in the widest variety of fights, archers and swordsmen wisely team up. By designing each type of player with strengths and weaknesses, designers encourage players to join forces.

God's strategy for cultivating relationship follows a similar principle. He begins by making half his players male and the other half female—two complementary types. He rewards physical contact between these types with orgasm—the greatest immediate pleasure his creation has to offer. This gives an immediate incentive for every player to connect with a player of the opposite sex. On its own, the thrill of orgasm fails to ensure relationship, but it does get players focused on each other—a move in the right direction.

Next, God attaches the process of childbearing to the sex act. Producing children offers another of the greatest rewards in the Game, and both males and females naturally want children. God designs children to need protection and training, a difficult challenge for parents. This challenge brings players into real connection with their mates: players who want the best for their children must commit to work together with their mate, communicate about their children's needs, and agree on difficult choices for nearly twenty years. A couple pursuing these challenges moves toward true relationship.

Yet men and women differ so greatly, not only physically, but in appetites, outlook, and psychology. God designed this challenge too—not to frustrate our relationships, but to perfect them. The tension between men and women rests on a key imbalance. While both a man and a woman can enjoy the sex act, the woman carries the baby.
Pregnancy—the very thought of it—gives the woman a different perspective from the man. For her, a single moment of closeness can transform her body and change her life. She needs help raising a baby and wants a man who will stick with her. This need for commitment leaves her yearning for deep personal connection before, during, and after sex. The man, with less at stake, takes a more immediate approach. Instinctively he knows he can enjoy a woman, then leave her, so he needs less emotional connection. Yet he benefits just as she does from raising healthy children. Both the man and the woman enjoy the benefits of children and consistent sex only if they commit to a life-long partner. They have similar goals but dissimilar outlooks. Through the design of our bodies, God has posed a challenge that guides us toward marriage and deep relationship.

We often respond to this design with resentment rather than joy. Men complain about reticent wives, women complain about overeager husbands, and the "battle of the sexes" rages on. But God never poses a puzzle we can't solve (1 Corinthians 10:13). He has created us to win at the game of love (Genesis 2:18–24). When we trust him, we see that God gives us these challenges to teach us intimacy. Because men and women look at sex differently, we fully enjoy the benefits only when we commit, communicate, compromise, and—ultimately—love one another. Like the best game designers, God keeps us engaged with wonderful rewards that help us press through the hardest lessons. We choose whether to keep on striving for success or to give up hope. But we must remember that God's Game Manual gives two key instructions: "Love the Lord your God" and "Love your neighbor." If we truly want to win God's Game, marriage provides the best training.

The Grand Design

The great Calvinist creed known as the Westminster Confession states the ultimate objective for players of God's Game: "To glorify God and enjoy him forever." God draws us, his players, toward that objective through hunger, which reminds us we have something at stake; death, which reminds us that victory lies apart from material gain; and sex, which challenges us to work out the puzzle of true love. They represent just three of the many features he designed to grow us and help us succeed. When we look at his world as a Game, we discover a beautiful design full of subtlety and wisdom, crafted for our growth and enjoyment.

Labels: ,


Dedicated Web Server Needed

Monday, July 02, 2007
 0 comment(s) send this post to a friend
Last Thursday I announced my new game, Phit, which the web community received with incredible acclaim. I'm happy about that. But the load on my server has made my site unreliable (it often fails to come up when you visit it) and my service provider is threatening they may have to "take action" if my site keeps being so popular.

What I need is a dedicated server to host my site. The cheapest dedicated server I could find is $40/month. That's more than I can afford. Do you know of anyone who might be willing to donate a dedicated server to host my site? If so, please contact me.

Labels:


Phit released

Saturday, June 30, 2007
 3 comment(s) send this post to a friend
I released a new game—Phit—this week, and it quickly rose to the number 3 spot on Digg. I had more than twenty thousand visitors in the space of a few hours, and my server went down. It's back up now, as you can see.

In other news, I finally put my music up on mp3.com. Now maybe a record company will contact me and make me the new Elvis.

Labels: ,


Scataract

Sunday, June 17, 2007
 2 comment(s) send this post to a friend
(If you're a Mac user, or just don't like pressing Ctrl, you can use the 'W' key or the up arrow to move your ship in the game. In fact, there are lots of extra controls available if you look for them, to suit all sorts of tastes. See if you can find them all!)

Here's my new game Scataract. I hope you like it.

(Its permanent home is here. I prefer to play it there because this page is a bit too bright.)

Last November I decided to program a little game for the logo of my site. I make games and teach game development for a living, and I thought it would be fun to show a game playing at the top of all my web pages. (It's not on this page, but look here, for instance.)

I whipped together the quickest game I could think of: old-fashioned vector graphics because they're easy to make and nostalgic; a space-shooter theme; simple AI; just two or three enemy types. It took me just an evening or two, but it proved to be pretty fun. (continued below...)



Not fun enough, though. So I disabled player control and made it run in standalone mode in the upper left corner of each page.

Around the same time I got up the nerve to do something I'd wondered about for several years. Ever since I saw the game Blinx, I'd been thinking about how to do time-reversal effects. Actually, I got most interested in it while working on Brothers in Arms, because we often had AI problems that were difficult to debug because by the time you saw them, it was too late to figure out why they happened. We needed a way to go back in time. That way we could pause the game right before the bug happened and examine the situation that caused the bug.

Actually, I first started thinking about time travel in games when we were developing Ultima IX: Ascension. I thought it would be cool to have a situation where the player encounters himself in the game—a version of himself from the future—and the choices he makes in interacting with himself affect how he experiences the event later when he is the Avatar from the future. So if you decide to give your future self money, then later when you encounter your past self, he'll give you money. If you decide to beat your future self to a pulp, then your past self will beat you to a pulp. We didn't end up putting this into the game. Seems like somebody should do something like this eventually, though, shouldn't they?

Anyway, so time travel in games = cool.

So last November after working on the site logo game I got up the nerve—as I was saying—to code up a system for manipulating time in games. It's not rocket science, actually. I do the obvious thing: I save the state of every (significant) object on every tick. This amounts to a lot of data, so I only save the last 30 seconds or so. When it comes time to restore the state of the world, I do three things: (1) update the state of all objects that exist both at the current time and the new time, (2) add any objects that exist in the new time but not the current time, and (3) delete any objects that don't exist in the new time but are in the current time. When I've done all that, I've traveled in time. Pretty simple, really.

I implemented this in Flash, and now the game has the ability to record itself as it plays, then pause, go backward, go forward—it's an in-game VCR.

I decided to take my simple logo game and add this time-warping feature. Like in Blinx (sort of), the player could pick up powerups to cause time to pause, to move slowly, and to reverse. If you play Scataract, you'll see those powerups are in there.

But then I got fancy, and it nearly drove me crazy. I decided it would be neat if one powerup would record the player for several seconds, then rewind the recording and let the player play along with his or her own original actions. Now you can have two players at once—a single-player cooperative game.

This in itself wasn't too hard, and that feature is in there—it's the Record pickup. What was hard was a feature that didn't make it. Let me explain.

In the source code, the "Record" pickup is actually called the "Fork" pickup. The idea is that when you record and playback yourself, you're "forking" a new version of yourself. Fine. What I wanted to do was to allow you to pickup new fork pickups while you were already forked. Then you could make forks of forks, and forks of forks of forks.

Potentially you could have an infinite number of recordings of yourself playing alongside you at the same time. In practice the number would be unlikely to get above a handful because the chances of finding more than a few fork pickups at a time were slim. Still, it would be pretty zany to see two or three versions of what you did in the past all fighting bad guys alongside you.

Well, this "Infinite Forking" feature is what nearly drove me crazy. It proved to be excruciating to manage, and after battling bugs for a couple of days I decided to save it for the sequel. ("We're saving that feature for the sequel" is what game developers say when they mean, "We are cutting that feature and you will never see it again." This is analogous to when publishers say, "We're putting this project on hold," when they mean, "We're canceling this project. Good riddance.") Sorry you can't battle alongside more than one copy of yourself. Your ego will just have to put up with battling alongside one copy of yourself.

I programmed all this time-traveling and -forking stuff over the Christmas break. It seemed like I was nearly done with the game.