The Master of the Land of postmortems - A confession

I started developing my first idea for “a short ambient game” in October 2015, with the basic concepts, the setting, and the main character of Irene.

By February I was sure I couldn’t finish the game on time for IFcomp 2016, it was too big. So I chose to reuse the design and the programming for something shorter and simpler. I expanded a flashback into a complete prequel… and The Master of the Land was born.

By August 2016 I still thought that I could deliver it in time for IFcomp 2016, if I worked very very much.

It was finished for IFcomp 2018. “Shorter and simpler”.

Will I ever resume the larger game, the one I really wanted to write? For comparison, it has more than 50 locations (Master has 22) and the story spans 5 to 7 days (Master spans 6 hours). “A short ambient game.” Its title is The Servant of the Land.

Fallen London plus time

I’ve been aware of modern IF from 2010 or so, playing the stuff from Inkle, Porpentine, parser classics… but I wouldn’t be here without the inspiration of Falleon London and Sunless Sea.

My first design idea was: like Fallen London, but without the stuff I don’t like that much: the repetition of text, the gamey stuff that wouldn’t exist in a book or a movie. That led me to the breakthrough idea: Fallen London (with baroque hand-crafted prose, free movement and locations that give you many choices related to different simultaneous storylines), but with time moving forward on every action (no repetition). I wasn’t aware of any IF with this design. The only thing I know that comes close is Hanon’s Fair.

Time moving forwards would make puzzle design a nightmare. I can’t design puzzles anyway. So, down the drain with gameyness. I love games but I love walking simulators and notgame interactive stuff too (Tale of Tales a huge influence). The Master of the Land is barely a game. It’s a literary story with lots of gamelike interactions and very dynamic, but lacking challenge.

Literary goals

So another goal was: as literary as, well, literature, but as changing and responsive as a game. Not a typical Twine.

I’d like to summarize my literary goals with an influential (to me) quote from English fantastic writer M. John Harrison (a great writer, but very demanding of readers, and incredibly hard demanding of writers):

“A good ground rule for writing in any genre is: start with a form, then undermine its confidence in itself. Ask what it’s afraid of, what it’s trying to hide – then write that.”

What are the assumptions at the center of interactive fiction? The most obvious: that choice and agency are real and belong to the player. So I set the goal to undermine precisely that.

That’s why there’s a choice where you tell Irene to do something and a NPC restrains her. A choice where you tell Irene to do something, she starts doing it for real, but she gets a fit of panic and runs away. The endings, and the difference that player actions make.

I don’t think I’ve succeeded in it. Not radical enough. Next time I’ll have the PC insult the player.

How it works

I may write a tech post later, so this will be only a summary.

Twine is awesome (thanks Chris!) but The Master of the Land wasn’t written in Twine. I used twee2, a tool that creates Twine executables from plain text files.

The scripting has nothing to do with standard Twine: it’s all about putting new values in arrays and loops that select and print those values. There are two types of content: story (main text) and choices. Each story passage or choice passage can be attached to one “container”. Each room is a container, as well as groups of rooms. Each moving NPC is a container. The PC is also a container. The system checks which containers should be present in each turn (your current room, the group that room belongs to, the characters in it), gets all the content from all those containers, filters it by priority and prints it.

Add a scheduled event system and that’s most of it.

The game is programmed in Snowman, but it’s not written in Snowman. I designed a pseudocode that I process with AWK to generate Snowman code (furkle gave me the idea). It looks like this:

addStory · Library · 10-beginning of the debate

This adds the passage “10-beginning of the debate” to the Library container. One of the main points of the system is allowing you to add a piece of text or a choice to any room in the game, at any moment in the future.

What went right

It looks bigger from outside

Let me tell you: the game is much simpler than people think. Overwhelming the player makes it seem bigger and more complex than it really is.

In reality, most storylines are simple stories with limited branching and little crossing into other storylines, if any. But laying them over time and locations make it look as if everything is related.

Of course, the game is complex, with more than ten storylines and 80K words and a combinatorial text mechanism. But in the end it’s the feeling of complexity that matters, and that’s the point that’s been most highlighted by reviewers: the sense of freedom and a dynamic world that goes on regardless what you do.

That was my initial basic goal (“Fallen London plus time”) so I’m really happy about it.

Reviews

What can I say. From Sam Kabo Ashwell’s in-depth commentary of the story’s nuances, to Ade’s perfect score and “I’ve never seen anything like it” comment, reviews are the reason I’ll keep making interactive fiction.

Also, reading the authors’ forum was great. I wish I could have played and commented more games, but I left private feedback on the dozen games I rated. I hope it was useful.

Basic design

Despite its limitations, the basic design works mostly as intended.

  • Multiple storylines overwhelming the player with too many decisions but making the player feel free.
  • Really understanding the story requires replaying. Some reviewers said they tried to exhaust the stories in the game and I’m so glad about that.
  • The writer can easily add new stories without worrying too much about balance or interference (got to worry about basic story logic, like not killing in one storyline a character you need for another).

What went wrong

Time

Since October 2016 (initially expected release date) I’ve learnt three things: I’m not a fast programmer, I’m not a fast writer, and I’m an optimistic planner.

Learning your basic tools with a big game is a mistake. For more than a year I’ve been suffering because of design mistakes and limits made very early in the process. If you make one small game after another, you can refine your system. But if you have already scripted a ton of text, you can’t upgrade your system with the new features that you later realized you need.

In my case, that was the time and event systems: they are very limiting, they demand spaghetti code and are very difficult to debug. But upgrading them to something both easier and more powerful would have take me months to script again half the game. So I suffered with a sub-par system.

When you don’t know much, write small games.

Tech

I’m not a developer. I kinda know the basic concepts, so Twine with Harlowe was perfect for me. But I never fail to make things harder than I can manage.

The first implementation was ridiculous. The second was OK: it did what I needed and I could write without doing a sanity roll each 5 minutes. But as I started adding content, the game started getting slow. “Slow” as in “10 seconds to pass a turn on mobile”. It turns out that Harlowe is not that great to manage a lot of big objects.

So I had to port the game to Snowman, that is, Javascript. I’m not a developer and I don’t speak Javascript. A language I don’t speak. Not a developer. All in all, I had to take two months out of writing the thing to remake it in JS, with lots of basic-level help from people in the Twine forum. Twine forum, I love you.

The code is very poor. It has no functions. It doesn’t spit debugging info into the console. It’s copypasted to infinity. I still can’t believe that it works, but somehow it does.

Complex to play

Reviewers have mentioned how easy it is to get lost, to forget where you are supposed to go, and to miss things you wanted to do. Missing some things is part of the design, but I knew from the beginning that managing the map would be the worst problem for the players. But having stories in different places at the same time and moving between them in a real fashion, without jumps or shortcuts, was the essential idea. So the only thing I could do was to make navigation as intuitive as possible, thus the compass and the reminders.

It didn’t seem to be enough. I’ve tried to ease this a bit in the post-comp release, but I’d love to have a breakthrough idea that transforms it totally, because more than anything else, this is the factor that limits the appeal of the game for new players, specially those outside the traditional IF niche. Suggestions welcome.

Language

This, in fact, turned out better than expected. English is my second language and I thought the game would be error-ridden, but few people have complained of frequent errors.

What next?

The post-comp version is already up at itch.io.

I’ve rebuilt 90% of the engine with new, needed features, and cutting-edge JS stuff like functions! And console debug!!

I announce my new project: THE GOOD PEOPLE, a short climate horror drama about drought, drowned villages and rural monsters. It’s way smaller and simpler than The Master of the Land and I hope to release it in a few months.

A request…

I have no way of knowing what stories people are finding in the game. I’d be grateful if players would share. What ending did you get? Did you find the aunt? Did you try to save the fisherman? Did you dance during the dinner?

Thanks for reading!

1 Like

Good write-up. On the point about puzzles/challenge: in having so many plot threads and limited time, what to prioritise doing becomes a challenging and dynamic puzzle in itself.

Thanks Joey!