Category: Game Programming

My Latest Project

Okay, purely for my own edification, I intend to write an RPG in 40 hours.

I was, of course, inspired by this blog post, and also by the fact that I really, really wanted to participate in the most recent Ludum Dare challenge, but couldn’t. So I’m sort of doing it on my own. Now you know why I was researching Roguelikes; 40 hours is too short to do just about anything graphical. Text mode will allow me to get the most out of my time.

Here’s the rules:

1. This will be a project created in Visual Studio .NET, using C++. It will be a console application, and it should run on both Win2K and Win9x.

2. The timer starts when I first create the project (which I haven’t yet).

3. Since I am a father of three and employed full-time, I can’t do something stupid like work on this for 40 hours straight. Instead, I will work on it whenever I have time, rigorously keeping track of my time. When the 40 hours is up, I will post whatever I’ve got, even if it’s not playable (though I will do my best to make sure that it is).

4. Time designing, coding and creating content counts against my 40 hours; time thinking about the project and writing blog entries about its progress do not. Thus, I can do some “mental preproduction” work on it as long as I don’t code anything or write any design down.

5. Failsafe. I have 40 hours to do this project, and I can spread them as thin as I want, but if the project is not done within 30 days (that is, it is not done by midnight, June 18th, 2005) the rest of my time is forfeited and I must post what I have.

Currently my thinking is that I will break the project up into two 20-hour chunks – one for coding the engine and one for creating content that runs on the engine. This should (note the word “should”) ensure that I ship something a bit more robust than just a hack & slash engine. My fears are that I will either overestimate the difficulty of the project and set my sights too low, resulting in a completed game so simplictic that no one wants to play it, or that I will conversely bite off far more than I can chew, resulting in no functioning game at all.

Oooh, this is going to be fun. I think.


Roguelikes

I’ve had a real love/hate relationship with Roguelikes. (Quick definition if you don’t want to follow that link: a Roguelike is a turn-based RPG with a map that is usually constructed from the ASCII character set. They derive their name from Rogue, the first game of this type on record.) The thing is, now that I’ve thought about it, most of the advantages of a Roguelike are inherent, and most of the things I don’t like about them are a part of how they’ve been constructed.

The main advantage of Roguelikes is that while they do have a map, they are not rigorously representational. They inherit this from text adventures. If you want the player to be attacked by a gorgeous bird with a six-foot wingspan, a pearl beak, feathers that shift colors as it moves, and glowing white eyes, you can simply put a B on the screen (or whatever letter or symbol you decide represents “birds”) and say, “You see a gorgeous bird with a six-foot wingspan, a pearl beak, feathers that shift colors as it moves, and glowing white eyes.” This takes all of 30 seconds, unlike the two weeks actually creating such a bird in a 3D game would take.

This also means that you can code tons of interactions that can only exist in text. Sure, let the player wield lockpicks or dead monster bodies as weapons! Let the player drink from fountains, fill canteens from fountains, dip swords from fountains, kick fountains! Let them wear hats on their feet! It’s all just text! You’re not required for it to make any visual sense!

Another way Roguelikes aren’t rigorously representational is that the player is not bound to any sort of normal walking speed. A square on a Roguelike map typically represents six to ten square feet, and you move by jumping from one square to another (and typically you can move as fast as you can press a key). Thus, it doesn’t take long to get places in a Roguelike.

So Roguelikes can avoid lots of the annoyances of modern RPGs and stimulate the imagination, at the cost of a lack of visual…impact. What are the downsides?

Like I said, most of the downsides of Roguelikes I’ve played stem from how they are implemented, not the style itself. Roguelikes are typically arbitrary, difficult and frustrating, but that’s only because that’s how they’ve been programmed. One true downside of Roguelikes is that the user will have to constantly refer back to the manual or a cheatsheet to figure out exactly what symbol means what on the screen, but this can, perhaps, be minimized.

So why exactly am I analyzing Roguelikes? Ah, see the next post.


E3 Crunch

Well, the E3 crunch is over. We shipped a very solid demo of our game (which I’ll be able to tell you all about once E3 actually starts). I worked about 80 hours last week, which is the longest work week I’ve had in years.

Here’s the thing about crunch. Yes, it sucks…except…well…

You get to put yourself into the Zone Cubed. Everything else fades away. You don’t spend enough time away from your work to forget what you were doing, which means you never really get out of the Zone. Thus, despite the Common Knowledge that Crunch Never Helps, I found myself incredibly productive last week. I worked about 80 hours. Did I get 80 hours of work actually DONE? I’d say…yeah, damn near.

You get to know everybody better. You work together, you eat together, you spend what little free time you have together (our crunch was at one point suspended while we all made a run to Wal-Mart to buy Nerf guns). And these guys are great – real gamers, really passionate about making great games. The sense of camaraderie is wonderful.

When you come out the other side and you’ve shipped and you know you did a good job and everything is going to be all right now…it’s like shipping high times a hundred. I have never been prouder of what I’ve been working on.

Note: The rest of this post is rated PG-13.

I’ve witnessed how usage of the term “porn” has branched out away from sex to mean “anything that gives you a vicarious thrill”. We’ve got food porn, gun porn, aircraft porn, etc. I’ve actually done this myself; I typically describe the game Command & Conquer: Generals to friends as “explosion porn” (which it is).

If you know me, you also know that I like to watch game development presentations, and I love listening to good movie commentary tracks. I’ve watched the “Making of Spirited Away” special that comes on the DVD about fifty times. I bought the special editions of both Age of Mythology and World of Warcraft because they both came with “making of” DVD specials. I’ve come to realize that in its way, that stuff was my porn. Call it “accomplishment porn”. I was vicariously living through these people who had accomplished the kind of thing I wanted to accomplish.

Well, now I’ve accomplished, at least in a minor sense. In the end, real sex is always better than porn…is real accomplishment better than accomplishment porn?

Bet your ass it is.


Wow…

It has recently begun to really sink in that the game I am working on is going to be shown at E3. In a real booth. In the main hall, not Kentia Hall. That’s very exciting and very scary. Heck, since I’m doing the main menu, my stuff will be the first stuff players see!


My First Week

So, I just completed my first week at Gizmondo Studios, Austin (formerly Warthog, formerly Fever Pitch, etc). I’m working on a game for the Gizmondo handheld platform.

I honestly think this is the perfect project for me. While I learned a lot in my years at Multimedia Games, and I will always be grateful to them for giving me my first programming position, I didn’t learn many actual game development topics – the games I made at MGAM had no AI, used no 3D, had no scripts…they were about as simple as games could be and still be called games. While I learned a lot about these topics on my own (an A* pathfinding program I wrote last year just to see if I understood the algorithm is what got me my current gig), I’ve never actually used any of them in my production environment. Handheld games are typically a lot simpler than full-fledged console or PC games, so there’s less pressure and less to learn all at once.

Everybody here seems great…no personality conflicts yet. And I love being back in town – much better lunch options. And I’m getting really good at Mortal Kombat II. I’m going to miss the view from the MGAM building, though (I’ll have to drive back out there and take a picture of it so you can see what I mean).

So far, so good, and I’m really enjoying it.


The Power of the Force

Since the age of nine, I have wanted to be a game developer. I’ve wanted to make games ever since I realized that the TRS-80 Model 1 sitting in the corner of my classroom at school was technically the same device as the Pac-Man and Asteroid machines I played on down at the 7/11.

It’s been 25 years since then, and while I came close several times, getting jobs at Origin, 3DO and Human Code, I never managed to make the jump from tester or support person to developer. I did finally manage to get my first programming job about three years ago. I guess you could technically call it game development – the company I work for uses C++ and DirectX to make video bingo games for Indian resevation casinos. It’s actually a very good company full of very good people, and they did give me, someone who wasn’t able to finish college, a programming job.

But I still wanted to do real game development, and I began to think that going indie on the side might be a good idea – bring in some extra money (hopefully) and scratch my personal itch to make real games.

So I moved forward. I chose the design for my first game (a very cute puzzle game using colored water droplets and some design elements from Marble Drop and The Incredible Machine). I picked a name for my company. I bought some webspace. I cleared what I was going to do with my boss, who was very supportive. I started on my prototype and got to the point where I had some balls rolling down the screen across platforms in a fairly realistic manner.

And then one night I was idling in the #gamedev channel on irc.afternet.com, and someone came in and asked, “Any game developers from Austin in here?”

And I put my hand up and said, “Uh…I’m a game developer from Austin.”

And he implored me to apply at his company! They had recently lost some programmers to another company and desperately needed to staff back up. So I blew the dust off my resume, added an entry for my current job and sent it to him.

And they called me in for an interview, which went great. They showed me some of the games they were working on, which looked awesome. I hadn’t been looking for a job so I had no demo, so instead they asked me for a code sample. I sent them the sample and then chewed on my fingernails for twenty-four hours.

And then they called me and told me that they wanted me to work for them.

You may have read Steve Pavlina‘s articles on Dexterity.com. You may have read The Power of Positive Thinking or Think and Grow Rich or The Seven Habits of Highly Effective People. You may have heard succesful people of all stripes tell you that no matter how big the obstacles seem, as soon as you resolutely move towards your goals they will fall all over themselves getting out of your way. You may have dismissed it as bunk. It’s not. You want a Force? This is the true power of the Force. I moved resolutely towards my goals – and I mean really moved, not just reading books and hanging out in IRC and wishing. I took real, concrete, irreversible, fear-overcoming steps towards realizing my goals, even in a circumscribed way. And when I did, the universe dutifully rearranged itself so that the job I really wanted fell right into my lap. I didn’t even have to look – it came to me.

I’ve had self-confidence problems my entire life. In the past I have managed to overcome my fears and self-doubts long enough to do some great things, but afterwards I always reverted back to type, thinking “Whew! Glad I got away with that, now let’s never do that again.” This has kept me from seeing the truth – that everything I’ve really tried to do, I’ve succeeded at. And every time in the past that I have conquered my fear and moved resolutely towards my goals, the results have always been positive. But now I know. This most recent experience is simply the icing on the cake. I’m not going to be afraid any more. In a few years I’ll be speaking at the GDC. Just you wait.


Randomize

Warren Spector has a dream. He calls it the “one city block” RPG idea, and he’s talked about it several times. The design consists of a relatively small area that is modelled with such detail and interactivity, and has NPCs that are so “alive”, that this small area can support as much gameplay and story as a “normal”, mission-driven game. Warren was certain that with Deus Ex he was going to get the chance to create this dream design of his – in fact, the original design of Deus Ex called for three such city-blocks – one in New York, one in Hong Kong and one in Paris.

As the development of Deus Ex continued, he discovered that the technology to implement his design still wasn’t there, even after all these years. So as the development of Deus Ex progressed, the game became a lot more linear and mission-driven, like other games.

But Warren’s attempt wasn’t a complete failure. The second mission of Deus Ex is set in New York, and comes very close to fulfilling his goal. Far too much stuff is scripted, but there are a lot of people on that map, all with different personalities and goals. There are a lot of very different places, and a metric ton of secrets (including a secret mission that is very easy to miss). All of these make Hell’s Kitchen feel more real than environments in most other games.

Hong Kong is almost as good, but by the time you get to Paris it becomes apparent that the incredible amount of work necessary to put a map like this together was beginning to wear on the designers. Paris is the last map with free-form elements in the game – all of the rest of the maps in the game are very traditional, mission-based maps. They still have secrets and alternate paths, but the conflicting goals, the complex NPCs and the scripted optional sequences are gone.

This is one reason that Warren has called for the development of tools that could generate game content automatically.

Content created through generation used to be extremely common in gaming. All of the maps of the original Populous were created simply by generating strings of random numbers (and Peter Molyneux admitted in his 2000 GDC presentation that the Promised Lands expansion pack to Populous simply consisted of those random numbers reversed).

Starflight is another older game that benefited greatly from generated content. Starflight attempted to give players the experience of their own Star Trek five year mission. In order to do so, it was necessary to give the player a very large number of star systems and planets to explore – too few and the player would feel too constrained and wouldn’t get the sense of grand exploration that the designers were going for. So the designers stuffed the game with over two hundred star systems to visit and over eight hundred individual planets to explore. But Starflight was made back in 1986, before hard drives were common and CD-ROMs even existed, so the game had to fit on floppies. The only way the designers could fit so much content on two 360k floppies was to generate each planet on the fly using algorithms.

So if generated content (both pregenerated and on-the-fly) was so common, why isn’t it used any more? Why is Warren’s request so difficult to fill?

If there is one thing the human brain is good at, it’s pattern recognition. In fact, the brain is so good at it, we humans often see patterns where none exist. The nature of the “game worlds” of Populous and Starflight were very simple – they weren’t hard to generate, and they weren’t large enough for patterns to develop to clue the player in to the fact that they weren’t hand-made.

That’s all changed. Generating a Shenmue-style world is a much tougher challenge than generating a 64×64 heightmap – but it may not be impossible. If this problem could be solved, it could allow game worlds to get bigger and more detailed without requiring teams to double in size and schedules to extend even farther than the industry standard eighteen months. It could also finally make Warren’s dream a reality.


Class Begins

I worked for a brief period at 3DO, on a game called Crusaders of Might and Magic.

CoMM wasn’t a great game. It pains me to say that, because the guys who were working on it were all really nice, and I thoroughly enjoyed working with them. The game just didn’t come together properly, as least partially because it was the first PSX game for a lot of them. And of course it was rushed.

But I have a particular memory from working at 3DO. We were all sitting around a table discussing the game, which was a third-person medieval hackfest. The game was really hard to play, and people were suggesting ways to make it easier. I suggested that we make it possible to “lock on” to enemies, like in The Legend of Zelda: Ocarina of Time.

I got blank looks. No one else at the table had played Ocarina of Time. And they called themselves “game designers”.

At the Disney studios they have a vault that contains the rough animation for every Disney feature and short, all the way back to Snow White and the Seven Dwarves. Disney has done so much stuff over the years that when an animator gets a task, the first thing he does is to check the vault to see if something similar has been done before. That gives him a leg up on what he’s doing now – he doesn’t have to start from scratch.

We game designers also have a vault. It consists of all the games that have been done before ours. If you want to be a game designer and you don’t know gaming history and you haven’t played the classics, you’re going to spend a lot of time re-inventing the wheel, and yours is guaranteed to be less round.

But Badman, I hear you say, where can I learn about gaming history? What are the classics, and how can I play them?

Excellent questions, both. As much as I’d like to write a history of gaming, a) I don’t really have time, and b) it’s been done much better than I ever could. I hereby present a linkstrip in my navbar, sorted by group, and the first group is The History of Computer Gaming.

General Gaming History
Gamespot’s The History of Video Games
The Dot Eaters – Videogame History 101

The Classic Consoles
Intellivision Lives!
Creating Adventure for the Atari 2600
Programming NES Games for Konami
Programming MC Kids for the NES

More forthcoming. I haven’t yet found a good “history of PC gaming” link yet – if you know of one, email me.

And what are the Classics?

Well, there’s a lot of opinion involved here (of course). But I’m going to start by providing a list of games that differ across platforms and genres but have one thing in common – they are all brilliantly designed. If you want to be a game designer, playing great games and both and experiencing what they have to offer and analyzing them to discover how they provide that experience should be one of the first steps you take.

I’ve tried to pick games that are commercially available and on still-common platforms. I’ve also tried to pick at least one game from every common genre. This list is also not exhaustive – I’ll be adding to it as I find games that merit the list.

Ultima VII – Traditional Role-Playing Game – PC
Quake and Scourge of Armagon – First-Person Shooter – PC
Deus Ex and System Shock 2 – First-Person Role-Playing Game – PC
Ratchet & Clank – 3D Platform Game – PlayStation 2
Age of Mythology – Real-Time Strategy – PC
The Legend of Zelda: The Ocarina of Time – Third-Person Adventure/Role-Playing – Nintendo 64 and GameCube
Civilization III – Turn-Based Strategy – PC
Grand Theft Auto: Vice City – Third-Person Open-Ended Gameplay – Playstation 2 and PC


Revolutionary or Evolutionary?

I finally managed to track down a copy of the now-rare Quake mission pack Scourge of Armagon. I wanted it specifically so I could watch Scourge Done Slick, which is an excellent machinima that marries incredible gameplay with a great sense of fun.

Of course, once SDS was over, I started playing Scourge myself and discovered that it’s actually a damn good mission pack and does lots of things with the Quake engine I wouldn’t have thought possible. I also couldn’t help but notice how little things had really changed from a gameplay standpoint in first-person shooters.

I mentioned to my good friend Lee that I thought that Quake was revolutionary, but that since then all other FPS games have simply been evolutionary. Now, Lee’s a naturally contrary person, so he asked me why I thought this. After all, Lee said, Quake wasn’t the first true 3D polygonal game. It wasn’t the first first-person shooter. It was ugly – all browns and greys. What made it so special?

(It must be noted here that my good friend Lee is a big Marathon fan.)

There are several things Quake did that made it revolutionary. Allow me to bullet point:

It was the first 3D polygonal first-person shooter that used 3d models for almost everything – yes, there are still a few billboarded sprites in the game, but they are used only for minor things like explosion effects. This fully 3D space gave the game a coherent feeling no other game had at the time, especially when combined with…

Lighting effects. Quake was the first game to have real 3D lighting – Carmack insisted on it, even though it was an incredible challenge to do in eight-bit color and it meant having to draw every frame of the game twice. The effect of having every light source (even rocket explosions!) affect every object in the game drew the player in – and pointed the way towards the future.

QuakeC and Radiant – id’s player-friendly philosophy allowed players to use the same tools as original level designers instead of the hacked-up, reverse-engineered tools of the past.

And finally, Quake was incredibly popular, which meant that the people who did create new content had a huge audience for their work. The fact that Quake came out just as the internet was beginning to take off didn’t hurt anything either.

Quake probably wasn’t the first game to do any one of these things, but because it did all of them at once and rode the rising wave of the internet, it created a huge fanbase willing to create new content and continually breathe new life into the game. Quake didn’t create modders, but it empowered them in a way they hadn’t been before. Modding moved out of the realm of putting Barney at the end of Wolfenstein 3D and into the realm of Team Fortress. That’s why ten years after it’s release people are still making cool things for Quake like Scourge Done Slick.

And that’s a revolution.


Doom III Vs. Half-Life II

I’ve now watched every publicly available movie for Doom III and Half-Life II. And I think that the real difference between the two is that Doom III wants things to look good and Half-Life II wants things to act right. Half-Life II’s industrial-strength physics engine allows for new and interesting gameplay elements; Doom III’s unified lighting code and self-shadowing doesn’t.

Before you flame me, remember that this site is about pushing the envelope of game design. Half-Life II does; Doom III deliberately doesn’t. Doom III is about classic, rock-solid gameplay and showing off Carmack’s spanking new everything-gets-sixteen-texture-passes engine.

Now, is Doom III going to be a hit? Absolutely. It’s going to be huge. And it will be a good game, and I will be buying a copy. But it’s not going to do anything new gameplay-wise.

Watched a video on Gamasutra (that’s a recurring theme, eh?) from this year’s GDC. It was of Jason Rubin of Naughty Dog, one of my favorite people from one of my favorite companies. He talked about how much time they had spent on improving their engine for Jak & Daxter 2. He said that during that time he’d had an epiphany…nothing he was doing was necessary to the making of Jak & Daxter 2. They could have done Jak 2 with the Jak 1 engine and it wouldn’t have looked as good, but it would play just the same. Nobody is going to care that Daxter now has an environment map on his eye that reflects his surroundings – on a standard television you won’t even be able to see it!

He continued to ponder and came to the conclusion that graphics is quickly becoming a dead-end. You can only make so many texture passes and add so many polygons before you reach diminishing returns and the player can’t tell the difference. Not only that, but the increased poly counts of the characters on Jak 2 meant they were taking a lot longer to model, skin, rig and animate than the ones for Jak 1, which meant the game would take longer to make, which meant it would be more expensive, which meant it would have to sell better, which meant it needed something to grab players and bring them in – and that graphics weren’t going to do the trick any more.

Naughty Dog has never been known for their innovative gameplay. Jason stated up front that Naughty Dog’s “mission statement” had always been to design games with very familiar, classic gameplay ideas and simply make them look better than anyone else’s.

And Jason concluded that this wasn’t going to cut it any more. He concluded that Naughty Dog will have to start innovating from a gameplay standpoint in order to stay competitive. And he honestly stated that the idea scared him to death – he had deliberately shied away from innovation for almost his entire career.

I think Jason came to the correct conclusion. I think this is the last “generation” of games where incredible graphics will be able to sell a title (and of course, id is also playing off its own huge reputation with gamers). Very soon excellent visuals will simply be par for the course and gamers will start asking “What else you got?”

Needless to say, id should be far more worried than Jason. After all, he did co-author “Dream Zone”.