Hi folks,
Some of you might know me as one of the guys behind Accessible Apps, the company which brings you Chicken Nugget, the most powerful and popular Twitter client for Windows, as well as other awesome software.
Today I'm writing to introduce you to one of the things I have been working on for a bit, an audio single-player fps engine.
Some of the features that I've got working so far:
Full HRTF-enabled multidimensional audio, made possible by the powerful Libaudioverse library.
Integration with an off-the-shelf physics engine for a realistic environment incorporating destructable objects and other complex physical behaviors. Think of grenades being able to bounce off walls and similar.
Automatic map generation from a simple declarative language. In particular I'm using YAML, an easy language for describing data structures and relationships for creating templates which I feed into my map generator, which then produces full levels.
Multiple input methods: Currently both keyboard and mouse are supported. I feel that the mouse has been demonstrated as a very useful input device for audio games.
Audio occlusion: Physical items in the game world, including walls, dampen audio but do not necessarily completely cut it off. This means you can hear stuff in other rooms, and when you approach an open exit, the sounds become more noticeable. This is also true if, for instance, an npc is behind a piece of equipment or shelving.
Room-dependent reverb: Again relying on the powerful Libaudioverse library, different rooms will have different reverberation characteristics. Small rooms sound small, and the inverse is also true.
I have created a minimal playable level to showcase what I've got so far, and to solicit feedback. I'm extremely interested in what the community has to say, and would like to involve you all in the process as I create something marketable.
Currently the demo runs on Windows. You can find it at: https://q-continuum.net/shooter.zip
I'm certain that you will find issues. Heck, it might not even run at first on your system. I was previously trying to use convolutional impulse responses for the reverb, and that did not run on several peoples' computers. I believe the new computational reverb will work better, but I have also heard reports of random freezing and crashing depending on display drivers and other random things. I've done my best, but let me know what issues you come across.
Notes on development:
As I mentioned, a lot of this is made possible by Camlorn's powerful Libaudioverse library (which I would link to, but the forum is telling me I may only have 1 link in this post.) He's built something quite amazing there, so you should probably check it out. I'll post subsequently with the URL.
This engine, like all of the other apps from Accessible Apps is written in Python.
I often see questions about what language to learn, or if Python is the right language on this forum, and always restrain myself from jumping in as a Python fanboy when I see people start suggesting BGT or other similarly hobbled languages. I do feel it worth noting that this is just under 2000 lines of code written in under two months with other projects taking a majority of my time, and most of this is a direct result of both Python's expressiveness and immense and thriving ecosystem.
I chose YML to represent input to the map generator because it fit my mental model and procedural map generation fits well into the single developer trying to build a large complex game situation I find myself in. But I am extremely interested in working on infrastructure for nonrandom maps which could really highlight the power of the environmental audio engine with familiar environments, for instance a supermarket or gymnasium. This will require further development.
There's a lot of quick and dirty prototype stuff in the game. For instance the escape key pauses the world, useful for debugging, but there's no unpausing. escape twice exits. The inventory screen is very minimalist and only lets you equip things. Lots of small polish issues.
I look forward to your feedback. It's time to revolutionize audiogaming.