Min’atoa Station Post Mortem
Min’atoa Station, my 6-month capstone project for my Game Development course at Yoobee Colleges, in which I fall down a rabbit hole, drown in a pool of tears and learn to make magic. Or, less poetically, scope too big, lose and remake multiple assets multiple times, and launch a game that falls well short of my goal - yet shows a glimpse of a potentially amazing experience.
My aim was a linear 3D narrative game - think Gone Home in a Myst type setting with a terrorist theme.. I reckon I got halfway, so there’s only 90% left to go.
Tutors urged us to push our boundaries, and in my Goodest Boi team I stretched my wings into new areas and thrived. In other teams (whether real or not) I’d felt held back by low expectations. My mantra was ‘play big’. I love to learn, and that means embracing looking stupid, stumbling before you can walk. I chose a solo project, so I’d be propelled to shine, and I was pleased I did. The gasps of surprise from the class even at my prototype were validating. A teacher once said more learners rust out than burn out - having a tutor that believed in me created its own empowerment magic.
A new game, designed for addictive game-play loops, replayability, marketing hooks, commercial
Min’atoa - unknown market, unproven gameplay, not replayable, huge scope, high risk.
The gamedev mantra “kill your darlings” echoed in my head. I brainstormed great alternatives that I loved. And yet, YOLO, carpe diem. I left a ‘safe’ life doing what I was told for this. The window was open - now or never. I’d never “finish” Min’atoa left to my own devices. It needed a structure for existence - the force-field of deadlines, accountability, of expert help. I knew it was too big, so I ‘maimed’ my darling - reduce scope, use existing assets, basic textures, no puzzles - just a story game. That seemed do-able (cue evil laughter). So I talked myself into ‘story-only-Min’atoa.’ Call me crazy, but I don’t regret it.
I got overwhelmed.comparing narrative tools: Inkle, Twine, Yarnspinner, Ren’Py, Ink. Prairie, Fungus, Novel-software, Scrivener. My author friend Peter cut through my angst by wryly observing that Shakespeare used a quill pen. For my Myst-type story - linear, non-branching, no dialogue - Google docs was fine!
Although I had a plot, I couldn’t start. Tutor Matt P got me to put story beats in linear time order, then rearrange them into the order the story needed. Write short ‘memory joggers’ of each plot movement onto Post-It notes. This simple process broke the writer’s block.
Later, I found myself blocked again, and dedicated an entire week turning these brief notes into strings of story.
Player autonomy is a key feature of game design. In game writing, each story elements has to stand on its own in whatever order players come across them, and the plot still has to make sense. So story games build artificial ‘gates’ to order key story elements (eg in locked rooms), to achieve greater dramatic tension and plot cohesion,
I fit the plot into the game’s natural gates: portal, balcony, room, and controller balcony, and Arrivals (and later,,Departures) desk drawers; Doors opened with buttons, and crystal docks.. I felt clever making drawer locks, and hiding keys and crystals. The gates were not infallible, but ‘good enough’ in playtesting.
The downside was, the story game became a puzzle game. It changed how players played, from a slow pace that encouraged reading, to active, testing interactable objects to see what they did. In retrospect, i wish I’d deliberately designed for the slower game feel of Gone Home, where players interact with passive objects whose function was to add atmosphere.
There were 25 notices and 21 letters, each with two gameObjects - players click on a 3D object in the scene, to bring up UI with its matching 2D readable. This meant 92 assets whose materials change when I edit their words. A simple workflow was essential.
Playtesters noted the 25 notices were easily legible; that removed 25 UI assets.
For the 21 letters, I felt clever about my idea of stationery. I made stationery (paper, design and font) for each character (Tris, S’tiel, Priestess and Council). Each in-game letter automatically populated its UI stationery with a text string. Instead of 21 UI assets, I only needed four.
I was smug about this at first - I’d polish text; and the UI automatically updated. But for beta, for the first time I had to have textures on all 46 3D documents. It was an awful workflow. I’d play through, click on each letter or notice, bring up UI stationery with its unique string, snip it, create 46 materials from the snips, and tile these to fit each gameObject.
It was so tedious to change materials, it created a mental barrier to improving the text, even if it was way too long, or made me cringe. I deleted eight noticeboard posters that were too embarrassing. I left “Lorem Ipsum” text on most letters. I wish I’d fixed these. I did find ways to automate this process, but events overtook (see refactoring section) so I didn’t get time to code this.
The more words, the more difficult and expensive is localisation, reducing the potential market, if I were doing it again, I would aim to
reduce word count dramatically, and use more images
have illegible 3D textures (see for example Zelda, Breath of the Wild) or develop an alien text / symbols
retain the process of populating 2D UI assets with strings, so that it would be easy to populate strings in different languages.
Prioritise Your Intuition
Sam Fleury, Runaway Play gave an NZGDC talk on prioritising your intuition to reduce burnout and improve personal effectiveness. He noted that our tendency to try to ‘push through’ a wall was often driven by feeling unworthy. It often led to bad code (or other work) that had to be redone.
When I noticed my brain clearly saw the chains of logic, I coded quickly and cleanly When my ‘programming mind’ lost it’s edge, went ‘fuzzy’, if I continued to push I wrote bad code, and felt burnt out. I found it took an active decision to resist the ‘imposter syndrome’ urge to push on. I’d step back, take a rest, or pivot to a task that used another part of the brain (art or story).
I took note of sunshine, various foods, coffee and rest affected my focus and set up the right environment. Dancing barefoot on the grass is great therapy.
More often than not, when I came back I’d see a bigger picture, and pivot to a different priority, or to a fresh, cleaner approach. I’d never pivot when I was nose to the grindstone.
I heartily recommend this practice. It was vital for a solo dev on a big scope game. Pacing myself was not costly, I wrote better code in less time with less stress. And it might seem obvious, but burnt out, tired devs don’t make games that are fun, intriguing, and delightful,
I wanted assets that left the option open to allow commercial use. This hugely limited choice for the game’s many imported assets: ~20 sound effects, music, five fonts, five paper textures and plugins, .
I recommend designing a good filing system for attributions. I did record them as I went, but not in one place. Finding them months later cost time I’d rather spend on my game.
Brian and I made most of the images and icons from scratch. But right at the end I realised an image used fan art I’d made for #Myst25 from Riven, a game by Cyan Worlds, Commercial use violated their very generous terms for fan art.
I wrote to Cyan, saying I’d remove it, but it’d be a lovely Easter egg for Myst fans. Hannah Gamiel, Director of Development, Cyan Inc immediately wrote back to give permission to use it, which was typical of the lovely Cyan approach to their fans.
We’d planned for Brian being away for 3 months OE, but didn’t factor in a month to reinstate his melted server and hospital with pneumonia. Since Yoobee had only Unity 2018, I’d coded the prototype, Sabotage, from scratch in 3 weeks.
Once Yoobee got Unity 2019, I reverted to Min’atoa with Brian’s code, which was robust and elegantly effective, But since we were both new to Unity it used unusual approaches - event signals, listeners via parented assets, and master controllers with enums. After painfully watching me struggle, my tutor Woody spelt out the stark choice: strip out Brian’s code and he’d help me rebuild it, or struggle on alone.
I chose to strip it out. I really wanted to step up at coding, and Woody was brilliant at it. Although Min’atoa would not be finished to the level I wanted in other areas, I could do the writing and art later.
Deleting two years of scripts left 416 fatal errors; removing ‘missing scripts’ from assets took hours. It would be an enormous task to rebuild. I brutally trimmed my asset list of Brian’s features (a fully functional inventory, and putting items down). and features I’d planned (writing, art, animations, codes and puzzles).
Then I got intensive tutoring from Woody. I learned:
keep it simple - add complexity only as required
use prefabs - get one asset completely right, then 20 others work
get the essentials (story gates) working - doors, drawers, lifts and locks. ..
Within a month, most of the functions worked again. My crowning achievement was replacing Brian’s inventory with a scroll-selectable list that appears on hover (over a lock that takes multiple items) and shows what carried items fit in.
I was also pleased to get different endings working (including one that pivots the whole scene). I’ll never know what Min’atoa would be if I’d made the other decision, but I do know I would not have learned as much as I did.
The biggest code drawback was no inventory for the 21 letters,they’re just lost . The player can’t refer back to any letter they’d collected. Woody had shown me how to do it, but I spent the remaining time fixing bugs I had, and improving art and gameplay. This is such a major drawback that if I get time, I’d like to issue a patch for it, and I (think) I now know enough to do it. .
I launched a game that I have mixed feelings about. On one hand, I have another game in my public itch.io portfolio. Overall, for pretty much a solo game made in a limited time, it showcases my capabilities and adds to my credibility as a game developer.
On the other hand, I wish it were more fun, that the story was better, the puzzles more difficult, the game design was more complete. The main failing with the game was the story. I have so much to learn and I plan to fully engage with expert writing mentors next year to learn to
create empathy and connection with the main characters
reveal through what’s not said, rather than tell
reduce word count (strict 140 character limit per item)
use environmental storytelling.
Given the need to limit scope, I only included very basic puzzles, that were not at the level of complexity or engagement of good competitors, like Aporia or Eastshade. Brian and I had designed more complex puzzles, but specifically removed those for scope reasons. If I were to do it again, I would prioritise adding to the puzzle component in simple ways such as:
embed hidden clues, codes and hints
add images, sketches and drawings .
Not having clues to choose different endings is a major omission. For much of the development, I placed puzzle items to make life easy for me, rather than for the player’s satisfaction, The player finds them in obvious places, one after the other repetitively, instead of having to use deductive reasoning.
I would put more time into thinking about how to make it fun for the player to discover hidden items, work out lore-logical places for them, and hint at their location rather than make it so obvious.
There are definitely things I want to improve in Min’atoa Station, but for now, the game is out ‘as is’.
Next time I’d invest time early to “find the fun”. Find the fun in the story, puzzles, and gameplay from the player’s perspective as early as possible and build from a solid base of a proven enjoyable gameplay experience.
At the end, my measure is not even the game. but instead what I have learned. I'm a person with new skills. Looking back my progress seems humbling and miraculous. In 2017, I first clumsily opened Photoshop, my first ever digital tool. In 2019, I made Min’atoa Station, a credible 3D game. Without diminishing Brian’s enormous contribution, or that of my tutors, it was ‘my game’. I designed the world, characters, story, gameplay, modeled and textured 3D assets, 2D assets, the menus, animations, lighting, audio, did the voice acting, used many plugins and more..I ended up coding everything, I listened and learnt, I asked for help and got lots, I struggled and fought and.. Lo.
As I reflect on the end of my time at Yoobee, my journey as a game developer has been, and I hope will continue to be, intense and exhilarating. To me, it’s been an incredible privilege to learn to make worlds from my imagination come to life.