Category: Game Programming

Holy Moley, Someone’s Reading!

No, really! Someone is actually reading this blog, and has even gone so far as to link to this blog from his blog! A red letter day, this is!

It appears that Gianfranco Berardi read a couple of my posts and liked them. Well, I like his blog, too – it’s just the kind of blog I like to read. He’s a budding indie game developer who is doing things like Game in a Day projects to sharpen his skills. Kudos!

On a related topic, Lordamighty, but there are a lot of game development blogs and sites out there now! I remember back when there barely weren’t any. I could spend all day just following links…but no. Must be strong! There’s work to be done and games to be made!


40 Hour RPG (Take 2)

Well, things have kind of slacked off a bit…

Oh, so Hit & Myth shipped?

No, it’s kind of in limbo…

Really? What’s all that about then?

It’s part of the Story I Can’t Tell Yet, which hopefully I’ll be able to tell soon.

You cop-out! Tell us what’s going on right now with Hit & Myth!

Look, this post isn’t about Hit & Myth, okay? It’s about me trying again to make an RPG in 40 hours. I learned a lot last time, and I hope I’ll learn even more this time.

Unfortunately, what I learned was this: making an RPG of the kind I’d really like to make in 40 hours is nigh-impossible.

I could write a completely text-based engine that allows the player to buy equipment, go down into a “dungeon” which was basically one room with progressively harder monsters, fight them, level up, and come back up to buy new equipment. I could certainly do this in 40 hours. (Heck, I might be able to do it in ten.) But that’s not really an RPG; it’s just an RPG combat/advancement engine.

I could write a game very similar to the above, except that, instead of a text-based one-room “dungeon” I could create a randomly created dungeon level that the player could explore. His job would be to go in, kill everything and then come back up to get better equipment. He could then re-enter the dungeon, which would give him a new randomly-created level to explore. Basically, a very simple quick-and-dirty Roguelike. I might be able to pull that off in 40 hours; the real question is how long it would take to figure out (or research) how to randomly generate a dungeon level. This is basically what Jay Barnson did when he made his 40-hour RPG.

Or I could write a game with an overworld, towns and dungeons, with NPCs that you can talk to and can give you quests, an inventory that allows you to keep and store quest items, and an overarching plot for the game where you end up saving the world at the end.

This is what I tried last time, and you just can’t make that kind of RPG in 40 hours. But that’s the kind of RPG I want to make…

So I’ve got a choice – either scale back my game or give myself more than 40 hours. I think I might be able to write a simple RPG of the style I want in 80 hours…

I’ll have to think about this.


[Keanu]Whoa.[/Keanu]

Okay, back in March I wrote an entry here called The Power of the Force, which detailed how my life changed when I finally started moving resolutely towards my goals.

Well, a few days ago Steve Pavlina (who I mentioned in said entry) asked for people to submit stories about how what he had written had helped people. He was going to judge the stories and award the winner with a CD of Earl Nightingale‘s The Strangest Secret. So I posted a link to my story.

And I won. And now there’s an entry on Steve’s blog mentioning me and my story.

Whoa.


Pickled Ginger

“God, I am so sick of this craptank! Day in, day out, same old metal walls, same old glass, two feet thick, keeping the same old stupid water pressure from crushing us like fleas, I need a change!
– Captain Hazel Murphy, Sealab 2021

We’re crunching on Hit & Myth. This is my…uh…sixth? Seventh crunch? I can’t even remember now. And I’m starting to think that the problem with crunching isn’t the amount of work. It’s the fact that I’m getting up every day, going to the same office, working until I’m exhausted, then coming home, going right to bed, and doing the same thing the next day.

When you eat sushi, you’re given a small side of pickled ginger. Once you’re done with one type of sushi, you eat a piece of pickled ginger to cleanse your palate before starting on another type of sushi. This effectively resets your taste buds so that the last type of sushi you ate doesn’t flavor the type you’re eating now.

That’s what I need. I need some pickled ginger. I think tomorrow I’m going to take an hour or two off in the middle of the day and completely change my venue. I’m hoping that will allow me to come back and be more productive, because I can feel myself flagging.


The Non-Update Update

Lots of stuff has happened involving Gizmondo (the company), the Gizmondo hardware platform, Gizmondo Texas, and me personally.

Unfortunately, the story isn’t over, so I can’t really tell it yet.

All I can say is that we’re working hard on Hit & Myth (like we have been for months) and we are planning to submit our first gold candidate sometime next week. I really like how the game ended up – it’s fun and funny, and should be a good time for anyone who buys it.


Iron GameDev

Voiceover: One year ago, a man’s fantasy became reality in a form never seen before: Coding Stadium. The motivation for spending his fortune to create Coding Stadium was to inspire innovation in game development, and observe the making of games which could be called true artistic creations.

To realize his dream, he sent invitations to the top men and women in the field of game development, challenging them to claim the title of Iron GameDev. The challengers have just forty-eight hours to create a complete game from start to finish. Using all their skills, senses and creativity, they are to create games never experienced before!

And if they emerge victorious, they will claim the title of Iron GameDev and receive the people’s ovation and fame forever! Every battle, reputations are on the line, where master game developers pit their artistic creations against each other. The heat will be on!

Chairman Kaga: If I recall correctly, it was just one year ago that, having experienced fifteen years worth of exquisite cuisine, my palate became bored and I turned my attention to that other obsession of my people: video games! My mind began to turn as I imagined how I might be able to do for the development of games what my Kitchen Stadium had done for cuisine, and I realized that a similar format might produce similar results. Thus, this is our first battle in Coding Stadium. The format of the competition is simple – using provided computers and resources, two teams of three developers each will have only forty-eight consecutive hours to produce new games that I have never experienced before.

Now it is time to introduce the teams that will compete for the title of Iron GameDev. I could not be more pleased with the response I received from the game industry, and I have two superb teams today.

I present to you…TEAM ENSEMBLE!

(The curtain rises and smoke billows out, obscuring the forms of three men. They are ROB FERMIER, SANDY PETERSON and LANCE HOKE. They step forward and cross their arms.)

Chairman Kaga: Rob Fermier, programmer on System Shock and lead programmer of Age of Mythology. Sandy Peterson, designer of the Call of Cthulhu role-playing game, designer on Doom, designer on Quake, and designer on all three of the Age series of games. Lance Hoke, lead artist of Age of Mythology. They will represent Ensemble Studios in this battle. They are worthy warriors, with many excellent games under their belts. They deserve a worthy opponent, and I believe I have found one.

I present…TEAM BLIZZARD!

(The right curtain rises and three men step out of the backlit smoke. They are ANDY BOND, ROB PARDO and SAM DIDIER.)

Chairman Kaga: Andy Bond, programmer on Diablo II, Warcraft III, and World of Warcraft. Rob Pardo, designer on Warcraft II, StarCraft, Warcraft III and World of Warcraft. Sam Didier, the artist who came up with Warcraft’s unique look. These men will represent Blizzard.

Fukui-San: And now let’s introduce today’s judges. In the first chair we have Richard Garriott, founder of Origin Systems and creator of the Ultima series of games.

Richard Garriott: Great to be here.

Fukui-San: In the second chair we have Alex Seropian, one of the founders of Bungie.

Alex Seropian: It’s an honor to be here.

Fukui-San: And in the third we have Chris Taylor, founder of Cavedog and creator of Total Annihilation.

Chris Taylor: I’ve really been looking forward to this.

Fukui-San: Gentlemen, welcome to GameDev Stadium! I’d say there’s just as much talent up here as there is down there; you guys could form a team of your own!

Richard, Alex and Chris: (LAUGHTER)

Fukui-San: And of course, our commentator, Dr. Yukio Hattori.

Hattori-San: Always a pleasure.

Fukui-San: Doc, the change in format here has been dramatic! Since this is our first battle in Coding Stadium, let’s go over what the new competition entails.

Hattori-San: Very well. Instead of choosing a stable of game developers, like he did Iron Chefs, the Chairman has chosen to invite game development companies to send teams of three people each to compete in the stadium. We recommend a mix of one coder, one designer and one artist, but the actual makeup of the team is up to the company.

We have outfitted the stadium with three identical computers for each team, each preloaded with an identical loadout of the most popular compilers, 3D modeling software, image processing software, music creation software and level editors. The developers must use what is on the machines – they are not allowed to bring in anything from the outside. Nor will they be allowed internet access for the duration of the battle.

Since the competition takes so long, we have also provided places for the teams to eat, sleep, watch TV and play video games. Once the competition is over and the winner has been announced, both games, along with their sources, will be available on the internet.

And yes, the teams will be given a theme for their games by the Chairman that they must follow.

Fukui-San: That sounds fantastic, but I gotta ask: with so little time, won’t the developers just come up with derivative games using tried-and-true mechanics?

Hattori-San: Well, that’s always a risk, just like it was in Kitchen Stadium, but the Chairman is hoping that the severe time limit will force developers to boil their games down to their essences, allowing the purest form of the art to shine through – as often happened in Kitchen Stadium. Okay, the Chairman is ready to announce today’s theme.

Chairman Kaga: I thought long and hard about today’s theme. Both of your companies specialize in real-time strategy games, so it was my initial decision to give you something completely unrelated, like first-person shooters. But that would have been…too obvious. I finally decided on a theme related to your specialities, but with its own quirks. Today’s theme is…TURN-BASED STRATEGY!

(DRAMATIC MUSIC plays. The members of both teams look SHOCKED.)

Fukui-San: All right, a definite change of pace in the battle today, the Chairman choosing turn-based strategy as the theme, the teams are in place, let’s get it on!

Chairman Kaga: ALLEZ FONT DES JEUX!

And then I wake up 🙁


Jeff Vogel

(Sorry for the lack of posting recently, I was dog-sick last week and figured you didn’t want to hear about that.)

Jeff Vogel is The Man. Honestly, there is a very short list of people I truly admire and Jeff is on that list. Jeff is the president, founder, and 1/3 of the staff of Spiderweb Software, a shareware company that makes role-playing games. During the Dark Times, before the Baldur’s Gate series revitalized the commercial RPG industry, Jeff’s site was pretty much the only place to get a new RPG.

And were they good? You bet! Graphically they invoked old-school, Ultima-style roleplaying. They were well-written, had good interfaces, had tactical combat, and were big like RPGs are supposed to be.

Jeff’s story should be very familiar to anyone who knows any computer game history. He started off on the Apple II when he was 13, playing deep old-school RPGs like Eamon. He taught himself some Apple programming and started writing simple games. But it wasn’t until grad school that he got serious. He bought himself a Mac and a copy of Codewarrior and started writing his first game to escape the tedium and boredom of grad school. That game was Exile: Escape from the Pit. Once the game was done, he decided to try to sell it as shareware and was pleasantly surprised at how the market responded, as are most people who try shareware. Exile’s success prompted him to begin a sequel.

Eventually his games were making enough money to justify his quitting the hated grad school altogether, and since then he’s been making shareware RPGs full-time.

Jeff started his company in 1994. It is now 2005. At this point, Jeff has written twelve games. He says it takes him about eight months to write an RPG, and about two months to port it to the PC (since all his new work is done on the Mac). Then he decompresses for a few weeks and starts on the next one.

That is one hell of a work ethic.

And it basically allows him to live what he considers the perfect life – doing what he wants, living where he wants, working out of his house (which was paid for by his games). This has prompted him to start advocating the shareware system. Jeff says, “Shareware is a force for good.”

And in the end, he’s right. You can download huge demos of all twelve of Jeff’s games, play them all the way through, and not give Jeff a penny. But if you like them and you want to finish them, you can pay a very reasonable fee to get the complete game – and you can do so knowing that every bit of that money is going straight to Jeff, and that your contribution means Jeff will be able to continue to make games. There is a partnership between the player and the developer that just isn’t there in commercial games.


Something’s Percolating

My brain is chewing over several things, and I think I’m going to end up coming to some sort of realization about the game industry, like I did in my Innovate post. But I don’t know what it is yet. So I’m kind of going to write down all the various bits that are coming together…just to kind of get my thoughts straight. Perhaps as I write, the realization will come to me.

First, I recently watched Scratch, an excellent documentary about the birth of hip-hop. I’ve also been reading Jeff Minter‘s History of Llamasoft series of articles over at Way of the Rodent, and I can’t help but notice parallels. In both cases, a small group of young men are presented with a new artistic medium and start using this medium to do “cool stuff” for their own enjoyment and to impress their friends (often to the chagrin of their parents), with no thought whatsoever that what they are doing might actually be profitable…and accidentally create a billion-dollar industry.

Second, I’ve been listening to the absolute hysterics surrounding the unveiling of the new consoles, as developers cry, “My god, these boxes are so powerful that we’re going to have to invent TIME TRAVEL in order to make games for them!” Please. Not every game has to look like that (obviously pre-rendered) Killzone 2 movie in order to succeed. I mean, the GTA games are still using RenderWare, for crying out loud, and they were outstanding successes.

Third, I’ve been thinking about the Golden Age. Ask just about any game developer and they’ll tell you that the golden age of PC gaming was about ten to fifteen years ago. But why then? Why not before then, or after then?

There were two converging factors that make 1990-1995 the “Golden Age”: barriers to entry and player expectations.

In the 1980’s, there were really only two ways to get into the game industry: learn assembly language for a popular computer and write the game yourself, or get hired by Atari, Mattel, Coleco, or one of the other first-generation console companies. Needless to say, doing either of these was damn hard, which kept the number of game developers low. But towards the end of the 80’s, the PC revolution was driving the price of hardware down, and Borland was coming out with excellent, inexpensive compilers, which meant that games could easily be written in C on the cheap. Thus, the number of game developers rose.

On the other hand, ALL games were written for a VGA screen – 320×200, 256 colors. Real, polygonal 3D was a novelty used by flight sims that were only played by hardcore sim fanatics willing to put up with 5-10 frames a second. Making content for such a setup wasn’t that hard and didn’t take that much time. Player expectations could still be fulfilled with a small team in a few months (or heck, even one talented programmer/artist). We went from high cost to entry and low player expectations to low cost to entry and still reasonably low player expectations. Thus, the Golden Age.

And then Quake came out.

I think I am only now beginning to truly understand the impact Quake had on the game industry. Yes, it made first-person shooters even more popular and spawned a hojillion imitators. Yes, it made mods easy and fun to make, creating the mod scene. Yes, it made internet play easy and fun. All this I’ve covered before.

But what Quake really did was raise player expectations through the roof. We players were very forgiving of 2D games; we were aware of the limitations of that system and thus we didn’t complain when Link’s sword mysteriously changed hands as you moved him around. Suddenly we could move around a 3D space and interact with 3D entities, and since we live in a 3D space and continually interact with real 3D entities, we know how that is supposed to look and feel, and thus billions of dollars have been spent by hardware and software developers in an effort to bring the look and feel of their 3D games closer to reality, so that player expectations can be fulfilled. And so we have the Killzone 2 movie.

(Oddly enough, almost all players have no problem falling back into “2D mode”, even now, lowering their expectations when they play a 2D game. And they do it without even realizing it. The same thing happens when we watch an animated movie as opposed to a live-action movie.)

And now we’re spending so much time making sure our in-game characters have smooth transition animations between sitting, standing, walking, running, leaning, fidgeting, idling, talking and dying that we can’t seem to spare any time to make sure they don’t run into walls – or enemy gunfire.

Is this bad?

I think it just “is”. There wasn’t any getting around it; somebody was going to do it. And yes, we are in for some growing pains as we figure our way around this new hardware.

But there really isn’t anywhere to go from here. Graphics are quickly topping out (and may already have). Both CPUs and GPUs are showing diminishing returns. Eventually all the really hard stuff we have to do right now will be handled by middleware.

What do we do then?

(Jeez. I just realized that all I’ve done is reiterated Jason Rubin’s main point from his GDC talk a few years ago. Of course, that doesn’t make me (or him) wrong.)

Game developers will have to turn back to the other, neglected fields of game development in order to set their games apart. Perhaps we will finally get an RPG that is better than Ultima VII in the world modelling department. Perhaps we will finally get a first-person shooter that has AI demonstrably better than Half-Life‘s. Perhaps we will finally get an RTS that is truly better than Starcraft, Total Annihilation or Age of Kings.

Instead of panicking and screaming about the “death of innovation”, I’m looking forward to a new Golden Age.


40-Hour RPG Update

Um…why did I start this project again? More specifically, why did I start this project when the project I get paid to work on is due less than two months from now?

As of now I’ve spent about seven of my forty hours, and have nothing runnable to show for it. I got interested in generating fractal terrain for my city to sit on top of and…lost track of time. Even if I had completed the terrain generator, 1/5 of my time is gone and I certainly don’t have 1/5 of an RPG.

At this point, heavy sigh, it looks like I’m not going to get to work on the project any more before the June 18th deadline. I may spend another hour or two finishing the terrain generator (I know how it’s supposed to work now) and post that. We’ll just have to see.

Big lesson I’ve learned so far? Prioritization. I suck at it.


Hit & Myth

Now that E3 is over, I can finally talk about my game. It’s called Hit & Myth, and it’s the brainchild of two talented people I’m working with.

The first is Ryan Clark, who created the basic engine for the game and also came up with a technique that allows us to get some realistic-looking lighting very cheaply. It allows us to get content in the game quickly, and you can read all about the technique at his webpage, Zarria.net.

The second is Wynne McLaughlin, the lead designer, who has been writing for games and TV for years. He got this job by creating a couple of very good Neverwinter Nights modules. Wynne is adding a really funny, sarcastic sense to the game, as evidenced by this screenshot.

Me? I’m the secondary coder (and we also have one more coder/designer named John Sripan). We also have a bunch of great artists on the project (as the screenshots should attest).

The game uses Robotron/Smash TV mechanics – the left pad moves your character and the right buttons control the fire direction. There’s tons of weapon pickups that make you more powerful, and you can cast spells (we have a nice spellcasting mechanic that allows you to cast spells very quickly once you get used to it). Basically, you run through the levels, shooting everything that moves, until you get to the boss, which says something snarky and then tries to eat you. So you kill the boss, too.

Now, I’m fully aware that I’m not working on a Game of the Year here. I’m also aware that the platform the game is for is new and shaky and has a lot of competition. But in the end, the game is going to be a whole lot of cheap, blasty fun and I hope that the people who do buy it get a kick out of it (and oddly enough, Ryan recently said almost exactly the same thing to me).