Friday, October 28, 2011

In Profundis Progress (10/28)

I haven't been doing nothing on the project exactly, but I'll admit there's not a lot of actual programming work to show for it lately.  I've been thinking.  Thinking about things like this.  If this seems a little incoherent it's because I'm writing this as I work it out in my head.

One of the ideas of the game is that the player has to manipulate the game world to get around in it.  What you do changes the world, and changing the world is dangerous.  Like, putting a piton in a wall could crack the wall, causing liquid to drip through, possibly weakening the wall further, eventually destroying the rock face the piton is in.

It's not good enough to use a new cell type for each type of tool, because otherwise things like pitons and ropes will block fluids, which is no good.  Instead, each cell needs its own Tool field.  That adds a little overhead to the cell structure and cellturn(), but isn't too bad.

A rope can be tied to a piton.  The question is however, how to represent this rope? Do we arbitrarily plop it down when the piton is placed?  What if the piton is removed then, how will we know to remove the rope?  If multiple pitons are placed vertically so their ropes overlap, how will we know to remove the right ones?

Another thing is, I've learned a bit more about how Python handles recently, particularly I've cleared up in my head how it handles static class variables, which stands to simplify the code a bit and make it more maintainable, but requires going back and redoing some of my old work.

So work is continuing, and in fact should speed up now.  I find my energy for project work tends to come and go, based both on internal and external factors.  Updates should be frequent again, at least for a while to come.

Wednesday, October 19, 2011

Not forgotten....

Other projects and such have been vying for my time lately, and I've kind of let them for a little while because I'm wondering if what I have so far is "fun."  It has the capacity to be fun, I recognize, the question is if the world builder can take advantage of the potential to create interesting situations.  That is a hard problem; I've got some ideas in that direction, but there's

There's also the matter of some weird bugs that have cropped up in the fluid code with the random fluids.  Notably, when walkable fluids float atop swimmable ones, it's kind of wonky.  The platforming routines need a lot more work.

There's a thousand things left to do, but I'm working on them!  I am sorry it isn't going as quickly as I hoped.  I'm afraid I might not be as good a programmer as I had hoped -- the project is reaching the edges of my capacity to keep it all in my head at once, and that slows things down.  Please bear with me in this difficult phase of the project.

Thursday, September 29, 2011

In Profundis Progress 9/29

Ah, been slow going for a couple of weeks I'm sorry to say.  I keep getting caught up by stupid bugs.  This time, it was an out-of-bounds error that turned out to be caused by some debug code I had put in and forgotten about.

In positive news, a change to the way the game decides which cells to calculate has increased the range it looks at while simultaneously bringing a framerate improvement.  The change was actually suggested by someone in the comments to Gamasutra article I wrote about cellular automation; specifically, not to calculate every cell around the focus, but just those in a checkerboard pattern around it.  Reverse polarity of the checkerboard every turn.  Calculating fewer cells means I can calculate a further range, but the result isn't a noticeable decrease in fluid flow speed because I was already ignoring cells after they flowed one space until the next frame anyway, so as to prevent moving objects from teleporting.  I think even now fluids might be flowing a bit too quickly, so I might ease up on spending so many cycles on calculating.  Having a better frame rate means I can put in more gameplay features and/or graphic effects, so it's a very good thing.

Saturday, September 17, 2011

In Profundis Progress 9/17

ARGH

There is a bug in the game, an infuriating one that has got me, at the moment, stumped.  It has to do with the system the game is using to keep track of cells that potentially need updating.  In one specific circumstance, that being when fluids hit the edge of a platform and flow down off the side, some of it is often refusing to remain mark active long enough for all the fluid to flow off the ledge; it just pools up there, unsupported.  If something happens next to it it causes it to "wake up" long enough for some more of it to flow away, but only for one frame.

I'll figure it out eventually.  Just wanted to expose you all to my current personal hell.

Thursday, September 15, 2011

In Profundis Progress 9/15

The last time I posted a picture of a game map the region styling code wasn't working properly. Have a look at a random game map now:


Looking at this, I feel excitement for the project building again.  For randomly generated platforming terrain, I think this is very good.  Keep in mind that fluids aren't even generated in the random maps at the moment, and there will be gasses in the final version too.

Here are some in-game images:

1. This is just outside the "base" area.  When done, the player's rocketship will be in this area, which serves as base camp.  Notice the character design has changed a bit: her head is more realistically proportioned, and there's now a spaceman's bubble around her head.  Also notice the faint colored backgrounds; these are colored from leftover data from terrain generation, so they tend to suggest the platforms are extending from background features.  (Well, that's how I describe it.  Maybe there's a better way to explain it, but I haven't thought of it yet.)


2. The colors of the walls will be important; they represent different types of stone.  Unfortunately they're fairly blocky at the moment.  I've thought a lot about how to remedy that without spending extra rendering time for edge effects, haven't come up with a good solution yet though.

3. A tunnel.  Currently the background being drawn for out-of-sight areas so long as the player has seen them before; this is a bug.

4. I put some liquid into this image.  Note that the blue substance here looks and flows like water but it isn't; it can be stood upon!  This is a property of this liquid, generated randomly.  I'm not sure what the gameplay consequences of this will be however; what if the player falls into an underground sea, but floating atop that is a layer of "solid" liquid?  Should "solid" liquids always be heavier than swimable types?  I'm currently thinking that, in most cases, it should.

Tuesday, September 13, 2011

In Profundis Progress 9/13

More news!  I've put in some background graphics now.  They're faint, indistinct and essentially huge pixels, but I think it kind of fits in with the art style.

It takes me a fairly extensive amount of work to create a demo video, since I have to record it, encode it, upload it to YouTube, get links to it, etc., but I hope to have something new for you guys to see soon.  Current work is focused on fleshing out the region terrain templates and getting fluids generating again.  Slowly, bit by bit, it's coming together.

Saturday, September 10, 2011

In Profundis Progress: 9/11

Not a lot of progress the past week unfortunately, DragonCon got in the way of things and morale is kind of low right now. Have managed to pull myself out of my funk enough to start work on inventories and object simulation though, and done some of the art for those objects. Just generic stuff so far though, haven't gotten any of the backer-sponsored items started yet, but those are in sight. It'll be nice to get some of those things off the list.