The "test room" so far (click to enlarge)
This post is going to be about an MMF project. At first I didn't mean for it to be so involved - in fact it was going to be just a short description, but I got a bit carried away and it's about 750 words now. So if you'd like some sort of advance warning, I'll nominate the third and last paragraphs as being the ones that are the most understandable. Avoid what's in between if possible.
So, after a rather uninspired period, I've started work on another game now. It's not going to be anything like as much of an undertaking as Crystal Towers was, being more of an attempt at doing something different and writing an interesting engine than being a full-length game. A bit like Breakout Invaders before it - in the middle of writing that I realised that having a separate frame for every level would have made the file size prohibitively large, so I got it to read level data in from a text file instead. This file reading (basic though it was) eventually became the main attraction of the game, moreso than the game itself.
I was going to begin this paragraph with "Put simply," but I can't seem to put it very simply, so I'm going to say that the idea I have is basically a combination of Wario Ware
and Maze of the Kings
(you know, that machine that they have in the dark corner of the Union games room), but as a platform game. That is, each stage is a single screen about getting past a specific obstacle that will last no more than ten seconds or so (Knightmare providing the inspiration for a good few of these, incidentally), and the rooms that you play through are stuck together in a random order from a large library of rooms. At the moment I'm thinking of having three separate "room banks", and the room bank switching every twenty rooms or so, starting off easy and getting gradually harder.
Selection screen (click to enlarge)
The central point of the game is the room selection, which I've been working on to start with. The entire room library is stored externally as a list of numbers, with each number corresponding to a frame in the game (the numbers aren't sequential, so I'm also using an externally stored lookup table to record which number belongs to which frame). To start with, the game takes this rooms list and duplicates it as a "progress list". Before each stage, the game selects a number at random from this list, removes it, and saves it out again, replacing the old progress list so that the new copy is loaded the next time round. In this way, it's ensured that no number is selected twice. That's pretty much as far as I've got - unwisely I've been caught up in making the room numbers display like a slot machine, and presentation really should be the last thing you do, but once the selection engine is done then I'll be able to just churn out rooms at warp speed.
As far as other game mechanics go, the whole thing will be on a timer. This timer was originally going to be the Life Force sequence, but the loading time for an external AVI was very noticeable. I've replaced it with a big clock (which I really like the look of, by the way). A form of replenishment will be available every five rooms or so. To do this and preserve random room order, each room should have a position for the pickup to appear, but it should only actually be created when that room falls in a place where it's needed. Getting hurt in the game will temporarily reduce the timer faster, so that you can keep going but have less chance of getting further.
I'm not sure about how to implement the three separate stages of the game - either I could have three separate room lists (one for each stage) or reserve certain room numbers for certain difficulties. The first of these definitely seems the easier to write, but it might make the amount of external files needed a little untidy.
At the moment the player character is a nameless knight sort of thing with an awful walking animation. Forget about the complexity of the selection engine, I find doing walking animations one of the most difficult parts of making anything. In fact, even the game itself doesn't have a name yet. I'm never very good at naming things - its working title is "Randomly Generated Platform Game", but I'm sure the right name will eventually come to me. After all, "Crystal Towers" was called "Custom Platform Movement Advanced Project" for about half of its development. The motif I'm using is of climbing a tower, so maybe it will be something to do with that.