A week ago I tweeted: "With Meanwhile stable, my Next Damn Project Slot is open as of Monday. And that means Hadean Lands (aka the Previous Damn Project)."
Perhaps you read that with a detached, urbanely ironic skepticism. Or not. Maybe Twitter can't tolerate that much irony. Who knows. Anyhow, last Monday, I opened up my HL design notes file. I brushed the dust and dinosaur vertebrae off it and read through. Here's what I quickly realized:
- There are way too many ideas in this file. My notion of what should go into this game was, let's say, overambitious.
- However, the ideas that are coalesced into puzzles and plot are fine. (Except for that thing about airlocks. That isn't going to fly.)
- Thus, I must throw out 80% of the unattached ideas, and use the rest to fill in the gaps in what I've got. And then I'll have a design.
- True, there are a lot of gaps. But there are plenty of ideas to fill them.
- Geez, this is a complicated puzzle structure. No wonder I bogged down before, trying to fill in the gaps.
- To the bat-cave!
Er, that last should read: I need a complexity management tool! So I quickly wrote one: PlotEx, a Python script for exploring puzzle plot constraints.
This is not an IF creation tool, specifically. It just lets you express your puzzle constraints in a simple way: what needs to happen before what, what requires what tools, and so on. Then it computes all the consequences of the scenario; it shows you what states can and cannot be reached. You can try variations like "what if the player never solves that puzzle?" or "what if the player has an extra invisibility potion?" Basically, it tells you whether your game is solvable, or whether parts of it are solvable too soon.
I've written a whole big article about PlotEx, plus documentation, so I won't go into further detail here. Bonus example: the plot logic of Enchanter rendered in PlotEx. Take a look if you think it might be useful to you.
Has it been useful to me? Heck yes. I have now filled in many gaps, and I have a much better idea of what elements I can put where without breaking HL. Furthermore, I can keep testing this; I can write unit tests for the game logic, effectively.
Of course, you might say I would have made more progress if I hadn't written up a whole big article plus documentation. Maybe. But this is how us geeks work.
In other news -- or rather, the news I started with: Meanwhile has been sent off to App Store review. If nothing goes wrong, it will be available Tuesday, November 8th (slightly earlier in Eastern climes!)
Happy Hallows, or whatever you do. (I watched the Anti-Morris.)