Day 7 - The Last Day

How it Always Goes

It's basically guaranteed that when you make plans with a fairly tight time-scale, they don't work out. Game jams in general are a huge example of this; the scope always gets reduced massively on any given jam. The same applies to ARDOR. But I didn't expect the problems I've had today.

The initial plan was a morning of coding, followed by some coding on the train, followed by a submission with plenty of time after travelling. Of course, the travel went wrong; trains cancelled and late, and just everything going wrong. As such, by the "end" of my 7 days, I didn't have anything uploaded because it wasn't possible to upload anything.

I did add features, though; quite a lot of polish and content:

  • Intro screen: making it feel more like a game
  • Level switching: progress through the levels I successfully made!
  • Better player death handling: No more sys.exit(0) when you die!
  • On-screen control instructions: learn as you play!
  • Victory conditions: adds the possibility of finishing the game
  • AI fixes: somewhere in the past couple of days I broke AI, and today I fixed it


By the strictest interpretation of the rules I guess I didn't have anything submitted 7 days after I started - it wasn't possible, for reasons outside my control (trains being terrible!). If someone wants to skewer me for that, I totally understand and I wouldn't argue. Personally, I've given myself some leeway in claiming what I do below about ARDOR.

The Good

All of that said, though, I can consider ARDOR to be far more of a success than "Genergy" was last year. It's far more stable - I've not had any hard crashes in final playtesting. It's far more fun; there's no procedurally generated content, but there's more of a tension in doing battle.

There's also a lot more content, and several features which Genergy lacked, with FOV and proper inventory management being chief amongst them. The world is far richer, and "capping" feels like a feature which has a future - condensing all progress in an RPG down to one core mechanic feels like a cool direction to go, although I admit to being poentially ignorant about prior art in this space.

The Bad

My main gripes with my finished product are twofold:

First: there's not as much content as I'd have liked. This was mostly due to time pressues caused by the delays on the final day - I'd hoped to get more levels created than the 3 I ended up with. There's also a lot of space in the code for extras which didn't make it in: e.g. different types of "cap blast", more varied AI types, equippable armor and weapons, and the ability to improve your melee attacks with caps being major features that I'd have liked to do. If I'd not had to work Monday-Wednesday I might've got some of them in.

Second: ARDOR, being Python, was always going to be more challenging to package + distribute than Genergy, which was C++. I'm quite content in creating cross-platform C++ applications, and given I have access to the 3 main platforms (Windows, macOS, Linux) I could quite confidently create binaries to distribute. On Windows especially that's a huge benefit.

ARDOR doesn't have that. I couldn't make PyInstaller work, so I had to distribute code as zipfiles and hope that people had Python installed. On macOS and Linux that's not such a problem; it's reasonably easy for most users to install a recent Python and get cracking. On Windows it's surprisingly easy to set up but it's still far more effort than I want for a game that doesn't have that much content anyway.

I think the main reason for the packaging difficulties was python-tdl. It didn't work out of the box, and every method I tried to get a single executable failed, and furthermore failed to give any actionable information about what I could do to fix the problem. That's not a criticism of python-tdl itself, however - I see no reason to criticize an open-source project I chose to use. Instead, it's a criticism of myself for choosing to go with a library which didn't meet my requirements; namely, that it be reasonably easy to distribute a finished game. Genergy was a worse game than ARDOR, but it was far easier to use as it only required a terminal with ncurses.

So that's the biggest failure: I suspect a lot of people will skip ARDOR because it's going to be tricky to even get it running. You live and learn: it's difficult to write this, knowing that it's a problem I wouldn't have had in other langages - C++ and Go chiefly among them.


On balance, though, I think I'm willing to call ARDOR a success in terms of the 7DRL, as opposed to Genergy which I marked as "failed" in 2017. It's definitely a game, with a start, middle and end. If you get it running, it's not the most fun you'll have ever had while you're playing it, but it has definite roguelike qualities - to be explicit about it, I think it's definitely a roguelike I made in 7 days.

I'm certainly not expecting critical acclaim; I'd be surprised if more than a small handful of people even get ARDOR running. But that wasn't what I set out to achieve, and indeed that would've been massively unrealistic given the quality of some of the submissions to 7DRL. Instead, I set out to learn and have fun, and I did both of those things.

Another thing I consider a victory is that ARDOR is pretty unquestionably better than Genergy from 7DRL 2017, which was definitely a huge goal of mine.

Perhaps in 2019 I'll create something better still?

First Commit of the Day

13:17 2018-03-10 - "add descending" - d4ad9d33518143899c52e4c8c1f647d3579db4c5

Last Commit of the Day

18:59 2018-03-10 - "Add torch key to controls console" - 0ba799681004e805c6e68513753c570dabe348cc