diary of an indie game developer

 

Archive for the 'Game Dev' Category

Wiki Experiment, Part One

Wednesday, October 10th, 2007

As I mentioned recently, I’m looking for a collaborative, online design tool. I’ve decided to try out TWiki, a wiki with so many plugins it looks like you can do anything. For example, I’d talked about wanting the ability to draw, and there’s a diagramming tool. It’s a long way from a notebook and a pen, but maybe it’ll have its advantages.

So far, the results aren’t terribly encouraging. It took several hours to get TWiki up and running with the appropriate plugins and security settings, and I had to have my host install a module (which they did promptly, and for free!). Now that it’s up, the idea of fighting the Wiki language or the WYSIWYG plugin’s quirks just makes me want to retreat back to the notebook. I fight that inclination long enough to mess with the wiki for a few minutes, and then I give up design work altogether.

Maybe the payoff is down the line, when I’ve figured out the wiki and I’ve opened it up to friends. Hopefully I can get to that point.

Collaborative Design Tool?

Sunday, September 30th, 2007

My design up to this point has been in notebooks.  There are a few qualities I really like about them:

  • Diagramming is easy.  I don’t have to conform all of my thoughts to paragraph structure.
  • They don’t require a computer (my laptop is heavy).
  •  It’s easy to peruse old entries (I date all of them), so I can see what I was thinking a couple years ago.

There are also some shortcomings to my pen and notebook system, the bolded ones being the most important:

  • They’re disorganized and unsearchable.  If I’m designing several things, either all the designs get mixed up in the same notebook, or I have to keep a stack of different project notebooks on hand.
  • They’re not backed up.  I’d better not lose those notebooks.
  • They’re difficult to discuss.   If I want to get feedback, I have to gather some friends together and discuss the ideas, or write up some ideas all over again in email format.
  • They’re not collaborative.  If other people come up with great ideas during those discussions, they don’t end up in the notebook, and I’m likely to forget them.

I’ve decided I should probably move to software design tools, even if I have to give up some of the positives such as easy diagramming.  My first thought was a wiki: they’re easy to set up, and collaborative.  (I’d only be giving a few trusted people access.)  Is there something better out there?  Something more tuned towards design, perhaps?  I know there are tons of teamwork tools out there, but I’m not sure where to start looking.

GameDevMap

Tuesday, July 31st, 2007

GameDevMap is just that: a map of game developers and publishers, searchable and sortable by various criteria.  I wasn’t sure it would catch on– but I was quite wrong, as you can see if you swing by.  It’s quite comprehensive, and pretty dang current.

It’s run by Gaurav Mathur, who I worked with a little at Double Fine, and who’s now at Factor 5.   Looking for a game job?  Just curious?  Prepping to invade your favorite game developer’s office and steal an advance copy of their game?  Check out GameDevMap!

XML Object Creation/Data-Driven Application Library?

Thursday, July 12th, 2007

I’m implementing yet another XML-based object creation architecture, and wondering if I’m reinventing (reimplementing, really) the wheel one time too many.  I’m looking for the basics: tweak object attributes in XML; reload on the fly; easily add new object types.  Basically, I want a pretty standard data-driven engine that pulls pretty much everything from level data to player info and quest/mission/plot progression from a bunch of XML files.

It may seem like it’s not that much– there are a million free XML parsers out there– but there’s always more to it than you’d think.  What information goes in attributes vs. children?  How do you handle reloads of changed data?  How much control do the objects being created have over parsing?  What about saving data out?

Do you know of anything that fits the bill?  C++ source code is best, but even a well-written, modern article describing a game-relevant architecture would be great.  I’m definitely noticing the paucity of game development writing compared to other sectors: I dug up a couple tiny game-related bits from 2002 that basically told me I should try using XML, while I also dug up many highly detailed case studies of XML-based GUI app creation.

Modern 2-D Spaceship Controls

Wednesday, May 30th, 2007

Classic 2-D space games such as Star Control were keyboard-centric: WASD for turning and thrust, plus other buttons to shoot, dock, and so on.

It’s been a decade or so, and it’s time to update 2-D spaceship controls: it’s time to use the mouse.  Here are some requirements:

  • Navigate anywhere.
  • Control speed.  I don’t mean reverse thrust: maybe you have to turn around and thrust in the other direction.  With enough skill, though, I should be able to stop near that planet, or go faster, or slow down.
  • Communicate and dock with other objects.  Land on a planet, hail a ship.
  • Inertia.  I should be able to rotate in a particular direction without affecting my current thrust.
  • Shoot.  What’s a game without shooting?

Some options, in case that’s too easy:

  • Turreted fire.  While pointed in one direction, I can shoot whatever turreted weaponry I have at my command in any arbitrary direction.
  • Location-targeted secondary abilities.  This may be a dupe of turreted fire.  Think Diablo 2, with the ability to place a trap anywhere on the screen.
  • Targeted abilities.  I want to launch my tracking missile at that ship over there.
  • Multiple types of fire.  As mentioned above, I’ve got some regular guns, and perhaps some turreted guns, and missiles.  And mines and shields and boosters and all sorts of goodies.

The goal is to accommodate all of the required features and enough cool optional ones, while making an interface that’s comfortable and easy to learn.

Disclaimer 1: I’ve been thinking about this for a while, and I don’t believe there’s an easy solution.  Some compromises in requirements or ease of use may be required.

Disclaimer 2: If anyone proposes an awesome solution, anyone who reads this is free to use it in any space game they may or may not be working on.

IndieGameJobs.com

Monday, May 14th, 2007

The guy who runs GameBeep.com just dropped me a line about Indie Game Jobs, a site that lets you post and search for… uh… maybe I should just paste from the e-mail:

A new job board, www.indiegamejobs.com, just opened up that caters to the independent game developer.  The site allows you to post jobs or search through job categories including 3d, textures, programming, and level design. You can evaluate artists by previewing their work and reading feedback ratings from other users. You can also post and browse resumes.

I haven’t actually given the idea much thought.  I’ve been entertaining thoughts of using RentACoder.com to accelerate my own prototyping or dev work.  Would a dedicated site be a better matchmaker?  Frequently, the most productive outcome of these sites is a few test runs, and then an “off the grid” relationship with someone who works out particularly well.  If IndieGameJobs gets sufficient volume (and quality), maybe it can help me find that special someone.

Encourage Fun

Thursday, May 10th, 2007

Tent-m.jpgI’ve been playing Final Fantasy XII, and it’s magnificent. So I was a little startled by one of their systems: “chaining”. You get a bonus for killing a bunch of the same type of creature in a row, and your chain is broken if you kill any other sort of critter.

While there’s a small amount of fun gameplay here (Run away! That’s not a dire rat!), for the most part it’s just encouraging you to perform a task you’ve already mastered, again and again and again. If you choose to ignore it, as I do, you still get a discouraging message flashing up on the screen every time you break a chain. “You just killed a brand new, big, bad-ass monster! … How could you? You had 7 dire rats going!”

There are plenty of examples of games encouraging un-fun behavior (Everquest’s camping; Castlevania’s leveling up). While it’s impossible to plan for everyone’s different ideas of fun, some game systems have explicit penalties for something that’s clearly a behavior the minority of gamers will enjoy.

In contrast, look at a game like Grand Theft Auto: minimal penalties, with tons of activities I can participate in if I choose. When you feel like it’d be fun to drive a cab, you can drive a cab: and the game rewards you for it. When you want to go off some cool jumps, go off some cool jumps: more rewards. The game doesn’t penalize my mood at the moment, but instead encourages me to have fun.

FishEd: 2D Tile-Based Map Editor

Friday, April 20th, 2007

I’ve barely heard of this tool. It’s very under the radar, aside from a post-mortem at GamaSutra, almost as if the site itself has been designed to repel search engines.

Lucky for you, now you’ve found it: FishEd is probably the most advanced, cheaply available 2D map editor out there. Having developed a quickie myself for a GBA game, I really appreciate how much more advanced FishEd is. It’s got the basic like layers and meta data, along with more advanced functionality involving brushes, masks, and animation.

It’s designed to export easily into BlitzPlus, with a BlitzMax version in development, though I’m guessing the data format shouldn’t be too difficult to adapt for another tool (I haven’t verified this). It’s got a free demo and costs only 5 GBP (10,000 USD or 500,000 Canadian, I think), so if you’re developing a 2D tile-based game, give it a serious look.

Gibbage Becomes Indie Patron

Saturday, April 7th, 2007

Gibbage.co.uk has re-launched as a provider of “games, T-shirts, mugs and other funky paraphernalia”. (Previously, it was the home of the 2D, over-the-top, cartoon deathmatch game of the same name.)

The twist is that all profits from Gibbage.co.uk are going to go to indie developers (selected, presumably, but site founder and owner Dan Marshal). To get a feel for the type of games he favors, check out the games promoted on the site: the idea is indie and new (as opposed to casual and cloned).

It’s a surprising idea: aside from some government programs and tax breaks, I’m really not familiar with any “indie patronage”. I imagine the site, pitch, and model may shift quite a bit as he looks for the best way to pull off a new venture like this, but I of course wish him the best of luck.

Agile Game Development

Tuesday, March 27th, 2007

However you’re making your game, you’re doing it wrong.

In our young industry, that’s one simple fact: nobody’s figured out how to efficiently make successful games. Competition means that no one will ever have a perfect formula, either, but right now we’re just really, really inefficient when it comes to development. Huge architectures are built for features that never make it, while important features are hacked in at the last minute and at high cost. We spend tons of time polishing minor features, while our products ship with major flaws. Frequently we labor for weeks over something that actually makes the game less enjoyable. This is all just the tip of the iceberg.

Of course, if this were easy to solve, it’d be solved: these problems don’t exist because we’re stupid, but rather because the problems themselves are complicated, and resistant to quick fixes.

One solution people are trying to bring over from other parts of the software industry is agile development (often in the form of Scrum). Remember what I just said last paragraph, though: these problems are resistant to quick fixes. (Or remember what I said at the start: you’re doing it wrong.) I’ve talked with a lot of people trying out agile methodologies for their next game, and every single one of them has hit a lot of problems. Sometimes it just doesn’t seem suited to game development: we have too many teams, and they’re too interconnected, to use a method based around fluid, small-group, non-dependent work.

One of the best resources I’ve seen for working through these issues is the Agile Game Development Blog, run by Clinton Keith, the CTO at High Moon Studios. One thing you’ll notice if you spend any time reading the blog is that there are a lot of unsolved problems. Why don’t their metrics of development (”story points“) correlate to fun? Why are they still crunching near milestones? How do you even know how much work is remaining, when “done” isn’t even a known quantity?

All of those unsolved problems are a good sign: they’re the sign of an honest blog.  Everyone trying agile in game development is going through some or all of the issues Clinton Keith discusses.  As I read through the archives, I kept having realizations: “oh, that’s what you’re supposed to do there!”  “Hey, I didn’t realize that’s what was going wrong.”  “Yup, we had that problem too– comforting to know you haven’t solved it, either.”  I highly recommend it.