Bradford Mansion

A classic parser based text adventure that I created for IFCOMP 2019

I created a classic parser based text adventure game called Bradford Mansion, and entered it into the 2019 Interactive Fiction competition. You can go over there and play it right now (as I write this, judging is about to begin).

To download the game, visit the game on the IFCOMP 2019 site.
Visit the IFDB entry of the game

Why I made such a game?

I always found text adventure games very interesting (and adventure games in general). I had a long time plan to create one.

This spring I finally took time to play through Thimbleweed Park. It was a great game, although the ending was not to my taste. But more than the game, I am always on the lookout for how such games are created and developed. So I was thrilled to read about the process in the Thimbleweed Park Blog. And also Ron Gilbert’s blog, which also had some articles about adventure games.

All this reading about making a game got me pretty excited and pumped, and I think is the main reason I finally ended up finishing a text adventure šŸ™‚

Puzzle dependency charts

Through these blogs I explored the concept of puzzle dependency charts. I wanted an exercise in creating one, and so the first version of the Bradford Mansion puzzle dependency chart was born (I had no idea it will be a game concept really soon).

I ended up extending it, and before you knew it, I had the complete game planned out before me. Looking back at it, this is what made the whole development process work and helped me finish the game.

Of course the chart changed during development, but it was what kept me going. My previous attempts at text adventures failed probably because of this reason: lack of proper planning.

Developing a game

With the story plan in place, I set out to build (yet another) text adventure engine. I always have these big deliberations on what technology to use. I will probably tell more about this process in another blog post. But the end result was to use .NET Core 2.2 and C# language to create the game.

I opted to use a technology called ahead of time compilation, and so released the game for Windows (x64), MacOS (x64) and Linux (x64).

Why create an engine myself?

I very much like to build things and experiment with things. This is why I wanted to create a complete parser and text adventure engine myself: it was an effort to prove it to myself I can do something like this.

I am very satisfied with the results. How I measure this? It is very easy to add things to the game or customize behavior of individual items. Adding new verbs to extend what the player can do and how the player can interact with the environment is also very fast and easy.

During development, I was a bit concerned if I will be able to cover every aspect of what an interactive fiction story should be able to do when it is parser based. I suspect the first version will have some features missing despite receiving testing by actual people.

There is a lot left to do as well. I have a backlog of features for the engine.

Testing the game

I recruited some testers to test the game, and received a lot of good feedback from them. Valuable lessons in game testing were learnt, this being one of the biggest game projects I have ever completed. šŸ™‚

First of all, never assume something works.

Second, never underestimate what other ways to accomplish things people will have in your game. The testing phase allowed me to correct technical issues and logical/game issues that would have seriously bitten me had I opted to have less testing.

I also added automated testing to the game – another topic which I want to expand in an upcoming article. This was a bit limited during development, and post-release I have already expanded this to include useful features to test various aspects of the game.

What’s next?

I have quite a few story ideas for future games, and also a big backlog of features I wish to add to my adventure engine. In the meanwhile, you can go and play Bradford Mansion right now!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s