Just started with The Weight of a Soul, which might take me a while to complete. But I love the beginning; this seems competent and interesting!
Same here. I’m standing over a convulsing goblin bleeding out of his eyes and I’m examining myself, looking in my purse and jumping.
I’ll restart tomorrow…
The Weight of a Soul, by Chin Kee Yong
Back in 2009 I wrote an article in SPAG where hailed Jimmy Maher’s The King of Shreds and Patches as a perfect example of the “second ideal”, which I described as follows:
The second ideal that has emerged in the interactive fiction community is that of the continually engaging, linear or quasi-linear narrative interspersed with well-integrated puzzles. [W]hat is of paramount importance is that the story keeps going, that the flow is not interrupted. Playing interactive fiction is like reading a book, and reading a successful work is like reading a page turner.
Chin Kee Yong’s The Weight of a Soul perfectly fits this tradition. Indeed, with its list of goals, beautiful map, horror elements, and long playtime, it reminded me of The King of Shreds and Patches in more ways than one. (Which is not to say that it is a derivative work: the game’s story and themes are all its own.)
Most importantly, The Weight of a Soul is very very good. It really is a page-turner, gripping us with strong world building, excellent prose, great pacing, and a mystery to reveal. I also loved the fact that a game in which you play a doctor’s assistant makes the Hippocratic Oath the key element of its thematic development.
If there’s a weakness, I would say it is in the character of Justinian, whose evil plan is so insane that I don’t really how it works as an exploration of the Hippocratic theme. The love between him and the protagonist also didn’t feel real to me, even though it is a crucial element of the story.
But this is 5-star experience and no doubt a highlight of 2021 interactive fiction. (It also deserves a more detailed write-up than I can give it here!)
I read that article about a year ago and I thought it was very good. I hadn’t yet realized it was yours. So, thanks for a good article.
King of Shreds and Patches was what I thought too when trying to compare The Weight of a Soul to another game. The polish, the player guidance, the emphasis on letting the player/reader in on the mystery bit by bit. The interactivity here is less in looking under the bed or fiddling with a magic device and more in the player thinking together with the PC, becoming complicit in her actions.
I like this style of IF. (It’s certainly a welcome change in brain-exercise after Finding Martin)
I’ll share my thoughts soon, I’m almost done.
Thank you for the kind words and pertinent feedback!
Regarding your criticism (spoilers):
Justinian was an incredibly difficult character to write. He’s meant to be a direct foil of Marid, a look at the kind of person she could become if she made peace with death and left behind her uncertainty. It looks as though I didn’t quite nail that. I’ll have to go back and take another look at his characterization and relationship with the protagonist.
Copper Canyon, by Tony Pisculli
Copper Canyon is a Western story written in ink. You take on the role of a boy on the edge of manhood whose father is killed in a mining accident. In fact, the entire town seems on the verge of economic collapse because of the accident. And to make matters worse, a gang of bullies have decided to take over and make life miserable for the survivors. So it’s up to you and your gang of teenage friends to set things aright. After a series of pranks, murders, ghosts and gold nuggets, things become right again.
It’s a fine story, although I found it tonally a bit inconsistent. The protagonist insists on not using deadly violence, which fits well in a particular type of YA story; but deadly violence has already been used and will be used again very soon, blatantly, and against people who certainly do not deserve it. The narrator is interested in events far more than in personalities, brings in a quick succession of names, then makes the most crucial and formative scene happen when the protagonist is alone; but then wraps everything up by telling us about the beautiful friendships that have been formed. Nothing terrible, but I sometimes felt that the author didn’t quite know what kind of story they were trying to tell.
My more major complaint is about the approach to interaction. There’s not much of it; we’re reading big chunks of text, and most of the time these end up giving us a “Continue” message. There’s an element of taste involved, of course, but in general I find that choice-based narrative works better with more frequent interaction. And the choices that we do have seem rather random in the sense that they certainly don’t appear at all the major choice points for the protagonist! Indeed, many of the most important choices are made without our input, including the entire plan to save the town and the way to escape in the execution scene. This feels inconsistent; it is hard to discern a logic in the author’s decisions about when to offer us a choice. Finally, when we do get a choice, these often immediately reveal themselves to be irrelevant, making no difference – which isn’t a big deal in general, but becomes a bigger deal when choices are so sparse. So while playing Copper Canyon was not quite like reading a non-interactive story, it found it came dangerously close to being so.
I don’t want to end on a negative note, so let me also say what I liked most about the game: the completely unexpected, yet unexpectedly poignant, ghost scene. It surprised me, but it worked. In fact, I think I would have liked to hear a little bit more about my relation to my father earlier on in the game, just to make the pay-off of this scene even higher!
Theatre of Spud, by D E Haynes
No spoiler tag, because I failed at the first challenge – getting it to run. But why is this challenge here in the first place? I’m willing to jump through some hoops to play IF; I’ve been known to install ZX Spectrum emulators, or to run BASIC in order to play ancient BASIC games. But why on Earth would anyone enter raw python code into the 2021 Spring Thing? Surely the author could have done us the service of providing at least a Linux and a Windows executable to go along with that?
I followed the instructions, installed the python3-venv package, and then end up with this:
victor@victor-ubuntu:~$ python3 -m venv ~/catchphrase-app victor@victor-ubuntu:~$ ~catchphrase-app/bin/pip install -U pip wheel bash: ~catchphrase-app/bin/pip: No such file or directory
I suspect that the virtual environment never starts, but since there’s no message, I can’t be sure. (Also, I have no idea what it would look like if it did successfully run.)
Hi Victor, it looks like you’re missing a slash in the path to the
That is a valid question. And it promises such a rich seam of discussion that I created a new topic for it Why on earth Python…
Ok, still talking about Theatre of Spud, I’ve gotten to the ‘run’ part of the README… but now I’m again running into a wall.
victor@victor-ubuntu:~/Documents/Spring Thing 2021/Theatre of Spud$ ~/catchphrase-app/bin/python -m tos.main Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/victor/Documents/Spring Thing 2021/Theatre of Spud/tos/main.py", line 27, in <module> from tos.story import Story File "/home/victor/Documents/Spring Thing 2021/Theatre of Spud/tos/story.py", line 121 def build(self, pkg=None, bookmark=None, /, **kwargs): ^ SyntaxError: invalid syntax
And the other suggested method:
victor@victor-ubuntu:~/Documents/Spring Thing 2021/Theatre of Spud$ ~/catchphrase-app/bin/python -m tos.app Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/victor/Documents/Spring Thing 2021/Theatre of Spud/tos/app.py", line 23, in <module> import importlib.resources ModuleNotFoundError: No module named 'importlib.resources'
That is due to your version of Python. Version 3.9 is recommended.
Installed 3.9 with Apt using this method. Still no luck.
victor@victor-ubuntu:~/Documents/Spring Thing 2021/Theatre of Spud$ python3.9 -m venv ~/catchphrase-app Error: Command '['/home/victor/catchphrase-app/bin/python3.9', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Hi Victor, sorry this is causing you a delay.
The instructions in the readme have been tested and should work:
If you previously created a venv with Python 3.6, you will need to remove it before following those steps again:
rm -rf ~/catchphrase-app
Okay, I also had to install a package python3.9-venv. But now I think I’m in the game.
Mood: this had better be good.
I tried this on macOS (with Python 3.9.2 from Homebrew) and the installation went fine, but running in Terminal crashes after entering my name:
Enter your character's first name: Petter Traceback (most recent call last): File "/usr/local/Cellarfirstname.lastname@example.org/3.9.2_4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/Cellaremail@example.com/3.9.2_4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/administrator/Downloads/TheatreOfSpud/tos/main.py", line 94, in <module> run() File "/Users/administrator/Downloads/TheatreOfSpud/tos/main.py", line 89, in run rv = main(args) File "/Users/administrator/Downloads/TheatreOfSpud/tos/main.py", line 54, in main presenter = story.represent(lines) File "/Users/administrator/Downloads/TheatreOfSpud/tos/story.py", line 152, in represent presenter = Presenter.build_presenter( File "/Users/administrator/catchphrase-app/lib/python3.9/site-packages/turberfield/catchphrase/presenter.py", line 43, in build_presenter rv = Presenter.build_from_text(text, index=n, ensemble=ensemble, strict=strict, roles=roles, path=p) File "/Users/administrator/catchphrase-app/lib/python3.9/site-packages/turberfield/catchphrase/presenter.py", line 51, in build_from_text script = SceneScript(path, doc=SceneScript.read(text)) File "/Users/administrator/catchphrase-app/lib/python3.9/site-packages/turberfield/dialogue/model.py", line 439, in read parser.parse(text, doc) File "/Users/administrator/catchphrase-app/lib/python3.9/site-packages/docutils/parsers/rst/__init__.py", line 196, in parse if len(line) > self.document.settings.line_length_limit: AttributeError: 'Namespace' object has no attribute 'line_length_limit'
Running the local server version in Safari gives
500 Internal Server Error Server got itself in trouble
after entering my name on the first page.
I got the other Python game in the competition, Space Diner, to run fine by the way.
That happened to me too, Petter. I thought I was in, but as soon as I enter a name, I get the same series of errors that you get.
I will fire up a Linux box this afternoon and see if I can find out what the problem is.
Edit: It’s likely to be an issue with a dependency package, docutils. This is frequently shared by other OS components and might be a special version on MacOS.
The problem is that docutils 0.17 added some new settings (namely,
line_length_limit) that your code (or one of the libraries you’re using) is not setting up properly. It can be worked around by amending the
install_requires directive in
setup.py as follows:
install_requires=[ "aiohttp>=3.7.3", "turberfield-catchphrase>=0.18.0", "docutils<0.17" ]
Thanks @ArdiMaster . Does this mean you have the game running now?
I do! Looks interesting so far.