Wednesday, May 18, 2011

Project Duckbill

Remember how I said it was open-source?
LIES.
I decided that I want to try my hand at maybe making some money off this someday. For that to work, I can't exactly have the source code available free of charge now can I? That and I'd only open-sourced it because Google Code makes you. Assembla? Doesn't.

Anyway, in the realm of good news, I got my scheduled features for this week done already. Which means I can talk about stuff for a bit.
Procedurally-generated metroidvania. That's the goal. There'll be howevermany items in the game in total, and depending on the settings you pick at the start will determine how large a subset of them will be included in your game. The scope of a single playthrough will be somewhere between fifteen minutes and four (or more) hours, depending on initial settings. There will be a few different regions, such as a cave environment, a jungle area, and a factory. The tone is mildly sci-fi, with alien-like creatures and laser weapons. When you start the game, you choose one of two characters, male or female. The man starts with a gun, the woman a sword. The player might pick up the other one over the course of the game, so you're not explicitly locked out of anything, but if you like one over the other you don't need to depend on random chance to find it. ...There may be an extra mode where you can start with several of the other items of your choosing as well.

Generating the random levels is the hard part. Well, generating random levels is easy. Generating playable random levels can be tricky. Generating fun random levels? Who knows. Here's my timeline for the random level generator:
  1. Generate basic randomized map layout
  2. Make each room randomized, but ensure every exit is reachable
  3. Let each room be reachable, but only if player has the requisite items
Each step is a good deal trickier than the last. The good news is, 1 is already done. Mostly. The generator doesn't make different regions, but that shouldn't be too hard (oh dear why do I say things). It also makes cool-looking stuff:
There's some weird pixellations on that screenshot, because it's zoomed out rather far. For reference, the very smallest 1x1 rooms are screen-sized. That map has 3000 rooms, of varying sizes. There's no hard upper limit on the size of a map, although 15000 rooms uses 1.3GB of memory. Also, 3k rooms takes 8ish seconds to generate, and 15k takes around a minute.
I'm guessing 500 rooms would take a few hours to explore.
I think I'm going to -let- players make gigantic maps, for forty-hour epic games.

Also, I'm going to be releasing a free version, but it'll have the options dialed back some. As in, only about 40% of the items would be in it, and the map sizes would only go up to "small". That said, it's better to release a demo than not. For price, I'm thinking $5, but that could go up to $10 or down to $2.50, depending on polish and demand.
And, if I never get it to the point where I'd be comfortable charging for it, I'll release what I have for free.

No comments:

Post a Comment