Thursday, March 14, 2013

7DRL Challenge 2013: Uushuvud (Day Three)

No screenshot today, but there will be probably be one tomorrow. You'll have to be patient. :P

My efforts for day three progressed smoothly. I spent a little time tweaking the level generation, but I kept this to a minimum and focused this time only on fixing real problems with it. Aside from that, I got my item and creature data into a much better state than it was in at the end of day two.

If I release the source code at the end of all this, then some might notice that I am hard coding all my data into tables compiled directly into the program and wonder why I'm doing this. The answer is twofold.

First, I'm used to programming for embedded systems with no file I/O at all.

Second, I'm trying to manage my time wisely. For this project, this means not mucking around with file I/O routines. It's a small game. There's no real need to have my data stored in external files. And there's not going to be any save/restore feature. You have to get through the game in a single go. So there's no file I/O, and I can spend my time working on other stuff.

Last time I tried a 7DRL, I got so carried away with level generation that I think I spent three or four days just on that. There wasn't enough time for everything else, and the game slipped past the seven day mark, and then the fourteen day mark, and now it's more like seven months.

I guess level generation is kind of my thing. I've already spent more time on it for Uushuvud than I had originally intended, but I just really wanted it to be good, even though it's a 7DRL project. That means, first and foremost: No unreachable areas.

My algorithm right now could theoretically produce unreachable areas, but I'm pretty sure it's about 1:10000 for that to happen, and probably like 1:80000 for an unreachable area with important stuff in it (the exit, the player's starting point, etc.). If I make another small change I'm planning that'll take me four seconds, it'll be more like 1:204800000, not really a concern. I'm tempted to write a quick check function that verifies a level has no unreachable areas before showing it to the player, but I really just want to get on with other stuff. Maybe if there's time at the end of development...

No comments:

Post a Comment