The Morning After Update


It's the morning after Colins, and the important questions are: where are you? and what happened?

 The Morning After update sets out to answer both of these questions, as well as pose many more! You can also now lead our Civil Servant protagonist through the entirety of Section 1 subsection B of the Corridor. Old friends  are making a reappearance, and new ones to be made – or perhaps be avoided.

The other thing, as well as a major tidy-up of typos, is a brand-spanking new UI. The game has never looked so good. Here is a full rundown of the update.

 Bugs Fixed:

  •  Zara, the waitress, was not appearing though her text was
  • Searching for Angus, the architect, could cause a crash
  • Colonel Stirling was missing his eyebrows

Major Changes:

  • 4 Pieces of music, including 'Caper Time' by Quinoa Jones.
  • 5 New Locations
  •  7 New Characters
  •  16 New Items
  • 42 New Images
  • 140 new lines of Dialogue
  •  Added Quiz Selecta™ technology: Following the roaring success of BinSelecta™ in the last update, the game now features a random selection of questions you are unlikely to know the answers to
  • Added Esperanto by Stealth™: por helpi vin lerni esperanton!
  • Major tidy-up of typos
  • Brand spanking new UI

Minor Changes:

  • Introduced some new typos
  • Tiara Tilly 'Foxies' blurb restored to its original ( no idea how it came abbreviated)
  • Shorter loading times, Audio and Image files have been optimized.
  •  Updated past scenes to reflect the Ego watch selection from the last update – Ongoing.
  • You can now dance to Selena Ricci's 'Bounce, Bounce, Bounce' at Colin's – and if you are wondering who Selena Ricci is, don't worry, you are not alone.

Style:

In the last update, I mentioned switching to first-person past tense. I've been going through and updating previous scenes as part of the big typo clean-up. Now, I'm focusing on the overall style and presentation, bearing in mind this is a game, not a novel - the limitations of Ink, and writing for small screens.

I'm no Kazuo Ishiguro, let's be honest, and I doubt I have even touched Dan Brown levels. But I've been heavily influenced by Ishiguro’s novels and the clean, concise way he handles dialogue, action, and narrative beats. I want to aim for that kind of crisp, uncluttered storytelling style, or at least take a stab at it.

This is just the start, and a learning curve, but I hope at least – even if a tiny bit – some of that Kazuo influence rubs off and elevates the style in the future – we shall see where it takes me.

AI:

I wanted to talk briefly about AI. I have been playing around a bit, purely out of curiosity, and because the whole debate around it, and in part the ethics side, reminds me of the debate around the launching of the BBC in the 1920s (yes, that's how I roll). I would also like to apologize, as I got a bit carried away and am guilty of over-relying on AI in the last update.

In hindsight, in part due to not having a clear vision of the narrative style and tenses at the time, which led me to seek shortcuts, but also in my defence, the editor Inky in which this game is written has no spelling correction function.

I tend to use Grammarly, but I'm not a fan of the UI, which I find horribly intrusive. I noticed I could chuck my sections into GPT and ask it to check grammar – I thought it was doing a good job, but on second glance, some of the randomness in there, as well as the Americanisms, are painful. I noticed, too, that it would offer suggestions for dialogue, and I started playing around, and this is where I got carried away. Looking back on those sections (these were mainly the encounters that take place in Colin's), after a break between updates, I am really not happy – it is not my voice, nor the voice I want to tell the story in.

 I have ‘quick-fixed’ for now but intend to rewrite them fully over the course of the next few updates. I have, however, found AI to be helpful in certain aspects. I have found Claude to be an excellent continuity checker (ChatGPT was rubbish – kept making up random things) and I was impressed when I showed Claude the code for BinSelecta and asked it to come up with similar code for QuizSelecta – which it did perfectly, and even came up with the Tiara Tilly Question in the game. This meant I was able to very quickly implement the whole code – which was a massive time saver. So, there is a use case, but not so much on the creative side. But perhaps the biggest argument against using AI creatively, for me, it’s just isn’t fun.

Next update:

The following update will be 'On the Buses' and in some senses, this will be a smallish to midsize update. However, what follows next is huge (size doubling territory as it looks like, from sketching it out it needs around 150 images). I prefer doing updates around the 30 – 40 images (10,000 words) size, like this update, so what I want to do is use the ‘On the Busses update’ to get ahead and lay down the groundwork, so I am not drowning later on. Hopefully, in the process, I will find some logical points to break it up into smaller chunks to release. Regardless, this means the next major update is going to take some time – months, not weeks. But there will be a couple of smaller updates in the meantime, mainly threading in more of the ego-watch consequences and tidying up those said scenes.

Technical:

The Waitress and the Angus bug were down to nothing more than semantics – poor organization on my part. Inky is good, and 'lacking' is the wrong word, as its focus is on writing, but there are a few 'coding' things missing. What I have found, and seems to work, is putting a wrap around my scenes, with the start of the scene featuring a block called Control – where I can handle any branching, any functions, logic checks, etc. before diving in. And at the end another block called Divert, and most importantly for my game, this is where updating states take place along with a rule that a Divert should always lead to a Control and nothing else. And this solution seems to work and is making testing easier. I need to start going through all my files and updating the structure to this effect.

On the subject of the UI, I feel a bit bad picking on the Ink default web wrapper, partly as its free, and partly as it’s an ‘extra’ to the excellent software underneath. But cripes! Was it doing my head in. There is an issue, out of the box, where images push down options off the screen. A few fixes have been given for this, including pre-loading the images, and playing around with the scroll settings – I tried them all, but it seemed to be generating even more issues. So I decided to see what else was out there, and I came across Atrament-Preact-UI,( https://github.com/technix/atrament-preact-ui)  which is open-source and developed by Technix. And it is brilliant, plus Technix has been great in answering my questions.   

I’ve put together some notes here (mainly from my chat with Technix) so they are all in one place, and in case they might be helpful for anyone else considering using it. I should note, this is correct as of the time of writing and may not be relevant after future updates.

The first thing you need to install is npm (node package manager) which you can find at

https://docs.npmjs.com/downloading-and-installing-node-js-and-npm

You then need to follow the instructions on the GitHub page, to install the Atrament-preact-ui, via the command line, and then follow the ‘Building your Own’ game instructions on the GitHub page – which is just a case of copying over your .ink files, audio and images to the src/asset/game folder.

To run the game locally, it is then a case of typing “npm start” in the terminal, and “npm run build” to create a version to upload to itch – running this creates a folder within the root, called build which you can then just zip and proceed as normal.

Now this might be a very well a Mac thing,  but I did have some initial issues with compiling via the terminal. This was solved by taking the following steps.

  1.  Download standalone inklecate: https://github.com/inkle/ink/releases/download/v1.1.1/inklecate_mac.zip
  2. Create a tools folder in the root folder of a project.
  3. Unzip inklecate_mac.zip content to the tools folder.
  4. Open the folder in the terminal  and run ‘chmod 755 inklecate’ to make it executable.
  5. Replace the lines within  ink-compile.js, with the following:
const  { spawn } = require('node:child\_process');
const cfg = require('./atrament.config.json');
const inputFile = `src/${cfg.game.path}/${cfg.game.source}`;
const outputFile = `src/${cfg.game.path}/${cfg.game.script}`;

I also did some basic customisation. I included an about screen. To do this, I copied the example from Atrament Coiled Crown example, https://github.com/technix/the-coiled-crown. Which can be found in the  src/routes folder, and updated the home.js and app.js locally in the routes folder to point to the about page. I did have to play around with the top part of the code in about.js - in the end I think I just copied was in home.js ) to get it to work.

I also added new fonts and a new theme. For the theme (omstrad in by example), it is just a case of updating the src/theme.js with the new css.

For adding the font; it was a case of:

  1.   Adding a new folder in src/style/
  2.  Copying over the index.css from src/style/opendyslex font into the new folder and updating with the new font name.
  3.  Updating src/theme.js, with a new line under export const fonts with the new font.
  4.  Updating src/index.js with the new font name under //fonts

As at the time of this release, Technix has just informed me that there are new options for managing sound, which have just rolled out , including the ability to stop individual tracks, which I look forward to playing around with for the next update.

I can highly recommend Atrament, even just for the ability to compile from the command prompt without having to export the JSON file, and if the above sounds complicated to non-programmers (or expired programmers like myself) then it really isn’t once you get into it. Just make sure to back everything up first.

Files

build.zip Play in browser
May 26, 2024

Leave a comment

Log in with itch.io to leave a comment.