Advertisement

How to make an audio game engine?

Started by April 21, 2020 07:55 AM
1 comment, last by Shaarigan 4 years, 7 months ago

Hello.

Dear moderators, I hope that I post this in the correct forum. If not, I ask you to transfer my topic to the more suitable forum.

My name is Constantine.

I'm blind. Completely blind.

Among blind programmers, there are those who develop audio games.

What does it look like?

Imagine GTA, Mafia, Call Of Duty, any shooter. Only without graphics, and without sight height. And you are guided by 3D sound, shoot at the sound, etc.

Recently, a lot of those who write in Python. But personally, I'd not trust Python with a good online project...

To work with a computer, we use screen access programs. Programs that voice everything on the computer screen.

Why can't we use video game engines?

Because not all of them are access to us. The most popular, Unity and Unreal Engine, are not available for our programs.

It's clear that everyone who starts development from scratch implements every detail. Game window, processing keystrokes, sound output.

One of the developers of sound games, Philip Bennefall, said in one of his interviews (recorded from memory):

Every time, I have to do something at a low level. Work with memory, pointers. I cannot concentrate on the logic of the game. Therefore, I decided to create a game engine. An engine that allows you not to think about things at a low level, but allows you to focus on game logic.

And he really created! The engine was called Blastbay Game Toolkit (BGT).

The engine is very simple. For example, in order to reproduce sound, it was necessary to create an object of the Sound_pool class, set the file name in the constructor, and then simply execute the Play_3D method and transfer the coordinates of the listener and source.

3 cons of engine:

1. Not cross-platform;

2. Discontinued support;

3. Very big lags when transferring packets in online games.

There have been and are other attempts to create such an engine.

The most successful, have now created an API in Python - Lucia. You can see it here:

https://github.com/luciasoftware/lucia

Cons:

1. Not cross-platform (Windows and macOS only);

2. Works on Python.

By implementation, I'd like to make a similar engine. But in C++, so that you can later port to .NET, Java and Python.

The main features of the engine:

1. Creating a game window through a method that get's the window title;

2. Work with the keyboard, mouse and other control devices;

3. Work with 1D, 2D and 3D sound, without complex manipulations, only indicating the coordinates of the listener and source;

4. Work with the network;

5. Cross-platform!

I can, programming in Python, develop audio games for Windows. But I'd like to develop not only under Windows, but also under Linux, macOS, Android, IOS, etc.

What do I need to create such an engine?

I understand that it will be difficult to realize this myself, due to the lack of a lot of experience. I don’t even fully understand pointers in C++, what can I say. But we have interested developers.

I ask you to throw about what I need, how and why.

And if someone can help with the implementation directly, we would be very happy!

Thanks in advance!

Hello Constantine,

this is a quite difficult topic and I already wrote a long post about it some time ago (just ignore the graphics part of it) here:

https://gamedev.net/forums/topic/706193-making-a-2d-game-engine-from-scratch/5423023/

Any advice I gave there is related to getting started in general. I know a game engine is often recognized about it's graphics, but just focussing on that is wrong in my opinion. So I explained the basic challanges of getting into game engine development from past 7 years of my experience.

It is difficult because you have to become familiar with C++, thats fact unfortunately! Using pointers and doing a lot of black low level magic is essential for writing a game engine in general. You can use third-party libraries and SDKs but still have to spend a lot of work on your own to get everything working and performing well. Taking a look at open source work is also a good idea, for example on GitHub.

Audio at all is pretty standard in the industry today and I never saw someone using their own audio engine at all but Wwise and OpenAL is widely used from hobby to professional projects, XAudio on Microsoft only platforms.

About the engine at all, I talked to one of my colleagues once ago about using HTML5 as the language of choice for game and editor UI. HTML5 by default is well suited to be used by screen reader software and should enable you to use the graphical editor as well. However, I never tested that so might be interesting to investigate and a unique selling point to think about!

However, as we are currently developing a Game/ Game Engine SDK and always have need for additional contribution, feel free to message me if you are willing to spend some time and get a deep insight into the wonderfull and scary world of game engine development

This topic is closed to new replies.

Advertisement