It's been a while!
My goal with this change is to better showcase my games, with a better publishing process for whenever there’s something to share. Eventually I would like to import all of my itch.io devlogs to bring the archives to date.
A library for audio game development
Over the past year I’ve used web technologies to create audio games like soundStrider and participate in numerous game jams. With syngen I’m releasing my tools as open-source so folks can join me in crafting dynamic audio experiences and games for the web. Continue reading to dive into its features, view example code, and learn more about its future.
What I learned from hosting an audio gam jam without graphics
Last month it was my pleasure to host the No Video Jam, an audio game jam featuring accessible games without graphics. In two weeks dozens of developers created 20 games that were accessible to gamers who are blind. We had a variety of submissions, from action games to interactive fiction, that surprised and delighted. Continue reading to learn more about how it went and the lessons I learned from organizing my first jam.
An audio game jam without graphics
Please join us on Friday, August 14, for the No Video Jam, an audio game jam featuring accessible games without graphics. Participants will create blind-friendly games of any genre using audio and accessible text. Submissions will then be judged by the public based on criteria like accessibility, fun, originality, and sound.
Since I began making audio games I’ve learned that it’s a niche and neglected market. Gamers who are blind often feel isolated from the mainstream gaming community and have few games made specifically for them. My hope with organizing this jam is to give them visibility by normalizing audio games with sighted developers and gamers. Then when it’s over they’ll have more games in their canon to enjoy and discuss.
I’m looking forward to hearing what everyone creates!
Where have you been all my life?
Today I installed Python for the first time.
Whenever I learn something new I like to stay motivated with a small project. A friend and data engineer told me that Python excels at crunching numbers—and lately I’ve been quite a Numberphile—so I built a small library for generating my favorite OEIS integer sequences. When I encounter exciting sequences in the future they’ll surely get added.
You can explore the result at this GitHub repository.
An empathetic pitch
Unlimited data and processing power is a privilege.
Ignoring this privilege adversely affects: user experience because true performance is the foundation of perceived performance; accessibility because every requirement for a baseline experience is exclusionary; the economy as long as our users are paying for each web request with their labor; and the environment because every web request has material costs.
It’s easy to forget that the web is for all people. So it’s a moral imperative to prioritize performance when we develop for the web.
Crafting a lazy loader for lazy folks
Lazy loading is one of the best accessibility wins available to front-end developers. By deferring the loading of assets until we need them, we save our users’ data—and consequently their money. For folks who pay disproportionately more for their data, this can be invaluable.
In this tutorial we will craft a lazy loader that can be deployed with minimal effort on any site. Because we’re lazy folks. So we’ll leverage the MutationObserver and IntersectionObserver interfaces to lazily lazy load lazy-loadable elements whenever they’re added to the DOM.
Please feel free to skip to the result at this GitHub repository.
A new page appears!
Essentially it’s the latest snapshot of my life. It’s a place for me to be purposeful and transparent with my priorities. It’s where you can find a quick update if we haven’t connected recently.
I needed a page that could be easily edited, so there were no major code changes. There’s a lot to unpack from that. I’d love to write more about the thinking and technology that went into building the site in later posts.