Categories
Game Design Game Development Games

Indie Game Dev Podcast: Interview with Braid Developer and Experimental Gameplay Workshop Founder

Action has an interview with the founder of the Experimental Gameplay Workshop at GDC and developer of Braid, which won the 2006 IGF prize for Innovation in Game Design and was a finalist for the Slamdance Guerilla Gamemaker competition. Jonathan Blow talks about starting out as an indie fairly young, the difference in what is considered “cutting-edge” in games over the years, and tips on prototyping. He talks about the development of Braid, which I found really interesting, especially the way he took the time travel aspect and applied it differently from other games such as Prince of Persia: Sands of Time.

Near the end, he talks about story in games, specifically saying that games can tell a story without resorting to the methods used in media such as books and movies. He referenced Rod Humble’s games The Marriage and A Walk with Max which featured in this past year’s Experimental Gameplay Workshop.

You can check out Jonathan Blow’s home page and see some of the prototypes he has created.

Categories
Game Development Linux Game Development Personal Development

Thousander Club Update: June 18th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 128.25 (current year) = 390.5 / 1000
Game Ideas: 616 (previous year) + 57 (current year) = 673 / 1000

I still have a 10-minute build process, which means I go from checking out the Killer Kittens project to a distributable tar.gz file in about 10 minutes. I spent this past week continuing the work of refactoring the menu system. I had plenty of opportunities for refactoring as there was a lot of code duplication in the menus. I still want to get rid of the individual menu classes since the only difference between them is the creation of different MenuOptions. For instance, MainMenu offers the options “PLAY A NEW GAME” and “EXIT”, while PauseMenu offers the options “RESUME GAME” and “RETURN TO MAIN MENU”. Instead of individual classes deriving from a Menu class, I should be able to load these menus from config files.

Of course, reducing these menus into config files would be nice, but what I currently have is a huge improvement over what I had last week. I was able to add a couple of new menus easily. Previously, adding a menu would be a big ordeal. I’d have to touch code in maybe four different files and then test the game multiple times to verify that my input handling worked as expected. I used to have problems with hitting ESC to pause the game, only to have the menu system think that the pause menu should be closed again. It thought I had hit ESC twice since I had to indicate that the button was being pressed BEFORE the menu system’s input handler was working. Since I had code duplication, I had code changes in some classes and not in others. Now, the input system works no matter what, and each menu is handled consistently. A new menu will be handled the same exact way every other menu is handled.

While I may be spending too much time on this system, I feel that the player will appreciate not feeling like the game is buggy or broken. Hitting ESC at any menu has a default option now. If you hit ESC at the MainMenu, it will open up the new VerifyMenu that asks if you are sure you want to exit. Hitting ESC at this menu will bring you back to the MainMenu. The best part is that my next project won’t have to reinvent a menu system, or if I do rewrite one, I will have enough experience to know what kinds of things I need.

It should be much easier for me to create an instructions screen now since it is basically just a menu with a background of instructions and a single option: “Play the Game”. It should also be easier to add a new feature to the menu system. I want a slider to allow the player to change the sound volume. Since the menu system’s code is much cleaner and easier to manage, implementing new features means I have less to worry about going wrong. I still need to think about creating a EULA for my game data, and I would like to get my main build system setup to build both a Gnu/Linux distributable and a Win32 distributable. Perhaps more important is updating the graphics. Maybe one day I will make a game themed on programmer art, but I need something better than a blue background with a green bar at the bottom to represent the sky and the ground. B-)

Categories
Game Development Games Geek / Technical General Personal Development

Feminism and Video Games

In What Do We Do About Video Games?, Roy looks at how women and race are portrayed in one of his favorite pastimes, and he isn’t impressed.

In a previous post, I’ve suggested that girl-friendly games aren’t needed so much as games that appeal to non-gamers. I still believe it, but I think that there can be a problem if you are attracting non-gamers using stereotypes and highly-sexualized imagery.

While I mentioned that women as playable characters seem rare, the problem with most of them is that they are highly sexualized. You have Samus Aran, Princess Morning, and a handful of others. And then you have Lara Croft and the Dead or Alive girls with their realistic boob physics.

Who within the industry is actually concerned about these issues? Should they be concerned? I think so. When most of the industry has no problem with hyper-sexualized female characters in games, what can you expect when games cross over into politics and social discussions?

Add to that the fact that the most vocal critics of video games tend to be people like Jack Thompson or NIMF (the National Institute on Media and the Family) who accuse video games of being murder simulators or promoting cannibalism- and you’ll find that a lot of gamers are particularly hostile towards criticism of gaming, even from fellow gamers. Women and feminists are made unwelcome in many gaming circles, and concerns about sexism and racism in games go unheard, ignored, or mocked.

While I am not a fan of Jack Thompson, he does make a point about the problems of an industry that does not self-regulate. Someone will eventually want to do the regulating for you. We’re already batting down anti-video game legislation right and left like King Kong on a skyscraper, and that legislations is about pornography and violence. What happens when people suggest that the Final Fantasy or Soul Caliber series is little more than pornography for adolescents, simply because of the way that the characters look? Grand Theft Auto is already considered pornography by some.

And that’s just the legal aspect of it. What about the gamers? If you think there isn’t a problem with girls playing games, read Monica’s comment on Roy’s post:

I have the double duty of being both a gamer and game designer. My bigges pet peeve is the fact I can’t even play Halo or Unreal online with out virulent harassment. And not only sexual but sexually violent taunts, come-ons, and threats, mostly associated with men and even boys who are virtually emasculated by a girl gamer who has the audacity to win, beat them, or even pick up an item that the male player wanted. After several incidents where I logged off of Halo 2 literally crying, my husband suggest I just stop playing online, and sadly that’s exactly what I had to do.

I love games and gaming. Heck, I’ve devoted my life to it. But I am worried about where this- well, it’s not even sexism, per se…it’s actual hate- comes from. I can’t help but agree that oftentimes my employers and fellow game-buying populace (myself included) are to blame.

Play an online game, and try to avoid encountering 11-year olds taunting you by calling you a “weak bitch” or any number of misogynistic comments. Young boys and men will tell you how “gay” you play. These aren’t a bunch of friends playing on your LAN. These are complete strangers saying hurtful things to taunt you.

Even when things seem nicer, it isn’t so great. If you’re a woman or playing as a woman, you’ll find that people will try to “help” your character because they assume you can’t do well on your own. If helping involves stealing your kills, preventing you from gaining experience, it doesn’t help and actually gets in the way.

Homophobia and misogyny can seem to be the rule when playing online, to the point that people don’t think of them as something that can be changed. Boys will be boys. Just ignore them, and move on. Get a thicker skin. I think it is just an extension of nastiness on the Net, and it isn’t something that should be tolerated.

Even if you ignore the other players online, the games themselves could do better. There is nothing wrong with sexy characters in games. Sexy isn’t the problem. You can have a sexy character that is still a strong female lead. The problem is ambulatory breasts and anthropomorphic sex fantasies as playable characters being the rule rather than the exception.

Categories
Game Design Game Development Games

Stories Aren’t That Important…Well, Sorta

Regardless of their credentials, people like to give their opinions on all manner of things. From the best way to pick a password for your email account to what makes a video game good, you will hear a lot of opinions in your lifetime, and not all of them will be good. I once heard someone suggest in all seriousness that the best PIN to use at the ATM was your birthday. Yeah, because reducing your PIN to one of the 365 options is definitely going to make it harder for a crook to figure it out.

Similarly, there will be people who will tell you that the most important aspect of a video game is the graphics, or the interactivity, or the fun you might have, or the story. Graphics aren’t video games, no matter how much you may have liked Myst‘s environments. Interactivity is inherent in video games; otherwise you are left with a movie. Still, interactivity isn’t the only thing you need to make a game. Since serious games have come into their own, and since some games are meant to be art or commentary, fun is no longer inherently important to video games as it once was. That is, if a game isn’t fun, it is not necessarily a bad thing since it might not be the point. Super Columbine Massacre RPG is an example of a game that isn’t meant to be fun.

But what about story? Do all games need a story, even if the story is not explicitly told to the player? RPGs almost always have a story, and I do remember a time when almost everyone could agree that “a good story” was what made an RPG fun. Final Fantasy 7 is usually touted as a good example, but then there are games such as Rogue and NetHack that have the flimsiest of stories and drop you into the game. Yes, you know the goal is to retrieve the amulet, but how many times have you forgotten this goal as you died Yet Another Stupid Death? How much do you pay attention to the short bit of text that introduces your character and his/her god to the world?

Tetris didn’t need a story, although some people seem to enjoy applying their own abstract story to the game. There is no story inherent in Tetris, but Juuso claims that it has a survival aspect in common with Resident Evil 4. Since zombie movies have usually been used to be commentary on Communism, and Tetris was created by a Soviet, maybe there is more to Juuso’s line of thinking…

Still, abstract puzzle games don’t rely on story. Tetris, Bejeweled, Cubis, and Zuma don’t really offer stories. They may be themed, but stories aren’t the reason why you continue to play day after day. And then there is the poem/game hybrid game, game, game, and game again, which claims to rebel against the tyranny of clean design that rules the web. Somehow, I couldn’t help but finish the game even though it seemed like one large mess of random text, strange imagery, and standard video game constructs. Part of the point of the game is to come away with your own interpretation.

Do games need stories? I don’t think that games need stories any more than they need full motion video or real-time pixel shaders. Are stories important? Yes and no.

Yes, stories are important. Stories give you the why, where, and when of the game. You would not think about searching for a person unless you knew that she was the princess and your king has asked you to save her from the dragon in the abandoned castle across the continent. Mario had to travel across the Mushroom Kingdom to save Princess Toadstool, and Link needed to find the different triforce pieces in order to save Princess Zelda. Japan surprised the United States at Pearl Harbor, and the President and your country are depending upon you to fight back and secure the Pacific Theater. The Zerg, Protoss, and Terran have all come together because some higher ups in the Terran ranks thought they could control an entire alien species as a weapon. The Tiger’s Claw is positioned along the front lines of the war against the Kilrathi, and you are a newly-trained recruit.

Stories also give us context for talking about the games. You didn’t just hit a certain set of buttons in a sequence, timing it to some lights on the screen. You hit the afterburners, turned your ship around 180 degrees, and fired all of your missiles into your pursuers. You were down to one health point and nearly hit by Metalman’s gears before you fired off one last shot and defeated him, and then you took his weapon and went after the next of Dr. Wily’s creations. Heck, you even found that the blocks in Tetris were getting too high for your comfort, but you were lucky enough to receive the straight piece and dropped the entire level down to a manageable level. You lived to clear lines another day.

Still, I don’t think stories are what make for a good role-playing game. If I wanted a good story, I’d read a book. I need to play games. Occasionally I feel the need to create my own stories. While some RPGs (and games in other genres) allow a branching storyline, sometimes making things up on my own is fun. Maybe I don’t need or want the developer dictating what will happen every single time I play a game. NetHack is fun in this regard because it always feels like a different game. Everything is interactive, and you sometimes get surprised that a certain action triggered a certain response from the game, even if you’ve been playing for years. SimCity allows me to decide what kind of urban environment I want. Maybe this city is a bustling metropolis in which natural disasters occur often, but this small town by the river is tranquil and acts as a vacation spot for the SimCitizens. The Sims allows me to create a perfect family, or a completely dysfunctional one. Either way, it’s my story that I get to tell. And let’s not forget that Black & White‘s creatures were as fun to talk about as your real life pets. My cats may be adorable, but my ape was trying very hard to learn how to throw a rock, as evidenced by the horses strewn about the beach.

In general, I suppose stories are important for games. I just think that they don’t necessarily have to be dictated from within the game. There is nothing wrong with games that tell a story, but games that do tell stories shouldn’t let the story get in the way of the game. Some people might prefer games that let them figure out their own stories. When I play Flatspace, I like to be a trader, but I like to hunt pirates as well. I don’t have to fight the pirates, but I’m just taking the law into my own hands, hoping to get my hands on the pirate who destroyed my life in my made-up past. There is no actual support for the story in the game, but there isn’t anything that gets in the way of that story, either. I enjoy the act of creation, even if it is only in my mind.

Categories
Game Development Personal Development

Thousander Club Update: June 11th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 122.75 (current year) = 385 / 1000
Game Ideas: 616 (previous year) + 44 (current year) = 660 / 1000

I had a good start on Monday and Tuesday, refactoring my menu code. I wouldn’t have bothered, but I realized that I needed to add yet another menu to my game, and the existing code was just too complex. I’ve reduced some of the code duplication, but as I explored the code, I realized that I may need to change more than I originally thought.

I want to add configurable sound volume, various sound effects, and that darn instructions screen that people unknowingly request when they ask, “So, how do I play?”

Between playing Diablo 2 with friends, watching the United States play in the CONCACAF Gold Cup on television, and the day job, I’m surprised that I was as productive as I was. Perhaps I should make better use of my MythTV box and only watch the soccer games when I am too tired to work.

Categories
Game Development Personal Development

Thousander Club Update: June 4th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 117 (current year) = 379.25 / 1000
Game Ideas: 616 (previous year) + 44 (current year) = 660 / 1000

I believe I have succeeded in creating a distributable build of Killer Kittens. Extracted, it is a little over 20MB, mostly due to the libraries included. The compressed file is about 8MB. I’m wondering if I can’t get the libSDL libraries to shrink down any more through configuration options. When I work on future projects, I think I will try to make sure I can get a distributable build as quickly as possible. I am spending too much time on this aspect instead of the actual game.

I’ve also added a new sound effect, and by doing so I realized some pieces of code were useless. For instance, when the game first starts up and brings you to the main menu, you hear the sound effect. It should only play when your ship is fading into existence. I found that I had a function called initializeSprites() that called a function initializeShip(). The problem is that the ship gets initialized when a new game is started, so I don’t need to create the player’s ship on program startup. I was going to try to split up the function so that the sound is played separately, but then I realized that the initializeShip() call in initializeSprites() was pointless.

While I have made some small progress, I can see the light at the end of the tunnel, and I’m getting impatient. More progress! More steam! Hoist the colors! I can’t do these sub-ten hour weeks and expect to get much accomplished.

Categories
Game Development Linux Game Development

POTM for May: libSDL

The general idea of the Project of the Month is to donate some money to an open source project and write a blog post about it. Everyone knows about the major open source projects, such as the Linux kernel or Firefox, but there are plenty of examples of open source projects that impact you in some way that might not appear on most people’s radars.

For the month of May, I chose to donate money to the Simple Directmedia Layer, the popular cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is currently at version 1.2, is widely used in games and other media applications, and has bindings to a large number of languages. If you run an operating system, it is very likely that libSDL runs on your system.

Sam Lantinga created the SDL while working at Loki, although there are some people who think he may have written it at his previous job. SDL acts as a thin wrapper over platform-specific APIs. For instance, if you use it on Windows, it wraps around DirectX, but if you use it on a distribution of Gnu/Linux or BSD, it will use XLib. If you think of it as an abstraction, you can code once and compile anywhere. In fact, my Killer Kittens from Katis Minor project can be compiled for my Debian system and for Windows without any code changes if you use a compiler that doesn’t assume you need WinMain to replace the main function.

The documentation is available at the main site, and I’ve always found the SDL Documentation Wiki to be useful. Of the books I’ve read, I would highly suggest Focus on SDL by Ernest Pazera and Programming Linux Games by John Hall. While both books a few years old, they are still relevant and can get you up to speed quickly. You can also find SDL used in the example code a couple of game programming books by Erik Yuzwa at Wazoo Enterprises.

If you are trying to figure out what libraries to use for your project, even if you aren’t thinking about porting it to a second platform, I would suggest libSDL. If all it does is provide a simple abstraction for DirectX libraries, you will still come out ahead, and if you want to port it later, it should be much easier than completely gutting platform-specific libraries and replacing them with another platform-specific library.

Thanks go to Sam Lantinga and the libSDL development community for making a simple-to-use, cross-platform, freely-available tool for game development!

Categories
Game Design Game Development Games General

Game Complexity and Player Expectations

In the May posting of Culture Clash, Matt Sakey wrote about teaching players what they can do in a game. Specifically, how do you let your players know what is possible and what isn’t?

I found that there is a big difference between people who play video games regularly and people who do not. If you set Space Invaders in front of either group, you’ll see that the ones who play video games regularly already know how to play. They’ll move and shoot pretty much how you expect. The group that does not play video games regularly, on the other hand, will give a poor performance. Basic skills such as moving the ship and shooting appear to be difficult tasks.

The people who play video games regularly will ask about power-ups and extra reserve ships and different weapon types. The people who do not play video games regularly will probably continue to be concerned with the mechanics of the game rather than even think about anything else that could complicate the task of “playing”.

People who play games regularly understand how games are expected to work; unfortunately, this existing knowledge also means that changes in how your games work might not be readily understood. The author noted that technical limitations forced games to limit what the player could do in order to prevent the game from being played in a way different than the designer/developer expected. If you were playing a first person shooter, you might notice that your rocket launchers never seemed to have an effect on the walls of a building. Realistically, you should be able to blow holes through walls and taking the fight elsewhere, but games generally weren’t designed to let you do so. If you could escape through such a hole, the map wouldn’t have been created to account for it, and you might fall through nothingness to your death. It would be considered a bug.

But if a game is created in which you are able to do all sorts of terraforming as a designed-for feature, how do you let your players know? People who play video games regularly don’t expect rocket launchers to do anything to the environment. People who play role-playing games don’t normally expect that their avatars, while able to smite down giants, can destroy wooden doors blocking their path simply by kicking at them.

Games are increasingly complex, sure, but the complexity is offset by greater freedom. They are becoming more like reality, in that many of the old checks – like limited or nonexistent physics in game worlds – are beginning to vanish. So yeah, it’s great for newbies. But oldbies are about to enter a period when games seem less accessible. If we don’t de-chunk, the old guard might miss out on some great game content because it simply will not occur to us that it’s available.

While the article focuses on the potential of new games to offer realistic choices for the player, I think something should be said about games that continue to put arbitrary restrictions on your actions. In real life, if I run into a group of enemies, and one of them might be bribed, I would still have the option of fighting all of them. In a game I played recently, I am able to cast powerful spells that destroy everyone in my path, and yet the game stopped me from doing the same action and getting the same effect just because I was expected to talk with a specific character instead of fighting him. Even when I tried to attack him, walls of fire would simply pass through this enemy without any effect. I was pulled out of the immersion and conscious of the idea that I was playing a game.

I don’t need the ability to decide to play solitaire or knit sweaters in the middle of a war zone in order to mimic the realistic choices I would have in a real war zone. I don’t need the ability to do such arbitrary actions. I do expect that firing a tank shell or grenade into a barn should cause some damage to the foundation. If these things pierce armor plating and destroy tanks, they should easily do damage to a rundown wooden structure. If it doesn’t get outright destroyed, it should have a nice fire going to scare out any enemies.

Categories
Game Development Personal Development

Thousander Club Update: May 28th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 111.25 (current year) = 373.5 / 1000
Game Ideas: 616 (previous year) + 44 (current year) = 660 / 1000

Edit: Hah, I didn’t get to update this entry before it got posted. After a couple of good productive weeks, I had a week in which I couldn’t do much of anything.

Categories
Game Development Geek / Technical Linux Game Development Personal Development

Interview with Ryan “icculus” Gordon

Over at LinuxGames.com, I found Interview with the Icculus, a discussion with Ryan “icculus” Gordon on the future of game development on Gnu/Linux.

The best quote:

I guess you’re asking what Linux gaming will look like in five years and, in a roundabout way, I’m answering: whatever we make it look like.

Ryan is doing his part by putting in his efforts into the next version of libSDL, which seems to integrate more with OpenGL behind the scenes, as well as the reincarnation of the Loki Setup program, called MojoSetup.

I’m hoping that GBGames can also make a significant difference in the future of gaming on this platform.