Improving soundStrider
Last weekend I overcame my fears and shared soundStrider with a large gaming community for the first time. The feedback I received was invaluable and led to several breakthroughs about managing expectations, game design, and my commitment to accessibility. The latest beta reflects this feedback. Continue reading for a post on continuous improvement, fears slayed, insights gained, and all the patch notes (of course).
An act of courage
With only a month until full release I’ve become increasingly aware that I’ve been developing soundStrider in a vacuum.
Before last weekend I had only sold a single copy for its early access, received a low response rate from the alpha keys I had sent out, and relied on a small network for playtesting and advice. At first it was simple to ignore because my primary focus was creative rather than mechanical. But transitioning to beta and preparing for release has brought this isolation into focus.
Sharing the game has always been an impossible task for me, like public speaking or basic self-care. For the past six months it’s been my primary motivator and form of expression that I’ve taken very professionally. But, as a first-time developer for a self-published game, the spectre of impostor syndrome is seductive and inexorable. What if it isn’t good enough? is a common refrain. So it’s been easier to push a devlog into the void than to reach out and connect.
For the past few months I’ve been following Tim Ruswick of Game Dev Underground. His daily videos on game development and finding motivation have helped me redefine success and understand that failure is derivative of fear. Without his inspiration I wouldn’t have gotten here.
Finding a community
Although soundStrider’s vision has been consistent, its target audience has always had somewhat of an identity crisis. Are they friends? psychonauts? musicians? therapists? or gamers with disabilities? To solve the issue of feedback I needed to reach the right folks; not too broad to drown in a cacophony of posts, but not too niche to be met with crickets.
To narrow my audience I strongly considered the keywords I associate with soundStrider. There weren’t many hits, but to my surprise there exists a large and active audio gaming forum! So I made an account and then, after a few weeks of gathering the courage, my first post.
What I learned from the folks at AudioGames.net was astounding. They are some of the most enthusiastic, insightful, and brutally honest gamers around. So imagine my fear in overdrive when the thread didn’t initially go as well as I hoped. But what matters is how I learned and acted in the face of fear.
Considering expectations
Managing expectations has been a recurring issue with how soundStrider is received. The biggest mistake of my post was not giving prospective players enough information about the game, its controls, or objectives. Some were attempting to run the game on unsupported hardware or browsers. Those who could play echoed sentiments of confusion and agitation when it defied their expectations.
Expectations broke down in three ways:
- The pitch.
I pitched soundStrider as an exploration game and relaxation tool with synthesized sounds but without further context.
I failed to explain that its environments are procedurally generated and not all of them are guaranteed to be relaxing or
fun
. I should have been less surprised when folks argued it wasn’t agame
at all. - Documentation. Its manual contains exclusive information about how to play but was presented in an inaccessible PDF format. It mentioned a tutorial quest but did not specify what sounds to expect or how to progress. It called out a key for toggling auto-movement but didn’t explain how it’s intended to be used.
- External consistency. The audience for my post has infinitely more experience with audio games and the tropes they use to convey information. Due to my being sighted, inexperience with audio games, and artistic license, its navigational cues were completely opposite of established audio games.
In some ways the academic in me finds a satisfaction in communication breaking down. It provides data about expectations which leads to further hypotheses and solutions. But players aren’t lab rats—willful playtesters are. So I responded as much as I could to understand, collate feedback, and cater the next update to better meet their expectations.
Considering accessibility
When I posted my thread I was aware of a giant bug to squash. But I was genuinely looking forward to everything else these folks would find.
Beyond the known issues were many suggestions to improve the accessibility of the soundStrider experience. If you’ve read this blog before, then you should be familiar with my commitment to accessibility. So I was sold on anything that was feasible for my timeline and budget. Thankfully with the latest update I had time to address the most egregious issues.
Despite Adobe’s documentation to the contrary, my biggest shock was that the included PDF manual was completely inaccessible for some folks. While rewriting the manual I manually converted it to an HTML document with sectional elements and headings so that it could be better read and navigated by assistive technologies. The new manual now lives online as well as in all newly downloaded archives.
Considering game design
The most interesting aspect of the thread was the debate over whether soundStrider is a game. To me it’s an experiment that occupies the space outside the Venn diagram of its genres:
- As an exploration game its vistas aren’t visual.
- As a walking simulator it has no structure or narrative.
- As a music generator it’s rooted in spatial chance.
- As a relaxation tool it takes work to find space to relax.
- And as a game it’s totally subjective.
Designing its experience under the guise of a game
has been outright challenging.
What even is a game anyway?
Honestly, games stopped being fun
for me a long time ago.
They’ve become consumable experiences like literature or cinema; many are artful, few are joyful, and most are essentially a second job.
So my approach has been to craft systems that yield emergent experiences that are abstract, liminal, and worthy of discussion.
I understand that not all folks see games in this way. It’s neither my duty to make a game that excites everyone, nor is it theirs to care. But there are compromises for me to make.
With soundStrider my approach of experience design as game design (wherein the experience is the game) is contrary to the typical approach of game design as experience design (whereas the game is the experience). The semantics are subtle but they represent a vast difference in priorities.
Game design leverages the feedback loop of past game experiences to inform the conventions of new games for the sake of external consistency and thus delight. Typically this manifests as games being means to ends rather than ends themselves, with motivators that reinforce reward systems and foster a sense of progress. Consequently, interactivity alone usually isn’t satisfactory to conventional expectations.
It’s not that soundStrider is only an end, as it can also be a means to atypical ends. Its intended experience is informed by our innate curiosity that drives exploration and discovery. Its designed experience is to captivate that and deliver an imaginative escapism. Press W to understand?
The shortcomings of soundStrider as a game
can only be partially designed away.
My hope is to bridge that divide slightly in its final updates.
Full changelog
Since my last post there have been two minor updates and one hotfix. The first minor update was a planned content release which was followed by a next-day patch. The latest update rearranged some planned tasks to accommodate feedback without affecting the gold release date. All of their changes are outlined below:
Beta 3 changes
This update was released on June 4 and included a new quest type. Occasionally players will encounter ticking objects that, by pushing them in a certain direction to wind them up, play a unique song. Their songs are a logical extension of the Pulse palette, producing loops dictated by noise and sung by dueling voices:
- Added props
- Music box
- Turning key
- Added Clockwork quests
- Some quests spawn clockwork music boxes
- Wind them up by walking in any direction to hear a unique song
- Music boxes persist after completed quests
- Footstep improvements
- Increased overall footstep level
- Reworked various footstep sounds
- Navigation system improvements
- Increased compass destination dissonance
- Synced breadcrumbs to global tempo
- Palette improvements
- Improved how Astral props leverage color
- Improved how Storm props leverage color
- Miscellaneous
- Free Roam worlds start at real-world time
- Loaded bookmarks start at real-world time
- Scaled demo fields down to reflect playable content
Beta 3 hotfix
In my post about designing expedition quests I detailed how thorough testing with a screen reader had led to several accessibility wins. Luckily, before I posted my thread on the audio games forum, anxiety drove me to conduct another test.
The results were surprising and culminated in a long list of known issues. Screens weren’t being focused and hotkeys weren’t working as intended. It was a disaster, but too late to troubleshoot.
Buried in the feedback the following morning was a clue about changing the focus mode in NVDA to improve the experience. Clearly something had changed since my initial tests. So my intention to take a day off turned into releasing my first hotfix.
It wasn’t a regression bug on my part, but an undocumented change in browser implementation.
Chromium (and subsequently my Electron wrapper) was no longer respecting the role
attribute on the root html
element, causing screen readers to interpret the page as a document.
The solution was simply moving its role
to its child body
element.
In addition to testing early, I’ve learned that I should be testing often, even if the internals haven’t changed. For future projects this could materialize as automated accessibility testing. Thankfully there are plenty of tools for that.
Beta 4 changes
This week’s beta update is informed by the feedback I’ve received so far and focuses entirely on accessibility. Its biggest addition is an audio mixer with sliders for every channel. By providing players with more options, they can enjoy its sounds at accessible levels. Other changes include the revised manual, improvements to navigational cues, and exposed player statistics:
- Added Miscellaneous screen
- Added buttons to access the Miscellaneous screen
- Added button to access the Settings screen
- Added button to access the Statistics screen
- Moved button to access the Credits screen
- Added Settings screen
- Added button to access the Audio Mixer screen
- Added button to access the Mouse Settings screen
- Added Audio Mixer screen
- Added master volume slider
- Added slider for duck amount while paused
- Added footsteps volume slider
- Added individual volume sliders for navigational cues
- Added Mouse Settings screen
- Added mouse sensitivity slider
- Added Statistics screen
- Exposed overall distance traveled
- Exposed quests completed by type
- Added button to reset statistics
- Navigational system improvements
- Added triad to waypoints
- Improved notification ducking
- Synced compass to global tempo
- Synced waypoints to global tempo
- Revised game manual
- Converted manual to HTML to improve its accessibility
- Added System Requirements section
- Added Auto Move to Controls section
- Added Tutorial to Adventure Mode section
- Added Seeds section
- Added Graphical Description to Accessibility section
- Added Motion Sickness to Accessibility section
- Added Demo Limitations section
- Revised various sections for clarity
- Miscellaneous
- Fixed artefact caused by trance tremolo modulator
- Fixed autosave triggering while paused
- Parse bookmark codes when used as seeds
- Reduced size of packaged Electron binaries
- Slightly reduced volume of wind chimes
Coming July 10
Recently you may have noticed that I silently changed soundStrider’s planned release date on Steam from June-ish to exactly July 10:
This happened because my planned release date was set to occur in the middle of this year’s Steam Summer Sale. At first it didn’t seem to be an issue, but further research led me to believe that it would negatively affect its discoverability. For my first published title I decided it was best to mitigate the obvious risk of dooming it forever.
With this extra time I’m able to focus more clearly on player feedback, accessibility, and testing. Secret features that I was planning to silently release will now have their own beta releases. And the final week gives me padding to optimize, polish, and fix obscure bugs.
Until then, I hope you enjoy this update. Please wishlist soundStrider on Steam and donate to the Bundle for Racial Justice and Equality. Thanks for your understanding and support.