Making a (mostly) Audio-Only Game


Lights Out was created for Godot Wild Jam #30.

Although the theme of the jam was “Heartbeat”, it was the “No Visuals” wildcard that really intrigued me. It presented a really unique challenge. Also, in discussion with my wife who follows YouTuber Molly Burke, the idea of a game that is accessible in this way really appealed to us (although I realize a lot more work would be required for Lights Out to make it fully accessible).

Concept

I tossed around a few different ideas before settling on a mechanic of locating an object using audio only. I was hesitant to move forward with this idea for a couple reasons:

  • I expected that there would be a lot of submissions along this mechanic
  • I wasn’t sure it would be that fun, or how much variation I could throw in

With regard to the first concern, I was ultimately surprised at how few of the submissions incorporated the “No Visuals” wildcard. I only played two others besides Lights Out, although there may have been others I didn’t play.

Fun

In my initial design, I had expected to give more verbal feedback to the player (“this is a wall, turn left”, etc.). In the first prototype I had my playtesters close their eyes while I could see the screen to give them some guidance. This turned out to be distracting, annoying and ultimately less fun as the player would pretty much be following directions rather than navigating by themselves.

After eliminating much of the verbal guidance, I was pleasantly surprised at the feedback. Players seemed to enjoy the game! As a bonus, eliminating this verbal guidance also meant fewer voice lines to record.

Level Design

A big challenge with level design in this game was that the secrecy of the layout is a game mechanic. Therefore, it was very hard for me to accurately test the levels myself: knowing the layout of the level drastically decreased the difficulty. First impressions were much more valuable than usual and I had to resort to recruiting more playtesters and ensuring I gathered as much first-time feedback as possible.

In the end I still wasn’t confident I had a large enough sample size to really know the difficulty of the three levels in the game.

A strong theme in the feedback was that players would like to see the layout of the level afterward, as they had a hard time visualizing the floorplan. (I’d be interested to know what the variation in player ability is in this regard, and whether some people are able to accurately reconstruct the layout of the level).

Replays

Although I was certain that replays should be a core feature, I was hesitant to add them because I felt they would dilute the “No Visuals” theme. I was also concerned about the technical difficulty of implementing them. Ultimately I convinced myself that the core mechanic of the game still held to the “No Visuals” theme enough and the replays added so much in terms of value for the player.

I found an easy (though somewhat limited) solution to the technical implementation problem. I simply “recorded” the player’s movements into an Animation resource in code:

replay.transform_track_insert_key(_translation_track, _time, player.translation, player.transform.basis.get_rotation_quat(), player.scale)

And then later played them back in an AnimationPlayer onto the original map:

$AnimationPlayer.add_animation("Replay", replay)
$AnimationPlayer.play("Replay")

A major limitation of this solution is that it did not record anything else. Because players could skip to any point in time in the replay, and seeking in an AnimationPlayer skips any intermediate frames, any triggers in the level would be skipped and could play at the wrong time. This would have been more of a problem if levels had a more complex state that changed over time, but fortunately there were only a few audio triggers that could be affected by this.

Audio

Audio in Lights Out accomplished with AudioStreamPlayer3D, and some stock audio clips. During my research I had listened to Virtual Barber Shop Hair Cut and was really amazed. I don’t feel that I was able to really replicate that effect, and I’m not quite sure how to better differentiate between sounds behind or in front of you with only two audio channels (stereo).

Opportunities to Improve

As I began building levels, a lot of new mechanics came to mind that I would have like to try but the “stateless” implementation of replays limited me. I was happy to see that Auribus explored some of these more thoroughly.

It would be nice to make the game fully playable by blind or visually impaired people. I am not entirely sure what it would take.

I’m sure with greater skill or research, the audio could be improved, maybe to the point of better replicating the 3D sound effect referenced above.

Leave a comment

Log in with itch.io to leave a comment.