THE MYSTERY OF THE SANTA MARIA
RSS
← Devlog
v0.43.17–v0.44.2 · testing · accessibility · build · playtest · Linux

The hold was full

Four metal crates lined up against the bulkhead of an unlit hold, shot head on in the dark

On 5 August the Santa Maria was played from start to finish, doing everything. Not a spot check: every conversation to the end, every side route, the ending, and a transcript of what the game answered, line by line.

Eleven problems came out of it. Seven were real defects. Four of them, which looked unrelated at first, came from the same root, and that root is worth writing about, because it is the kind of mistake you can keep making for months without noticing.

A room that called itself empty

Some rooms in the game change their description depending on what has happened. That is the least you expect from an adventure game: if you have taken something away, the room should stop telling you it is there.

One of those descriptions was keyed to the wrong condition. Not a broken one. A perfectly good one that happens to record something else. It said the player had worked something out. It did not say the player had moved anything.

Those are two different facts, and English says them with almost the same words. One is about what a person knows. The other is about where things physically are on board. The first never implies the second, and once you confuse them the game starts stating falsehoods with total confidence. At worst it described a place as empty while everything was still in it, as in the picture above.

Three more problems on the list, which looked like something else entirely, had the same fault underneath. One out of four would have been an oversight. Four is a habit, and habits get fixed with a rule: before writing a variant now, there are three questions to answer. Who did it, what physically changed on board, and which of the two I am looking at.

Worth saying plainly: no tool catches a defect like this. The condition exists, the code compiles, the text reads well. It takes somebody walking into that room having done things in an order nobody thought to try. We have eleven automated checking tools and not one of them found any of these.

Something written that reached nobody

The biggest problem of the evening was not a wrong piece of text. It was a right one that never came out.

There is a conversation branch, written months ago, connected to the plot, with real work in it. The playthrough did everything there was to do and that branch never appeared once. The communicator’s priority chain kept it last, and two branches above it covered it with no gap left.

Nothing broke, and that is the point: no errors anywhere, the game ran fine. It is just that a part of it did not exist for the person playing, while it went on counting as done for the person writing. Of all the ways a piece of work can get lost, this is the one that stings most.

The same pass turned up a second of the same kind: two questions that ruled each other out without saying so, and whoever picked the wrong one first lost the other for good.

Then there is the terminal that transmitted. Looking things up on the onboard terminals reuses the dialogue engine, which is the right call, but it had also inherited the costume of long-range calls: a header with the name of whoever is speaking, and [END OF TRANSMISSION] at the bottom. You look things up on a terminal. You do not phone it.

The mode that took information away

The settings have a VERY HIGH CONTRAST mode, meant for people with low vision or colour blindness. In that mode the palette flattens to two colours, and the grey that marks an unavailable command turned white. The same white as the commands you can use.

On the game’s first screen, five commands out of six are disabled. The foot of the grid read 5/6 LOCKED and there was nothing on screen to say which. An accessibility mode that, once you switch it on, takes information away instead of adding it. It is the worst defect we could have had, because it sat in exactly the place built for people who cannot afford to guess.

Re-measuring the colour behind that grey showed the problem was wider than the report. It was below the readability threshold on all four themes, not only in that mode, and it was doing two jobs at once: marking something as disabled, and carrying text meant to be read. A colour doing two jobs does not get brightened. It gets split. There are two now, and each answers for one thing.

Three other things went the same way in that pass, staying in colour while everything else dropped to two, along with the inventory icons, which vanished completely in that mode.

The contrast ratios are measured now: 21:1 on text, 7.3:1 on locked commands.

Which brings up the one thing this build asks for in writing. Those numbers say the rule is met. They do not say whether the mode is any use to somebody actually using it, and that judgement cannot come from the person who wrote the code. If you know somebody with low vision or colour blindness willing to try it for three minutes and tell us whether it is enough, that is the biggest favour on the list. Including, and especially, if the answer is no.

Today’s build

Playtest 8 exists as of this morning, version v0.44.2. There are ninety-three versions between it and the last build in circulation.

The page you walk through at startup, the one listing what is new, was rebuilt from scratch rather than updated. Fixing it line by line would have left the structure standing, meaning sections chosen to describe an earlier build. At the root of it was a date typed by hand into a component, frozen since 30 July while the version number next to it climbed on its own. Now the build’s date of birth is worked out when the build is made, the way its expiry date already was.

On Linux there are four formats now. The new one is the .rpm for Fedora, asked for at playtest 7 by a tester we had to turn down at the time. It was not just produced: the same procedure that builds it installs it inside a clean Fedora and starts it, and only counts the check as done if the process is still alive eight seconds later. A package nobody has opened is not ready, and reading a file’s metadata is not opening it.

The green light that certified itself

One last thing, of the embarrassing kind.

The intro clips are not kept in the repository, because they are heavy. They get put back in place at build time from an archive held separately. That archive had not been touched since 22 July, and in the meantime the opening titles had changed in three places.

So anybody who played playtest 7 on Linux saw an old intro, with the title set in a typeface instead of the official logotype, and a name missing from the credits. On Windows it was correct. This morning’s Linux packages started out with the same fault and were stopped before they reached anybody.

The automated check reported green. It compared the clips inside the package with the ones present at build time, but the ones present were exactly what the stale archive had just put there: it was comparing an old artefact against itself. A check that cannot fail is worth nothing, and it is worse than no check at all, because it reassures you.

Today’s four Linux packages were rebuilt. This time the check was done by opening the package’s own internal archive and comparing all 19 video files one by one against the real ones. Nineteen out of nineteen.

How to ask

The game can be finished. A little over an hour if you know where to go, considerably longer if you don’t. Nobody shoots at you and you cannot die: if you get stuck, that is our fault rather than yours, and it is exactly what we want to hear about. Nearly all the voice acting is still missing. The only recorded voice is William’s over the intro, and we would like to know whether it comes through under the music.

If you want to try it and tell us where you got lost:

There is a build for Windows, as an installer or a portable version, and one for Linux in four formats: .deb, .rpm, AppImage and .tar.gz. Notes come with the package explaining what is missing and what is not worth reporting, so nobody spends time on things we already know about.

Two honest warnings. The game is in Italian only; a translation is coming but is not there yet. And the copy stops working on 13 August: it is a test build, not a demo, and after that date it opens on a screen saying so. If you need longer, the package gets rebuilt with a new date. Just ask.

What we need to know, in order: where you got stuck and for how long; whether six commands were enough; whether the intro voice comes through under the music; and whether you understood why a puzzle worked the way it did, or got there by trial and error. Those last two are different defects and are worth reporting separately.

Thanks to everyone who has already written in. Almost everything described above exists because somebody played the game and said what did not add up.