Voyage of the Marigold Author's Notes

, in Computing, Interactive, Science Fiction

It has been over a year since I released Voyage of the Marigold, my similar-but-completely-legally-distinct homage to old-school Star Trek - high time for a retrospective post mortem.

This post will contain spoilers, so I suggest you play Voyage of the Marigold at least once if you haven't already.

Ribbons
Everyone gets audience award ribbons in the Spring Thing but these are mine, damn it.
I was overjoyed with the reception that the game received in the Spring Thing 2024 festival. VotM did not trouble the best in show competition but received some very flattering reviews both in the competition forum and on the IFDB page. Even better, it was nominated in several categories in the 2024 Best of the Year polls, where again it didn't come close to actually winning but it gave me no end of pleasure to be noticed.

VotM started life as one of those one-page solo RPGs that were popular for about a week during the pandemic. The original plan was to navigate around a 6x6 grid with random encounters. As I started designing the encounters I realized that it work better as a computer game.

VotM is written in a combination of ink and javascript. ink is a idiosyncratic language but one that allows you to just sit down and write without worrying too much about coding. Although ink is very capable with some advanced data structures I found it much easier to do the really complex stuff in javascript and link it in.

Speaking of which...

The Map

Taking inspiration from games like Slay the Spire and FTL, I wanted to provide the feeling of exploration in a cool maze that would be satisfying to wander through but not impossible to solve with limited information. I implemented Eller's Maze Algorithm (adapted from Tom Cantwells web page on the subject) which made mazes that were a little too hard. I spent a few evenings tweaking the algorithm until I had something I thought was difficult but fair.

I had planned on a 6-by-6 maze for the original one-page design but figured I would never be able to write 36 encounters in any reasonable time so scaled things back to 5-by-5. In a truly random 5-sided maze it is quite common for the fastest solution to be just a series of east and north moves leading to the exit in only 9 hops. This is boring so VotM calculates the shortest path and regenerates the maze if such a path exists.

I am not a total monster. I also regenerate the maze if the shortest path is too long. The goal is something a little twisty but not impossible.

More than one reviewer complained that it is possible to be forced to backtrack, which is not fun. I anticipated this problem and tried to fix it by having some encounters "break" the maze by providing additional routes between sectors. The algorithm tries to put these where they would be the most useful but the player can still get stuck.

One thing I am really happy with is the graphical navigation screen. It is a SVG image that is built up via javascript during gameplay - I think it adds to the sense of exploration to give the player an initially blank map to fill in.

The Setting

Obviously the world of VotM owes a lot of Star Trek but I have depth as a writer and am perfectly capable of stealing from multiple sources. The idea of a ancient vanished race leaving behind artifacts of great value and power is straight from Larry Niven's Known Space series. The ruined space station hiding a horrible secret is very Alien-esque. The paradise planet premise recalls any number of terrible scifi paperbacks I read as a kid.

And yes, the crew hiding a cat onboard is a direct reference to Red Dwarf.

I originally wrote a page of backstory with details of the Glexx conflict before deleting it. The worse sin a scifi story can commit is to explain too muchA common malaise known in the industry as Phantom Menacing. What happened in the various battles mentioned by the bridge staff? Who were the ancients? Who built the giant statue and why was it destroyed? Why do the Krook want cats? Why do the Glexx insist on using such ridiculous titles? And how are you supposed to pronounce that double x anyway?

Don't ask me, I just wrote the thing.

The Writing

I settled very early on the "Captain's Log" first-person past-tense style - my favorite conceit of classic Star Trek. I was also inspired by first person real-life narratives such as A Voyage to the South Sea with William Bligh or The Worst Journey in the World : Antarctic, 1910-1913 by Apsley Cherry-GarrardBoth books mentioned here are available from Project Gutenberg or similar sites and I highly recommend them..

I wanted the transcript of the game to read like an historical document published years after the events to the extent that one of my abandoned ideas was to let the player download an ebook of their adventure at the end of the game in case they wanted to relive their actions.

This style is slightly unusual for interactive fiction and one I found very hard to maintain. The difficulty is that the game has to present a series of choices that the protagonist made in the past, by rights the character should know the outcome of the choice by the time they record the log the player is reading.

I had two strategies for keeping up the illusion. All the normal choices are executive level decisions, commands that will be carried out over hours rather than seconds. In an episode of the TV show I am trying to emulate, the choice would close a scene and the viewer would have to wait for the ad break to see the results.

Sometimes more direct control is needed and for that I pushed the historical record idea to the limit and just dropped down into an actual recording of what the characters would say. This is very useful for combat and negotiation - two big features of Trek-like scifi.

It was very important to keep these two modes of writing completely distinct. The logs are a dispassionate retelling of recent events, the recordings are hectic and messy. I really like the contrast between the measured tone of the logs and the panicked orders during action. I feel it keeps such a text heavy game interesting.

I found that the recordings were a lot more fun to write, it was easier to inject character into the bridge officers in the way they react. Speaking of the bridge officers, it was a deliberate choice not to give them names or descriptions in the very matter-of-fact log. The idea here was the player can imagine them any way they chose to.

Speaking of the crew, I really enjoyed writing the gruesome deaths the occur under the player's command, so much so that I added the casualty list on the status screen to really drive home the impact of the player's orders.

Another rod I made for my own back in terms of writing was that it is possible (even likely) that the player will revisit sectors during a game. This means I needed to write each encounter twice, once for the first visit and once for the return. This actually worked out well in some cases - there are encounters where advantageous (the status pod) or "exciting" (the sector with the missing time) events happen on revisiting but in general these were a chore to write and (as mentioned in review) unrewarding to play.

Although it was a huge effort to adapt my natural writing style to the constraints I set myself I think the results were worth it.

Combat

Another big influence on VotM was the Fighting Fantasy gamebooks of the 80s. I guess it most closely resembles Starship Traveller, their attempt at a Trek-like adventure. Sadly that book is not very good, perhaps I was trying to redeem the idea. In any case, FF books feature dice-based combat and I knew I wanted something similar.

I played around with a bunch a mechanics before settling on a simplified system stolen from Slay the Spire. It is not obvious but combat is controlled by cards, with the choices available each round coming from a hand of 3 cards drawn from a larger deck. The enemy has their own deck.

This system is really easy to tune and new enemies can be quickly created by just creating a deck with different ratios of cards. Dice rolls provide more randomization modified by range. This provides a nice set of choices for the player and the appearance of a cunning enemy stalking you during combat.

The one thing I should have implemented was fleeing from combat if you manage to stay at long range. This was planned but I ran out of time. It would have made for some interesting choices but I would have had to write additional scenes for when the player decided to revisit a previous fled battle.

It was a pain to program but I think the combat system could be adapted for other games and I plan to revisit the mechanics in a later project.

Art

An example of the FF style of illustration from Deathtrap Dungeon
An example of an illustration from Deathtrap Dungeon - I was looking for a similar effect
One of the best things about the FF gamebooks was the art work - full page ink drawings of whatever horribly gory scene you had managed to wander into. I decided I needed something similar but here I hit roadblock A - I cannot draw. I had been looking for an excuse to learn 3D modeling with Blender, this seemed like a perfect reason to pick it up.

Here I hit roadblock B - I cannot really model things in 3D either.

So I resorted to the last refuge of the hack-fraud - extreme stylization. I already had a web component to dither images into black-and-white from an earlier project. All I needed to do was to make the images somewhat abstract, edit in some funky backgrounds and go nuts with the outlining. I am reasonably happy with the results and someone nominated it for best graphics so people seemed to like it.

In case you were wondering; yes, the aliens are all made out of fruit and vegetables. I have no defense.

Most of the images were created specifically to liven up my writing but in at least one case (the ruined space station), the image came first. This was a practice image of no particular scene that I liked so much I had to write an encounter to match.

Game Design and Balancing

My goal was to make VotM difficult but not impossible to win - not easy with randomly generated map. I wanted the average player to complete the game (or at least escape the nebula) on the second attempt.

I failed. Imagine my shock when players commented that it took them ten tries - I had no idea people would even play for that long!

The fundamental flaw is in the premise of the game. Your stated mission deserves all possible haste but exploration is much more satisfying in gameplay terms and necessary in most playthroughs. I recognized this issue early on but never came up with a good solution. In my defense one of my inspirations, FTL, has exactly the same problem.

The Encounters and Resources

Writing the encounters took agesIn case you were wondering, the total wordcount is somewhere north of twenty thousand, not including the javascript code.. Being a scifi game, I began by writing some puzzle-based problems where there is a "correct" solution that can be worked out from clues in the text. The sector with the black blobs that eat the ship is a good example - I tried very hard to subtly hint that the blobs needed heat and light to survive and moving the ship away from the stars was the correct response.

There is nothing wrong with these "space problems" - they are a staple of scifi but I quickly realized that they would be tedious after a while. Again taking a cue from trek, I knew that dilemmas would be more interesting. These effectively let the player trade one resource for another although the rewards and costs are not always obvious.

The obvious resources in VotM are:

There is a hidden resource, morale, that is not explicitly displayed but changes the text and choices available in many places. A few people took issue with the crew mutinying on such an important mission - I put it down to extreme stress.

One further resource appears nowhere in the text or code - player morality. I tried hard to include options for the player to behave in both upstanding or expedient ways. Can the player justify stealing resources from a dying planet because they are on an urgent mission? Nobody is going to blame them, right? The means justify the ends.

Some reviewers commented that they really enjoyed the optimistic Star Trek tone but I thought it important that the game doesn't particularly punish or reward a particular line of behavior. In fact, sometimes the "right" (most Treky) choice actually costs the player slightly. Virtue is its own reward, as my Grandma used to say.

These resources provided a nice framework for designing encounters and interesting choices - do you trade some time for fuel? It might depend on where you are on the map and how desperate you are.

Secrets

Readers making it this far into this document deserve some specific spoilers.