After eight months of development I’m proud to announce the release of soundStrider. With this release the game is feature complete and finally available for purchase on Steam. Continue reading to find its final patch notes and learn what’s next for the project and me.
Realizing the vision
In the final month of development I needed to finish two major features: the poison system and the virtual instrument. Both were late additions to the soundStrider game design documents which completely changed its scope. They underwent rapid iteration alongside regular updates that considered player feedback and polished it for release.
The poison system temporarily alters players’ perceptions after interacting with poisonous objects. Under its influence the visualizer churns in color and sounds repeat with subtle distortions. Hilariously this inspires an emergent foraging behavior where players try to always be poisoned.
Initially the effect was achieved by inverting the colors and routing the master audio channel through a feedback delay send. Later iterations polished the audio with a flange effect and enhanced its visuals with a hue rotation that applies to each frequency bin separately. The math behind the curtain was a frustratingly productive learning experience.
Please enjoy a short trailer demonstrating the final result:
The virtual instrument provides a tactile way for players to participate in the musical worlds around them. Whenever they feel inspired, a plethora of voices are available at their fingertips.
Early in its design the virtual instrument was meant to react to its surroundings based on the fields that controlled them. This severely limited its expressiveness, so I expanded it with presets to offer players more choice and variety. The decision to make them collectible helped reinforce the core gameplay loop. By giving players another incentive to explore they’re more likely to bookmark interesting places, revisit them, and repeat.
Defining its controls with accessibility in mind was the most integral aspect. Despite my background in music I’ve never been the most skilled musician, struggling with remembering scales and chord constructions. Given that every location has an unpredictable musical key, it’s difficult to dive in without perfect pitch. So the controls were set up to transpose automatically with the environments such that the white keys were always correct and the player always had the highest number of consonant notes available.
When experienced with a MIDI keyboard and all presets unlocked, this feature alone is worth the price of admission to me. I’ve spent days playing it and feeling inspired, and I hope you do too.
Since my last post about what I’ve learned from introducing soundStrider to a new audience there were three minor updates, one hotfix, and its first major update. This was an exciting period filled with participating in a charity bundle, a gaming festival, and the race to the final deadline. Here are all the changes leading up to release:
Beta 5 changes
The Beta 5 update was released early on June 16 to coincide with the start of the Steam Game Festival. Importantly it included settings to improve performance on systems below the recommended requirements. For early access players it also revealed a rough version of the poison system:
- Added Performance Settings screen
- Added button to access the Performance Settings screen
- Added graphics toggle
- Added render distance slider
- Added reverb toggle
- Added props
- Added poison status effect
- Added poison system
- Added poison audio cues
- Added poison visual cues
- Increment poison near poisonous objects
- Decrement poison over time
- Added statistics
- Time played
- Time poisoned
- Added levels of detail to chimes for performance
- Added reverb slider to Audio Mixer screen
Beta 5 late changes
A next-day patch was released to commit changes that weren’t ready for the previous update. Mainly its new bookmarks screen flow helped clean up the interface as a whole. In hindsight this update was unnecessary for my users and could have been rolled into the next beta release:
- Added a new Bookmarks screen and flow
- Added accessible labels to more screens
- Fixed smooth scrolling on new screens
Beta 6 changes
soundStrider’s virtual instrument feature was revealed in its Beta 6 update on June 16. By limiting its scope to a single preset—a sine tone—this update perfected its implementation by emphasizing accessible controls that make music approachable for folks of any skill level:
- Added virtual instrument
- Equipped players with a simple synthesizer
- Added support for MIDI input devices
- Added gamepad controls to play the instrument
- Added keyboard controls to play the instrument
- Added instrument slider to the Audio Mixer screen
- Added notes played to the Statistics screen
- Updated game manual
- Added Virtual Instrument section
- Revised Bookmarks section to reflect the changes in v0.19.1
Beta 7 changes
On July 2 the final beta introduced players to its metagame with a variety of collectible presets for the instrument. They range from pure oscillators and synth pads to real-world instruments like ideophones, horns, and strings. Whenever I needed a break from building them, I reworked the poison system to produce more psychedelic visuals and effects. This update also expanded its controls with a left-handed configuration and more ways to play the instrument:
- Added collectible instrument presets
- Added various presets (collect them all)
- Added preset unlock spawner
- Added presets unlocked to Statistics screen
- Enabled pure sine preset within the demo
- Improved default preset
- Added Instrument Settings screen
- Added button to access the Instrument Settings page
- Added preset selector
- Added polyphony slider
- Added pitch bend slider
- Added switch on unlock toggle
- Extended keyboard controls
- Added numpad keys for moving, turning, and toggling forward
- Added support for using the numpad enter key for UI interactions
- Added support for using the delete keys to pause or go back
- Improved instrument controls
- Added MIDI modulation wheel support
- Added second octave of instrument keys between T and ]
- Revised gamepad controls with modulation support
- Improved poison status effect
- Improved audio effects while poisoned
- Improved visual effects while poisoned
- Added poison slider to Audio Mixer screen
- Added venom to snake bites
- Increased radius of poisonous objects
- Added reverb send to instrument
- Improved accuracy of distance traveled statistic
- Optimized various synth routings
- Prevented hard audio locks on unstable filters
- Updated manual to reflect changes
soundStrider officially graduated from beta with its Gold release on July 10. My goal for this update was to polish the overall experience and address longstanding bugs, but after a few live-streamed playtests I was surprised by how much work it actually needed.
With the addition of dynamic range presets I solved my greatest annoyance with the mix by relinquishing control of the master limiter to the player. Improvements to the instrument allowed its standalone use outside the game for folks who simply want to play. And after playing through its Adventure mode on a fresh save I corrected several issues with its feel and scaling. Overall this reality check was sorely needed:
- Added dynamic ranges
- Added dynamic range selector to Audio Mixer screen
- Added Boost preset for playing at low volumes
- Added Normal preset for playing on headphones
- Added High preset for playing on hi-fi speakers
- Added Full preset with no processing whatsoever
- Defaulted to Boost for existing players (closest to Beta 7 mix)
- Browser compatibility
- Fixed MIDI hardlock in Firefox
- Fixed rare storage hardlock in private browsing mode
- Updated Browser Support section in the manual
- Instrument improvements
- Allowed instrument controls on Instrument screen
- Added stereo panning to instrument notes
- Moved button for Instrument screen to Miscellaneous screen
- Tweaked articulation on pad presets
- Quest improvements
- Aligned breadcrumb ping volume with other navigational cues
- Improved breadcrumb positioning
- Improved music box sounds
- Improved synthesis quest objective spawning
- Improved winding key audibility
- Increased distance between quest starts
- Rebalanced quest durations to scale with count by type
- Smoothed clockwork quest transitions
- Added audio notifications when toggling forward
- Fixed issue with time played statistic incorrectly saving
- Improved poison prop sound
- Various engine improvements
- Added an easter egg
This release is not the end of soundStrider or my game development journey. Over the next several weeks I have plans to wrap up this chapter of my life and refocus my energy:
- Post-mortem. I plan to write an in-depth post-mortem of the entire development process, including: engine development, sound synthesis, time management, revenue earned, and lessons learned.
- Performance hotfixes. I plan to address optimization issues with the engine and game systems with fresh eyes now that I’m no longer working towards a major deadline.
- Minor content releases. I’d like to create a timeline for new content like additional quests and sounds in existing areas. All new content will be compatible with the base game and freely available to all players.
- Interactive anthology. I’d like to compile an interactive anthology of all soundStrider releases and their patch notes. Ideally this will be released as a free DLC to all interested players. This will be a huge undertaking so there is no established timeline yet.
- New projects. Eventually I need to move on from soundStrider by participating in game jams, pursuing other hobbies, and looking for paid work in accessibility, sound design, game development, or consultancy.
Thanks again to everyone who helped make this possible, from my partner who endured my obsessions, to all of my early access players whose feedback was invaluable, and folks like you who followed me along this journey. I’m looking forward to sharing more soon. Cheers!