1. 21 March, 2019
    14:33

    Mysterious Castle is not dead

    Hi, it’s been a few years. Life is complex, much more complex than software development. In the last several years I’ve seen Mysterious Castle rot away in my brain and on my hard-drive, and wept a little at every pang of nostaligia that reminded me of how much fun it was to make and play.

    Being an adult in adult land with adult responsibilities is hard. Mysterious Castle land is fun and freeing, chores feel like adventures, but alas, it all depends on adult land not falling apart. I started making Mysterious Castle when I had few responsibilities and enough money to coast in a cheap apartment, working a few days a week and eating whatever I felt like when my body finally revolted against the constant coding-testing-playing cycle I was in. It was a glorious time.

    One day I got a job as a professional developer, and whoa, I got a pretty nice salary. Much of it went into an apartment in Toronto (crazy rent land), restaurants to take my girlfriend out on dates to, some drum machines, and clothes to disguise me as a reasonably normal city-dweller. Disguised as such, I went out and met people, hung out in cafes and bars, took a few trips here and there, and otherwise spent my time in lesiure. At least twice a week, I’d be inspired to work on Mysterious Castle, and would slog through the messy codebase to squeeze in new spells, items, enemies, and features, but it was slow going, and the slog became slower and more laboured. The experience I was accumulating began to reflect something back at me that I was trying to avoid paying attention to. Mysterious Castle was messy, like 7 years of hoarding crap in every nook and cranny messy.

    The code was not bad, in fact I’m quite proud of how well it has held up, and the performance I was able to squeeze from it, it’s fundamentally sound. But as a project, it was a nightmare. Huge files filled with loosely related classes, a few global variables sprinkled in just for this one thing, lazily thought out function interfaces, and no proper build system to speak of.

    It all came to a point where adding a single feature to the world generation algorithm broke nearly everything. I had dug a hole I could not crawl out of. Every design inspiration I had came up against the turd wall of messy code, and was abandoned after a foolish quest to squeeze just one more thing into the game, like playing a doomed game of Jenga.

    Well. I had paying work, and was learning a lot about development each and every year. I was working with talented developers, architects, and project managers. Suddenly, a realization dawned on me. I’ve cleaned up messy projects at work before, not quite as big and sprawling as Mysterious Castle, but pretty big nonetheless, and written by other people. I have the skills to save Mysterious Castle from the messiness of my youthful exuberance, I know how a neat project should be structured.

    In January of 2019, I started cleaning up Mysterious Castle, using all the boring corporate skills I amassed during my years of professional experience. I did it in my spare time, the same spare time I had spent trying to hammer in new features 5 years ago, but a funny thing happened; I felt my velocity increasing. It felt like I had more time, because as modules were segregated, CMake scripts were written, and API boundaries were defined, I started to understand the codebase again, and could fix bugs, add features and polish performance without a cognitive overload.

    So what does this rambling monologue mean? Nothing much, only that the last 3 months of work on Mysterious Castle, in spare hours of the evenings and weekends, has been some of the most productive work of my life. The world generating algorithm actually makes sense, and can be played with in fun, not fear of toppling it all over. The items, spells, and races are easy to modify and expand on, the saving and loading system is flexible enough to do it snappily and securely. In short, Mysterious Castle is not dead. It’s been sleeping for a while, but in that time I haven’t seen anything else like it come to take it’s place. And it’s beginning to stir again, waking up old ideas and new inspiration for what a Procedurally Generated Tactics game can be, how much fun it can be to make, and to play.

    Thanks so much to everyone who bought Mysterious Castle. A free iOS update supporting new hardware is coming before the summer is through. There is no Mysterious Castle 2, I want to share the evolution with everyone who started the journey with me, back at v1.0 in September of 2011.

    Be seeing you.

  2. Comments


    blog comments powered by Disqus