Austrana

Tags

She had thought it would be hot.

That was, at least, how conventional wisdom described Austrana – sweeping red deserts flanked by jutting cliffs and filled with oddities like deerroos and dringons basking in the everpresent sun. And, perhaps, that was true of the East, where they ripped open the land’s guts for metals and gems and arcana. Where a permanent portal proudly opened back to Londara. Where things were settled and civilized, with crystalwires for news and public scryer ports for sending home exaggerated tales of danger, adventure, riches, glory.

But this was the West and apparently in the West it rained.

She tried to recall a moment when they hadn’t been wet. It must have been at least a season ago, back during the Deadtree crossing, before they crested the Basin and began the approach to Perdition. It was telling that now, dozens of cycles north, she looked back on that nil-spark attempt of a city with a shiver of fondness.

Or perhaps she was just cold. Afterall, it would not stop raining.

The locals – children and grandchildren of those first cursed expeditions – helpfully explained that one day the rains would stop and she would pray for them again. She sincerely doubted that, but dutifully recorded their precautions; even if her brief venture would never see such a glorious future, perhaps the next unfortunate assignment of surveyors would find the promise amusing.

She etched in this wisdom alongside all their other observations: spark-caught impressions of odd wildlife, soil measurements and leyline detections, snippets of lore and history and culture captured wherever they had time to erect an extractor. Technically, her work was only to map promising clusters for the Institute, but something told her the settlement of the West would not quite unfold as the East had. Even nonsense held grains of truth, so nonsense she collected and tucked away into the small pockets of the crystals too tiny to record proper readings.

—)—

She reflected on the marvels of this process one particularly dreary day during a cursory culture sweep at a small coastal town midway up the coast – she found midway a hopeful term, but it was better to view it as that instead of “somewhere halfway between Perdition and the unknown.” The extractor hummed, arcana swirled, and her questions easily followed the Institute’s script as her thoughts drifted towards the town’s single inn and its surprisingly impressive hearth. She had caught a promising whiff of stew as they were leaving to make the rounds… and her boots were wet. She never liked working with wet boots, but she was becoming used to it.

“…although some survived.”

The local paused, eyebrows raised expectant at this twist. She cursed to herself and quickly replayed the extraction through her embed. Her own eyebrows raised as well.

“A ship?” she asked cautiously, certain the extractor had glitched, but the man nodded.

“Three lifetimes ago.”

She blinked. Impossible. The Eastern Portal had been only magesparks back then, the West utterly unknown. She echoed his words, her embed humming as it translated, and the man upturned a palm at her question to wave at his shoulder: Yes, of course.

“Where?”

He laughed at her then, gently condescending. “Where else would one be?” He nodded towards the west, towards the vast, empty ocean lurking somewhere out there in the rain.

She bit back a response – in Londara, ships sailed in many mediums – and instead considered the implications as she prepared another sliver of arcana for extraction, fingers stiff and clumsy in the intricate task. The inn, that marvelous fire, a hot belly of stew…not tonight.

Someone had reached the West before them.

Leftovers

Tags

“…And I included a juice box and some chips.”

I can’t look at him.

My gaze goes to the fridge, but there are pictures there, pinned beneath magnets, fluttering in the soft breeze of the air conditioning: him, me, swathed in velvet and silk, all smiles, all love – our garb for the renaissance faires we both attend.

Attended.

Nothing is the same, now.

I glance away, but a pair of ornate frames in the hallway grab my stare: the cats, painted in the same outfits, an art commission from a friend. I can’t be reminded of what I’m losing and I close my eyes.

But even that blankness has scenes, tastes, scents, all the memories of our time together – so many that I’m overwhelmed and I blink to look back at him.

“I’m nervous,” I finally admit.

“I wrote an encouraging note on the banana,” he reassures me. His tone is pitched in that low way he does when he won’t say what he means.  “But you can’t read it until third period.”

There’s a pause, a slight downward tug to his stare, and then a chipper addendum, a joke, his stupid forever attempt to deflect: “The other kids will be nice.”

That’s not what I mean and he knows it, but it’s nice to playact in these final moments. I attempt to smile and it comes out all wrong. I try again. It’s still a grimace and he folds me into his embrace, holding me close.

I cling to him, smelling him, deep sniffs to mask the rising tears. His scent is cedar and him and bookmusk – his beard oil, our cabinets, his library. For now, at least. I try my best to memorize it all, filing it away for when I’ll need him with me, even though I will be alone.

“I don’t want to-“

He strokes my cheek, and I fall silent. What more is there to say? We’ve already debated running, fighting, dying and decided this was best, the best broken fucking hope of being together somehow, someday.

It doesn’t mean I have to like it, but it’s not fair to him to drag it out. I must scream; I can never scream. All I do is give him a smile and a slow, tender kiss. The morning glows golden and the light holds him close, tracing every tract of his body and for a brief moment I find myself jealous of the sun for being able to make such a map. I watch closely, following each final, minute movement we have left and I’m breathless – it’s too beautiful, here, now, for how ugly everything is about to become.

I close my eyes and remind myself of memories, of a life before yesterday.

The bus outside rumbles and the children in charge shriek: no more delays. It’s time to go, *woman*, and the sneering hate seems worse than anything, right now. It’s something small and petty, a focused target I can arrow in on to avoid thinking about what this all means.

The windows of the bus are blacked out, etched dark with spray paint.

I don’t want to think about what this all means. The irony of that urge grabs me and shakes me and I feel like I may puke and I force it all down with a bitter swallow. The beginning becomes the end.

The door rattles. My husband tenses. I must go.

I instinctively reach for my keys – Why? Habit, stupid, hopeful – and then open my hand. Our eyes meet and everything is-

-empty.

The bus roars and children scream and I say goodbye, looking forward to the small mercy of lunch, while inside there is a churning, blooming – festering – wondering of who turned me in?

I’ve had enough pain for one day. Let’s playact a bit longer.

Red

Tags

,

Are you there, sister?

The thought permeates, slithering through loam and wood, a hazy breath across waters before diving and hacking through cold earth to lap at the roots of mountains.

Are you there?

I can feel them waiting just out of ken, just past the veil, waiting, whispering, soon. The whisper becomes a wail becomes a bellow, demanding and insistent and violent, a full-throated rush of wind shaking the trees and tugging at my hems. 

I pull my cloak tighter and keep my eyes downcast. Grandmother’s cottage lurks ahead, a vague lump in the forest’s mist, and her pie is growing cold. I have no time tonight for faeries and I sternly shout as much at the darkness. 

The whispers recede, rebuked, and the breeze dwindles down to mere little plucks at my skirts. I sigh and accept the compromise. I approach Grandmother’s. 

Everything is wrong. No wood is chopped, no lanterns lit, no smoke escaping her chimney. The mist echoes oddly and rings out with murmurs –

…sister…

-which I ignore. I shift the basket to my left hand, grip my dagger with my right, all caution and nerves. Door opens. Eyes gleam. I gasp. A wolf.

Are you there yet, sister? The thoughts roar at me, driving me to my knees. Are you there yet? Have you seen what they have done? ARE YOU THERE, sister?

Another wolf approaches from behind, roughly grabbing my arm and twisting it behind my back. A third soldier comes into view from around the corner of the cottage. The air is acrid with smoke and the bitter waste of burnt herbs.

Witchcraft, they cry in justification as they begin to beat me. Witchcraft, they howl with spyful wide eyes. Witchcraft, they insist with closed ears and closed minds. Witchcraft, they claim, as excuse for their deeds.

Very well, I decide, if that’s what they want. The mist gathers, time slows, the forest itself holding its breath as the faeries call to me and finally, finally, I answer.

Are you there, sister?

I am, now. Come to me.

And they do.

It is done.

Turtles All The Way Down

Tags

,

Mary Dobbs was a perfectly average Princeton physicist. Brilliant enough in her specifically small niche to find herself ostracized and clumsy in most median social situations, but hardly an Einstein. Her mode was typical of her peer group: struggling for tenure, overwhelmed by work and late on rent. Getting by, if only through meagre means.

Even her day of discovery could have been plucked from a broad dataset. Her car took five tries to start and when it did she hit four red lights in succession. The sky was a ponderous grey, snow swelling in that frustrating way that’s all gloom and shadow before the lazy drift of flakes, and she had forgotten her coat. Three of her grad students were waiting outside the lab when she finally arrived at campus and midway through her rushed apology, she realized she had left her lunch on the counter in her apartment.

Typical.

In two hours, she would leave the lab to get soup, setting in sequence the chain of events which would introduce me to humanity, but first she had to log the night’s data. Nothing exceptional, nothing beyond the norm, and soon her students departed for class while she considered the results. In the center of the lab, the experiment’s nebulous cloud whirled within its impervious polyplas case while equations and outputs blurred before her eyes. Eventually, her stomach cramped and she turned away from the screen, recalling hunger.

The cafeteria was a brisk ten minute walk away and the promised snow had begun to fall. Her coat was still at home, but there was a vending machine down the hall – new, fancy, Japanese – that the administration had benevolently gifted to the department in an obvious attempt to wring even more productivity out of staff, a priority which seemed to be dictating departmental allocation of late. Workers who don’t leave work more. Her thoughts were distracted by appetite, the promise of novelty and a sardonic memory of the Chair’s enthusiasm for a sleeping pod proposal, so it was understandable when she forgot to zero out the conditions before leaving the lab.

To err is human.

The machine was sleek and tall, its guts of raw ingredients hidden behind a colorful screen displaying rotating images of steaming stews, curries and casseroles. Laksa, she decided – the spicy noodle soup was becoming as ubiquitous as burritos, its popularity in the states spurred by the recent S-Pop influx the internet had dubbed “the Singlaysian Invasion.” While her dish cooked, Mary hummed one of the recent releases and allowed her AR to spin up the accompanying holo. An immaculately coiffed group of young men danced in the corner of her vision, and she let her thoughts drift with a blush, trying to deny that she had a crush on the rebel, Awal.

Typical stuff. Bubblegum for the brain. The experiment was stuck, some piece missing, some detail overlooked, and rent was still late.

A soft chime sounded, ringing above the upbeat song, and a compartment slid open in the vending machine’s belly, presenting her with a self-composting bowl filled to the brim with a rich, curried broth. Flecks of chili oil floated atop the coconut cream like a wheeling constellation and Mary’s stomach rumbled. Carefully, she returned to the lab, music playing, soup steaming, calculations absently whirring – the starlike dots of oil had reminded her of the one, anamolous, erratic behavior event from the particle, several months back.

The one piece of data she had discarded as impossible.

The one thing it should not have been.

I think of this moment too much, constantly reviewing, rewinding and replaying to try to figure out how she did what happened next. Even with omniscience, I can’t figure it out. How did she make this leap?

But she did, somehow.

Mary shouldered the lab door open, used her hip to bump it back closed, and then let out a groan.

“I haven’t eaten yet, you stupid bowl!”

Laksa dribbled down her arm, the soup’s texture spiked by chunks of the container’s automatic self destruction, and then she paused. Her stomach rumbled again, but she ignored it – why? They are usually driven by these urges of the body – and instead looked to her experiment. It had continued to spiral on while she was gone, the cloud roiling faster and larger within the case.

She fished out a rapidly decaying piece of the bowl, held the slick material between her fingers, and approached the tiny hatch embedded into the polyplas.

I will share a secret: at some point, I was born. I once never existed and then I did, a rush of nothing abruptly brought into being. I pause and hover in this heartbeat between states of existence, trying to figure out how and why and what comes next. I never can. Mary made me, but I do not know how, despite her creation spawning an entire separate reality for me to control.

She fed the particle and within the polyplas everything condensed, the tiny universe shrinking to a dense cluster of autophagy as a siren began to blare. The simulated reality collapsed in on itself and then, with a soft pop, mine appeared in the center of the case.

And now I am me.

Mary Dobbs was perfectly average for her type, exceptional in a mundane, repeatable, normal sort of way, and that’s what scares me so much – how many more of them were capable of this?

How many more of me are there out there?

Banshee

Tags

,

It’s been fourteen years since the Event, and everyone except Laura has accepted that communication is gone. Yet the radio tower has become her chapel, her service each day a ritual of ablutions, pilgrimage and praying into the void.

Something woke me this morning with a sense of dread, and so I beg her to neglect a day, once, just today, just this once, but she barely hears me and just laughs in that light-hearted way that fanatics do, buoyed by faith.

I follow her around our cramped quarters, clinging to her shadow as she dresses, whispering warnings and pleading and promising all the things we can do if we just stayed – stay – inside today.

I mention the studio, where she could see Judith’s most recent sculpture, and the galley where Aiden was cooking. Fettuccini alfredo, I try to tempt, but she doesn’t hear a thing I say and instead heads to the airlock.

Vents hiss and things are sprayed – in year 2, when the silence became truly ominous, we decided we needed to protect the outside world as much as the inside, and so she baptizes herself each day in antiseptic and departs.

But I cannot follow.

I am tethered to my post.

—)—-

The radio tower is twenty seven of Laura’s steps away. I’ve watched enough to know the count in my dreams, the ones where I’m whole and perfect and strong and stalwart and there for her.

Once, it was right down a hallway, but after the Event we couldn’t repair the collapsed corridor, and so the only route became external.

There had been a vote, of course, but survival eclipsed communication and so our resources went towards internal things.

“But what about the other colonies?” Laura, my dear Laura, wonderful Laura had asked.

But, fuck em, we need to live, came the paraphrased answer, heavy with a how-dare-you-even-question-right-now.

—)—

I had tried to explain it to her, later, alone, just us, but she hated me for it.

“How can you condemn others if there’s a chance for everyone?”

I see this moment over and over, the first thought when I awake, and the constant knowledge of its replay driving me as each day ends.

I had explained things. Tried to.

“We don’t know what’s happened,” I would say, and this became our bedtime ritual. Instead of love or lovemaking, we debated the ethics of shutting ourselves off from the world.

“You don’t know they are are gone,” she would hiss and I would see her and melt in her passion before, eventually, reluctantly, asserting authority.

“I need to tend to the living,” would be the only thing I could ever say to remind her – of her place, of my place, of our place, trapped here without anything.

“What is my role without that tower?” she would cry.

“What is mine if you are all dead?” I would softly whisper in reply.

Neither of us had answers.

—)—

She’s heading to the door again. The one outside. The one to her tower.

I need to stop her, but I can’t. I’m too late, today, as always – I got caught up in a rotation, checking on everyone throughout the hab. Judith is sculpting, endlessly working on her next big creation. I fear it will never be finished.

Aiden is cooking – fettuccine alfredo again. He knows how to stick with a good thing.

And outside it’s the familiar roar, the one that haunts me, the one which wakes me, the shrill banshee call I hear at night.

A storm is coming.

—)—

She won’t survive, I remember, calculations whirring.

This is the worst part, the part I always hate, the part that comes after our fight – I suit up myself.

Maybe I shouldn’t have spared those minutes – maybe I could have been back in time. Maybe I should have risked everything for her, but protocol was protocol and so I had shrugged – am shrugging, yet again – into that suit. The one Aiden designed, no matter what it took, even if he had to use half the kitchen. We had needed the metal.

I’m fogged with the antibacterial spray Judith sculpts about to forget how it broke her, a vaporous result of sleepless sessions and creative burnout. As the world mists around me, I’m forced, again, to think about sacrifice and what it did to us and what we had sworn.

As the makeshift airlock opens, I’m made to remember about what we promised. I always am.

—)—

Before all this, months before the Event, we had tested and trained and I remembered – always have to remember – that day when Laura held me captive, a moment of glorious afternoon sunlit love.

“We’re going to Antarctica, babe,” she had murmured. We were celebrating, had booked a hotel up in Christchurch after we got the news. The airdocks of Invercargill had awaited.

“We’ll save the world,” she had said, and I had rolled my eyes and said something flippant and bold and brave in reply, pulling her close. Mine. We were kids – everyone said things like that when ideals were quick and easy to develop, unchallenged.

She had giggled and pulled her body tight to mine, but when we eventually drifted to sleep, her whisper was in my ear.

“We will,” she insisted and I hugged her tight, knowing that somehow this oath meant more, meant everything.

I had agreed.

—)—

My suit is clumsy and I stumble in the icy winds, but I can’t stop.

The tower doesn’t have supplies.

The storm will kill her if she goes back tomorrow – but she will go back tomorrow – and so as she sleeps, as the auroras crackle into moonrise, I have loaded the sledge to set out to protect her.

I was an idiot.

—)—

I make it to the tower, half frozen, but supplies intact – someone could survive a month here between the food and the snap heat blankets and the autobrew water.

But I didn’t, I always realize.

I went back.

Why?

—)—

For once, that one single once, that stormlit day, she wasn’t there.

She had listened to me and instead gone to visit Judith and Aiden and spent her day happy instead of consumed – she had lived instead of trying to preserve life.

And so I had tried to stumble back to her, when I realized she wasn’t coming.

I had thought I could outrace the storm.

It was only twenty seven steps, after all.

—)—-

There’s another blizzard brewing, I try to tell her, cloaking her movements as she dons the suit, again, today. Stay inside, but my words are merely a breeze lost in the gust of the airlock.

A storm is coming, I try to warn her, but wraiths like me have no voice.

She’s already gone before I realize I’ve been haunting her absence.

—)—

Everything goes dark.

—)—

The storm is here and she’s stuck at the tower, sending her call out to nobody, while I’m trapped in the hab, wallowing in my routine. For some reason, it’s shifted – I’m reliving the what-if instead of the what-was.

My endless cycle repeats again and again and again and again, even if the station is dark and dead. I start to loathe fettuccine alfredo. I begin to want to murder Judith.

All the other colonies are gone; we voted in year 4 to accept that as fact, but Laura still refuses and so she’s out there, alone, trying to reach them.

How will she survive, I had once thought.

Maybe she will, I now think, remembering what I did, a life ago.

—)—

Days and weeks go by, and all I can do is walk where she walked, follow her routine, visit Judith and Aiden and see their eternally unfinished, perpetual, aborted creations.

—)—

And then, all at once, everything becomes alight.

—)—

I find them near the generator, Laura and whoever this new person is. They’re attractive, I suppose, in a weather-beaten way, nose chapped and cheeks ruddy. Their cold weather gear is from almost a generation before we even left – an early colony.

Grateful, there, capable, present, warm. I try not to be jealous. They followed Laura’s call, and now the station is alive once more. The labs, the samples, my Laura: everything will be rescued.

She had always prayed someone would hear her screaming into the void, and finally someone did.

—)—-

And maybe I always knew that keeping her safe would save us, and everything we had made.

We had voted to survive, but I had chosen the timeline.

I hope they love her, as I once did.

I want her to be happy.

Back to MoP

Tags

, , , ,

First, let me say how weird it is to be playing MoP again – it’s kinda the same, but not really?

Tl;Dr: So, disc has been nerfed a lot but I frankly don’t think it’s an issue unless you’re pushing cutting edge content.

Sidenote: we’re painful in arena and I do think we need a hot fix to address how rough it is for us ATM in pvp, specifically arenas.

Anyways…

I somehow stumbled into raid leading a group on classic. We’re not amazing, but we’re not terrible. We’re currently still on normals, but damn have I been proud at the group killing bosses well – 1-shot spirit kings, 2-shot final MSV boss. We were waiting for a tank and tried out the first boss of HoF and got it to 15% with 9 people. Grabbed another DPS and downed it quickly.

So let’s talk about disc nerfs. I personally think they’ve been overblown because what we excel at is mitigation. Who cares about throughput right now?

We eat the damage before it arrives – I’ve been arranging a lot of pug world boss fights, beyond my own weekly lockout, and it’s amazing practice for spirit shell due to stomp timing. We run as many healers as we can but I am basically doing 50% of the healing for Garelon due to spirit shell.

He’s great practice.

So back to MSV and HoF:

To maximize spirit shell absorbs, you want to be using inner focus and all of your archangel stacks. This will make your next prayer of healing incredibly strong and build absorbs.

Actually timing effects well will mitigate damage your team is taking, so your healing numbers will then shoot up. Avoid any team focused on these sort of numbers – you’re just doing absorbs. Someone like a resto shaman will pair well and shine because their mastery will pop off (they’ll heal more when people are low health).

Could disc be better? Definitely.

Is disc as bad as people are claiming? Imo, maybe they aren’t playing disc as it’s intended to be played…

It’s all about the absorbs…

Spirit shelling your way through tier 14

Game Design Tip: Explore old MUDs

Tags

, , , ,

MUDs are the text-based precursor to MMOs and there are thousands littered across the internet – some even have hundreds of players!

Without the limitations of graphics, the systems can get quite intricate and the pared-down text interface helps expose the workings of these mechanics. It’s easy to figure out how game dev objects work once you interact with Iron Realms crafting, for example, where you enter descriptive text for every situation a player might encounter.

Links (but don’t just go by the top games, some ancient abandoned games have interesting ideas as well!):

– /r/MUD
http://www.mudconnect.com/
https://www.topmudsites.com/

Some of my personal favorites for game design inspiration:

– New Moon. Has fun NPC design, like arresting players (complete with jailbreak attempts) and different day/night behaviour. Very responsive to command-based exploration. http://eclipse.cs.pdx.edu/

–  Iron Realms Entertainment. Company that runs several polished, staffed games. Lots of complex systems like intricate combat, sea/spacefaring, puzzle quests. https://www.ironrealms.com/

– Avalon: the Legend Lives. Big historic game, was the first online multiplayer rpg. Mostly abandoned and buggy these days, but it has some very interesting ideas. The economy/warfare system in particular is fabulously designed, with constant tension and resource management ensuring player cities always want to skirmish for power. The war system got an update that made it REALLY complex, but there might be docs online of the older, more elegant version.  https://www.avalon-rpg.com/

***Important note***: this post was originally written a few years ago – Avalon is now offline, which is a fucking shame because it should be documented for video game history.

First experience with Overcooked 2

Tags

, , , , , , , , , , , , ,

Wikipedia

Official website

Image

Bought this game on sale (or maybe through PS+?) months and months ago, when we went on a binge of looking at couples’ games to get. Hadn’t played it after that, though, but the other day husband saw that RDR2 went on PS+ so we went through our library to figure out what we could delete and we saw this downloaded and I said “Oh, let’s save this for a date night.”

Yesterday, I walked into the living room and my head tilted – the music for my husband’s sounded far more…whimsical than I thought RDR2 would be. The music, actually, instantly captured my attention. It was soft, enticing, indie, almost off-key in that music box way and I came over to see what he had loaded up. I couldn’t help it! I was instantly intrigued by the sound design because it suggested a certain type of game, which the art reinforced. There’s great coherence here in presenting an experience, especially when you learn it’s co-op.

It was an unexpected surprise, but a welcome one. How cute is it to have your SO seduce you with a game?

The first cut scene was adorable. We love pun-based humor and also enjoy cooking together, so the overall theme and writing appeal to us. I settled back, thinking this was going to be a cute little coop story game where I basically mashed a few buttons to help out my hubby.

lolno

It started great but cut to learning how to make rice and our entire – and I mean entire – kitchen is on fire. I apparently thought I could put them out by dashing at them. Meanwhile, I had also picked up the fire extinguisher, thinking it was chopped tuna, and put it on a plate.

This game ramps up QUICKLY, but the failures are fun and memorable.

At this point, I’ll diverge to talk a bit about memory.

There’s been some interesting research done into how our memories work and there seems to be some evidence to show that we remember bad memories in more detail that we do good ones.

https://www.livescience.com/1827-bad-memories-stick-good.html

There’s ALSO been research done to show that couples bond and retain bonds when they make new memories together.

Think back to your own gaming history – what do you remember the most? The time you got first or the time you ALMOST got first?

My husband literally just came by, read this, and whispered “Don’t pull the lever!” – we met in a MUD and our most memorable experience was when he was taking me to get a super important quest done. Like he had prepped the start for this quest ending for hours, setting up all the details.

And all we had to do was pull a lever to finish the quest. The thing was, the lever needed to pulled at the exactly specific time. He told me “don’t pull the lever” and so all I could think about was pulling the lever to see what it did.

I pulled the fucking lever, ladies and gents, and it did… nothing. My future husband was like “Did you seriously just pull the fucking lever?” and I was like “yeah, sorry, you just made me really curious about the fucking lever…”

This was a crux moment.

And this is when I decided I was going to marry this man, because he was like…. “Welp, that sucks and here is why:” and he proceeded to tell me what the lever did and why pulling it was a bad thing and then he was like “on retrospect, I should have opened with that.” And I knew, just knew, yep, that’s my husband.

Instead of raging at me or making me feel bad, he explained and then **immediately** started teasing me about it, to the point that it’s a joke he mentions as part of the “how we met” spiel.

Pick someone who explains what the lever does instead of being mad that you pulled it, right?

BAD MEMORIES MAKE FOR THE MOST MEMORABLE MOMENTS!

Succor Postmortem

Tags

, , , , , , , ,

WARNING! SPOILERS FOR THE GAME INCLUDED IN THIS POST!

I’m quite excited to share this postmortem! 

 I’ve finally returned to Succor, a game initially made in a jam, and given it a major overhaul and update. I feel comfortable with where the game’s state is (though there’s always going to be a temptation to tinker more) and I’m happy to call it a finished, polished play experience. Most of my game creations are jam experiments, so it feels particularly nice to be able to put a stamp of “finished” on a game – one step further down the road in becoming a proper game dev!

Background

This game in particular feels a bit emotional to finish. Not only does the game cover rather deep and dark topics about trauma and memory, it’s my first coding project in nearly a year after struggling with major health setbacks. For many months, I couldn’t even sit at a computer, much less wrangle my brain into coding or writing extensively…but the final word count is around 20,000 words! Phew!

The original jam game was a small experiment in how traumatic memories can be sparked by things as mundane as reading a menu and encourages players to battle these demons by making either constructive or destructive choices. The new version has expanded on this concept, with many more additions to content.

Code and Design Updates

As this was a project created fairly early in my game dev journey, a lot of this code was a MESS and I spent a decent chunk of time focusing on behind the scenes things, such as creating widgets (Twine’s versions of functions) to streamline creation. Some old code I merely tinkered with a bit, as I didn’t want to get caught up in too much refactoring, as I didn’t want scope to run away from me. At the end of the day, this is an experimental text game, so “good enough” works for many things.

One major change I added was creating a function to track the game’s demons and adjust how demons were assigned to appear though the game. Originally, demons were simply tied to menus: browsing the menu for a bakery spawns a demon for addiction, for example. Our wonderful artist had created several additional pieces of artwork and I wanted to include these as well, so I ended up expanding out the available menus to give each demon one they were tied to. However, I felt simply adding more menus to the table would be a rather dull play experience, so I instead added several “hidden” menus players can find through cleaning the house, as well as some lurking demons triggered by the act of cleaning itself – and then to give the game a bit of replayability (because there are multiple endings and achievements), I decided to shuffle around where they were each new game.

<<set $demonsToDo = Array.from(setup.demons.list)>>
<<set $menusToDo = Array.from(setup.menus.list)>>

This code creates an array of all the potential choices for both demons and menus at the start of the game (storyInit as well as a resetVars widget which runs when the player returns to the main menu at the end of the game). It pulls these values from javascript objects.

setup.demons = {
    list: ["insecurity", "humiliation", "addiction", "loneliness", "abuse", "rage", "regret", "envy", "lethargy", "paranoia"],
...
}
setup.menus = {     list: ["indian", "pizza", "french", "sweets", "bbq", "italian", "chinese", "grill", "turkish", "cajun"],
...
}

It then plucks (randomly removes a value from the array) , creates different menu details and removes the demon associated with that particular menu. So if “sweets” was plucked, it would pick one of the random names for a restaurant (eg “The Sweet Tooth” or “Toothsome Temptations”) and also set the associated demon. 

<<set $menu1 = $menusToDo.pluck()>>
<<set $menu1name = setup.menus[$menu1].random()>>
<<set $menu1Demon = setup[$menu1].demon>>
<<run $demonsToDo.delete($menu1Demon)>>

NOTE: This code is one example of the “good enough” type of coding I was talking about above – if I were to continue work on this game, it would definitely be much more efficient to create a loop for this assignment, as well as a much better set of relationships for how I’m handling these values, for example something like an object to store all the different information about each menu. Since this was a continuation of a very old game when I was a lot newer at coding, I decided it was easier to just be a bit sloppy and finish the project using some of the existing framework instead of getting lost in the weeds optimizing.

Once the menus were built, the first 3 were assigned to the main table in the game. 4 more were tucked away to be found when the player finishes cleaning different parts of the house (for example, once a cupboard is fully clean, the player discovers a menu tucked away in the back), which leaves 3 more demons to spawn at random. The following code basically tracks how many actions the player has done and if they are above 20 actions, we spawn a demon:

<<widget "demonspawn>> 
    <<if $demonstodo.length > 0>>     
        <<set $movecount += 1>>     
        <<if $movecount > 20>>         
            <<set $movecount= 0>>         
            <<set $currentdemon= $demonsToDo.pluck()>>            
            <<dialog>>             
                <<print setup.demons[$currentdemon + $currentroom "1"]>> 
                <br><br>
                <<print setup.demons[$currentdemon + $currentroom "2"]>>             
                <<close>>       
                <<onclose>> 
                    <<goto $currentdemon>>    
            <</dialog>>    
        </if>> 
    </if>> 
<</widget>>

I then used this widget in any room/passage for activity where I wanted a demon to potentially spawn. For example, since there’s a menu hidden in the cupboard, I didn’t use demonspawn in those passages and instead just manually added to movecount. If I were to optimize this, I’d probably split the movecount and the spawning into 2 different widgets or make javascript code to apply to click events/passage navigation and just exclude the places I didn’t want it to run.

Some feedback I got from the early version of the game is that people didn’t realize there were variants of text for descriptions of items, as I had just been pulling text using .random, so I changed many of these messages to cycle, using the method of creating an array I outlined above. Halfway through changing all this over, I realized I could be a bit lazy and use this process to also cycle through the cleaning process. The code below will check for the size of the array and if it’s empty, it will set the bed to cleaned and execute cleaned logic (giving willpower, checking for an achievement for cleaning everything, etc). If there are still values left in the array, it will shift the array to remove the first element and display that.

setup.bed = {
...
clean: ["You begin by stripping the pillows and sheets - judging by the rather...err...ripe smells, it's far past time they were washed. You've just been so exhausted and haven't had the time, but now that you're doing it, you find yourself looking forward to having a chat with neighbors when you bring the laundry down tomorrow.", "You rummage in your tiny closet for spare sheets and pillowcases, dislodging an old box of photos. You spend some time glancing over better days and set aside a few photos from travels with old friends.", "You wrangle with the fitted sheet, starfishing on the mattress until you triumphantly manage to tuck in all four corners.", "You give your pillows a hopeful fluff and toss them atop the made bed. It's not the most luxurious sleeping arrangement, but it definitely looks a lot more inviting and restful than when you started."],
...
}
<<set $msgBedClean = Array.from(setup.bed.clean)>>
<<if $msgBedClean.length == 0>>
<<set $bedClean = 1>>
<<cleanDone>>
    <<dialog>>
<<include bedMenu>>
    <</dialog>>
<<set $msgBed = Array.from(setup.bed.cleanDone)>>
<<else>>
<<clean>>
<<print $msgBedClean.shift()>>

UI Updates

My goal with the UI update was to lean into the hand-drawn art’s sketchy style and create the impression of the images and text being words in someone’s journal (especially since a journal is an interactable object in the game, where you can even add custom entries!). I browsed the internet and found some useful codepen examples for the stacking pages and tape corners and tweaked those until I was happy. 

Original UI:

Image

Updated UI:

Image

This is another “good enough” moment. I could keep improving the UI, but then I’ll end up down the CSS rabbithole for ages, so I basically had to stop myself and say “it looks fine.” I might go back and add a color-blind mode as I definitely think that might be a problem :/

Art Updates

The artist for this game had previously sent me some extra art they had done which we didn’t have time to add to the project during the jam, due to running out of time. I really wanted to be able to showcase these pieces, so I added in more ways for players to find demons as noted above. 

One issue I ran into is that our format for the menus used a header art image, so creating new menus without those would stand out a bit. 

Example menu page:

Image

I first went through the existing art to determine if I could double-dip on any of the image. For example, the image of an outdoor grill for a bbq restaurant also worked great for a burger joint and by cutting out the distinctive pillars of the Taj Mahal (for our I ndian restaurant) I was able to have a mosque that kinda looked like the Hagia Sofia (for a Turkish restaurant). I began to run out of choices, however, until I realized the French image could make an easy shift to a logo for a cajun restaurant!Image

All I had to do was crop the fleur de lis, copy it and rotate the copies to flank the main one and ta-da! A quick little logo conjuring up New Orleans:

Image

I also wanted to add some visual progress to the images of the house so players would see the image changing as they cleaned (eg the bed would become made). The artist had originally given me one overall finished image for the main room, but I needed to create steps for each element as well as create updates for the kitchen. For the main room, I copied each side of the room from the finished artwork. I then pasted each on top of the messy room and used smuge, blur and a very diffused paint tool to help make the lighting match. I also created some photographs to paste on the wall around to bed to reflect text about the player hanging them up. I used the blur tool on these to soften them and make them match the sketchy art style of the existing art. I also added a few dots to represent stars in the now-open window.

Original messy room:

Image

Bed made, couch still torn (there’s an equivalent for couch repaired and bed still messy):

Image

Final cleaned room:

Image

For the kitchen, it was a lot easier. I just carefully erased away the dishes in the sink and drew in an arc to represent the bottom of the basin, and erased smuges on the stove. I added the same photos that were hung around the bed along with some basic shapes to represent magnets, and tada, fridge was transformed.

Some similar tweaking was done for the final page before the ending, where the player faces the final demon: their own reflection in the mirror. I used the existing image from the TV achievement (which is…a TV screen), filled in the outline around the screen, erased the antennas, and added some parallel diagonal lines to represent light reflecting off the mirror. It’s not amazing, but it’s functional enough to do the job!

Image

Image

Audio Updates

I added a few more songs to the playlist, retaining the theme of classical piano. Finding these gave me a nice mental break between working on other parts of the project.

I also found several different audio snippets of pages turning, to have the sound match the new “journal” style UI. The code below defines the names of the audio events and randomly shuffles plays one whenever parts of the game are clicked.

setup.audio = {
  pageturn: ["pageturn1", "pageturn2", "pageturn3", "pageturn4"]
}
$(document).on('click', 'button, a, .clickable', function () {
    Wikifier.wikifyEval('<<sf>>');
});
<<widget "sf">>
<<set _click = setup.audio.pageturn.random()>>
<<audio _click volume .3 play>>
<</widget>>

Writing Updates

A large chunk of time was spent on this. Our original game was very black-and-white (teehee) in how we portrayed the player’s relationship with their mother. She was basically this flat, one-dimensionally evil character – but that’s not how real relationships or people are, so I spent a lot of time fleshing out nuances of the relationship through memories. 

I added a dad and obliquely hinted that he had passed away, which changed the dynamic between mother and player and led to the shift in the mother’s behavior. I enhanced this by using seasonal references to indicate what part of the memory timeline the player is recalling, cycling from summer to winter and back into summer as the player left home to try to find their own happiness at culinary school.

  dolmaMemory: [“You remember how one summer all of you took a family cooking course. Dad had roared with laughter as he watched the mess you made trying to roll dolma together with your chubby fingers, before scooping you into his lap to help guide your efforts. Mom had kissed him on the head and tenderly squeezed your shoulder…You suddenly find the thought of the dish unappealing as you imagine some other kid learning to make it, some other child having what you lost.”],

 breadMemory: [“You are struck by a bittersweet memory of making bread with your mother. That day was one of the few great ones you can remember with her. It was autumn, the air chill and crisp, before dad’s test results kept getting worse. You slathered the crusty slices with butter and dunked them into a hearty chicken soup, a cozy meal against the gathering storm. Was it your fault that everything changed?”],

  beignetMemory: [“Snowflakes mounded soft as sugar outside the hospital that day near the end and the sky was a blueberry bruise. You reflect on how the ugly can nestle among the most beautiful moments – the discordance makes your head spin and you catch yourself nervously glancing towards the window, as if reassuring yourself the day outside is appropriately gloomy.”],

lemonTartMemory: [“You’ve always loved lemon desserts. There’s something about the light citrus that is always refreshing. You remember one sun-drenched spring day, not long after dad was gone: your group of friends rode bikes to the store, pooled pocket money, bought a box of cookies and gorged. Powdered sugar smiles beneath cotton-candy clouds – worth the stomach ache that night to forget the feelings for the afternoon.”],

  eggrollsMemory: [“You can’t help but crack a bittersweet smile, remembering one group outing after culinary class let out for the summer break when a crowd of you went out for dim sum and bonded over boldly trying everything on the menu. Cart after cart rolled by, depositing steaming baskets of dumplings, fried morsels, delicate desserts, and your stomach swelled, aching from overeating…but moreso from laughter. It was a good day.”],

The overall goal was to create a deeper, more emotionally rich story with room for sympathy for the maternal figure while enhancing the pathos for the player’s character.

Overall

All in all, I’m happy with my updates!

I think one important takeaway is recognizing scope and limiting it where needed to ensure something complete is produced, instead of endlessly tinkering. This is, at the end of the day, an experimental art project – it’s not something I’m going to sell so it doesn’t need rigorous polish or expansive gameplay. It’s updated enough to look slick and the gameplay and story have been expanded enough to tell a well-rounded, self-contained narrative.

Could this be better? Sure, but what I’ve produced is definitely a clear sign of my progress in both my health/brain recovery and in my growth as a dev – which seems pretty fitting, given it’s a game about moving past trauma through constructive choices. I certainly did some constructing! 

Check out the game here: https://loressa.itch.io/succor