System Fault Devlog 1

This site has been quiet, for which I sincerely apologize. I have begun work on a new game, however, and am committing to post regular news on its development. To that end, I bring you…

System Fault is a Berzerk-like, arcade-style shooter. Run through mazes, blast shit-talking robots, collect powerups, and clear infinitely-growing robot-infested levels. Initially submitted for the second No Video Jam as Rampage, I’ve renamed the game and am creating something bigger and better. I’ll describe what I’ve done since the jam, but here is a segment of original gameplay for purposes of comparison.

Polish has been my focus for the last few weeks. I’ve squashed many bugs, incorporated lots of feedback, and have refined the core “run mazes and kill robots” loop to a point I’m mostly happy with. Here are some highlights:

  • Walls now emit an electric crackling sound when you’re close. Consequently, they now kill you immediately rather than taking a moment to warm up.
  • The player can survive 3 shots from robots, and heals at 1 hit per 30 seconds. This makes combat a bit more strategic and less luck-based. Consequently, robots are more accurate and shoot more often.
  • More challenging robots spawn more often. System Fault robots are like slightly intelligent zombies–easy to handle individually but challenging when they swarm.
  • Players earn extra lives based on points scored, with the extra life threshold increasing per life earned.
  • Speech chattiness was reduced in favor of a command that lists everything visible, along with distance and direction.
  • Directions are now relative (I.e. “right and ahead and not “northwest.")

There’s now a basic user interface. Games can be started, paused, resumed, and restarted. The speech system, rate, and volume can be changed on platforms that support it. There’s also some initial work on a leaderboard/achievement system in the form of stub login and account creation dialogs, though none of these are hooked to backend systems as of yet. The UI currently uses egui, for which I’ve submitted an initial accessibility pull request. I think this is the third screen reader I’ve released publically, and that isn’t counting a fourth I wrote for an unreleased game back in 2007. This is getting tiring. :)

And, of course, it wouldn’t be a week of development without at least one fix to my cross-platform TTS library, or to the screen reader interface it relies on. An issue breaking screen reader detection was resolved, and I removed a check that prevented queueing speech under Windows.

I’m very excited about how this is shaping up. Here is an audio clip of gameplay in this week’s build. Note the crackling of the electric walls as you run through exits. I’d hoped to show off the newly-added musical tones when the player gets hit or heals, but unfortunately I never got shot–need to work on making that a bit more likely. :) Headphones are strongly recommended, though note that it does get a bit loud when multiple robots activate simultaneously.

You’ll notice how crowded the soundscape gets at times. My hope is to use OpenAL’s more advanced effects, alongside line-of-sight calculations and map obstacles, to introduce effect panning and filters. I hope to occlude robots and sounds in different areas so they sound muffled, as well as to pan effects in nearby rooms such that robot sounds and voices are heard from the location of doors between rooms.

I’m also shifting focus to the exploration loop. If you listen to the various in-game announcements, you’ll notice that they inform you whether a given exit is unexplored. My plan is to stash powerups and other cool items off of the main path, and challenging robots/enemies on the path. You can certainly blaze a path through each level if you like, though the better strategy would be exploring as much as you can so you’re better armed and equipped. Also, the random ambient sounds you hear will be replaced by destroyable obstacles. Shoot your way through them if you like. Or, even better, toss a lure grenade into a nearby chamber, hide inside an obstacle while robots tromp past, and shockwave out the entire group with a single shot.

I’ll be back next week with another update. Watch this space or join us on Discord for more!