Categories
Game Design Game Development Games Geek / Technical Marketing/Business

Plants vs Zombies Developer Interview

In my post on Plants vs Zombies, I was lucky enough to have one of the people deeply involved in the production of the game answer some of the questions I had about the design process and behind-the-scenes work. I have been waiting for an in-depth interview with George Fan, the designer and creator of the game.

GeneralGames.ca’s interview with George Fan is a short one, and it isn’t as in-depth as I would like, but Fan does answer some questions about how the game came about.

In other interviews, he has said that he was innovating on the tower defense genre, mainly by improving the accessibility.

My goal was to take the tower defense standards and simplify them down to the point that almost anyone could pick up and play. With that in mind, I kept the playfield small and removed some of the things found in traditional tower defense that might not be as intuitive.

He mentions the humor aspect being a big focus as well.

There’s no word on whether or not a sequel to the game is in the works, but Plants vs Zombies is being ported to other platforms, including XBLA.

Categories
Game Design Game Development Games Geek / Technical Marketing/Business

Defining Indie

Wolfire Games has a new blog post that attempts to define what indie games are. Defining what “indie” means has been about as tough as defining what a “game” is. I’ve covered a few attempts here and here.

What people in general think “indie” means can affect how a new game is welcomed into the market. I know that a number of game developers worry that labeling their games as “indie” might negatively affect sales since people might associate “indie” with “low-budget” and “amateur”. On the other hand, other developers want people to associate their “indie” game with “innovation” and “creativity”.

Wolfire Games mentions Microsoft’s handling of their Live Arcade and Community Games sections. When the name of “Community Games”, which has generally been considered the home of poorer quality games, was changed to “Indie Games”, many developers balked at the idea of associating “indie” with “worse”.

After talking a bit about how various organizations have defined “indie”, Wolfire gives its definition: an indie game is one motivated by passion and designed by the people actively working on it.

And right away, I’m sure some of you are uncomfortable with that definition, too.

So if you make a game that seems to appeal to people willing to spend their money, and you work on it to improve the revenue, you fail the first part? Or what if you are just absurdly bad at the marketing and business aspects? Do you pass the first part?
And if you have a small company that actually separates the game designer from the programmer, it fails the second part?

I think that most people can agree that being indie means having full creative freedom over your work. I think if you look at Wolfire’s definition, it attempts to solve the problem of answering “Who is indie?” with “EA” or “Nintendo”. While EA technically has freedom in that no one tells EA what to do, EA is far removed from the actual development of a game, and any game they publish is presumably not being made without their influence somehow affecting it. On the other hand, Introversion, creators of Defcon and Darwinia, are able to exercise creative freedom without worrying about a publisher making feature requests or design changes. They sink or swim based on their own efforts.

What about a company like Valve? Most people try to claim that “indie” means you don’t have a publisher, but what if you ARE the publisher AND develop games? Well, how many levels of hierarchy are there? Does it impact the creative freedom of the developers of any individual game? Valve would also be considered too big by Wolfire’s definition. Portal was made by a group within Valve, which implies to me that full creative freedom by the hands-on developers was hampered.

Basically, if you’re big enough to have studios within your company, you’re not indie because each studio is beholden to some other part of the organization.

Perhaps a better way to define indie is to restate Wolfire’s attempt as: an indie game is one that involves full creative freedom for the people working directly on it.

Now it’s your turn to be uncomfortable with my attempt at a definition. Feel free to comment and poke holes in my definition. B-)

Categories
Game Development Personal Development

Thousander Club Update: August 10th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 155.75 (current year) = 731.75 / 1000
Game Ideas: 775 (previous three years) + 10 (current year) = 785 / 1000

Sometimes, Test-Driven Development makes the simple stuff hard, but once it is done, it’s so beneficial. Case in point: the main menu. I’ve been working on the main menu for my Vampire game, and in the past, I would have probably got it knocked out quite easily. TDD forces a good design to appear, but in exchange I have to spend a little more time on it than I expected. The nice thing is that it won’t be as hard-coded and game-specific as my normal implementations would.

And a side benefit of using TDD so far? My build times are obscenely fast. It takes just over 20 seconds to build my entire game from scratch, and I suspect a good chunk of that time to be the extracting and building of my unit test framework. Granted, my game doesn’t do much right now, but it is very satisfying to know that it takes almost no time at all to go from a fresh project pulldown to a finished and tested build. I credit TDD with forcing me to use interfaces, short functions, and fewer dependencies.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Design Game Development Games Geek / Technical Personal Development

Ludum Dare #15 is Coming!

It’s August, which is one of the months of the year, and that means that Ludum Dare, the the tri-annual 48-hour game development contest, is back!

Suggest your theme, and in the coming weeks the theme vote will commence. Will Exploding Bananas win? Circuits? Glow in the dark? Cooking? We’ll find when the contest officially starts on August 28th!

Here are the results of LD#14 from this past April. I ran away with the gold…in the Food sub-competition. My journaling abilities also commanded a respectable 5th place. The theme then was Impending Wall of Doom, and there were a lot of creative ideas that people implemented.

Ludum Dare is always a fun time, and the last one broke records for number of participants. Will a new record be set at LD#15?

Categories
Game Development Marketing/Business

Indie Game Challenge

I received an email recently informing me about the Indie Game Challenge. Here’s Lord British in a somewhat humorous video to simultaneously poke fun at wannabe game developers and introduce the contest:

The Challenge is designed to be the preeminent competition for video game developers by offering winners almost $300,000 in prize money and scholarships, including $100,000 grand prize awards for both the winning professional and non-professional games. In addition, finalists will receive national exposure and be eligible for additional prize money by having their pitch videos posted on GameStop.com and GameStop TV for People’s Choice Award voting. Complete entry and contest details are available at www.indiegamechallenge.com.

If I understand the rules correctly, you have until October 1st to submit a game and a pitch video explaining why you and your team should win. Prizes include a scholarship to The Guildhall, opportunities to pitch your game to a major game publisher, and cash.

Whether this contest is life-changing remains to be seen. It bothers me a bit that one of the prizes for this “indie” contest is getting the ear of Capcom, Nintendo, Microsoft, EA, and others, effectively making it less indie to me, but it could be a big opportunity if you aren’t as concerned.

If anyone is planning on joining this contest, feel free to post a comment here! I’d love to hear about your decision, your team, and your game!

Categories
Game Development Personal Development

Thousander Club Update: August 3rd

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 151.25 (current year) = 727.25 / 1000
Game Ideas: 775 (previous three years) + 10 (current year) = 785 / 1000

Woo hoo! I broke 150 hours so far for the year! Last year around this time, I wasn’t even at 90 hours. With a new Ludum Dare competition coming at the end of the month, it looks like I’ll be doing a lot of game development in 2009. Relatively. It’s still far less than ideal, of course.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: July 20th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 148 (current year) = 724 / 1000
Game Ideas: 775 (previous three years) + 10 (current year) = 785 / 1000

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: July 13th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 147 (current year) = 723 / 1000
Game Ideas: 775 (previous three years) + 10 (current year) = 785 / 1000

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Geek / Technical Personal Development

Learning How to Unit Test

I first wrote about Agile development as a lone indie years ago. I got some good comments, but it still felt like I lacked any real insight into how to be a better developer on my own. A couple of years later, after seeing someone use unit tests first-hand, I wrote about Test-Driven Game Development.

So I immediately tried to use unit tests for my next project, which was my Ludum Dare #12 entry. I stopped after encountering difficulty. I didn’t know what I was doing, and I needed to make progress. I had a deadline.

Recently, I decided to start using TDD to create a simple game. And I wanted to use it for the entire project, not just the easy parts. I created a simple design for a game involving vampires, and set to work.

And immediately I hit a problem. In order to get anything useful on the screen, I needed to use libSDL. How do you go about writing unit tests that make use of a library? I don’t want my test binary to open and close windows, manipulating hardware, and otherwise resulting in weird side effects. Ok, no problem. I’ll just create an abstraction layer between the game and libSDL. I called it HardwareLayer, but then ran into another problem. The HardwareLayer would need to use libSDL directly, so all I’ve done is put the hard-to-test code in a new class. Well, maybe I can make an interface, but how does one test-drive his way to an interface? I didn’t make anything easier for me at all. Unfortunately, my lack of experience was going to bring this TDD experiment to a standstill.

But I pushed. I checked the book Test Driven Development: By Example but couldn’t find any information specific to what I was trying to do. I tried to find a TDD-centric IRC channel, but none existed that I could find. So finally, I threw out my question on Twitter, and within moments, I had a response from an expert.

Brett Schuchert of Object Mentor took the time to write up a blog post on TDDing an Interface. While his example was in Java, it was eye-opening to see how TDD gets done in a somewhat real-world example. I was able to make some progress, but still had the problem of using libSDL at some point. My inexperience questioned whether I would be using unit tests on the code that simply delegates to libSDL calls.

And Schuchert once again spent an evening writing up another blog post about hiding global methods, and this time he even used C++ and created a working project! He claims that the effort to get everything under test was simple to do since most of the issues I was having are idiomatic and therefore pretty easy to solve.

In our discussions in email, Twitter, and the blog, I had the insight I needed. I’ve since purchased Working Effectively with Legacy Code since a number of the issues I had involved dealing with untested/untestable libraries. If it is so idiomatic, I should know it, too. The book would have been very helpful with issues I’ve tried to deal with in the past, so I look forward to applying my new knowledge going forward.

Since those posts, in the time I’ve been able to dedicate to game development, my test binary doesn’t make calls to SDL directly, and my actual game does. I might still do bizarre things when it comes to TDD and unit testing, but I’m making progress that I’m reasonably confident is correct and working at all times. It helps that I recently participated in a three day TDD workshop that the Day Job sent me to, but I found that the most beneficial part was doing exercises with someone available to say whether or not I was going about it correctly enough. In fact, even the Bowling Game Kata makes a lot more sense to me as an exercise. That is, I get it now.

Categories
Game Development Personal Development

Thousander Club Update: July 6th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 144.25 (current year) = 720.25 / 1000
Game Ideas: 775 (previous three years) + 10 (current year) = 785 / 1000

I did minimal work on the vampire game, but it was on purpose. I had a mini-vacation to celebrate Independence Day out of town. Now that I’ve returned, I am getting back on track, although this month is filled with vacation time so I don’t expect too much game development productivity.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]