B
B
Ben_r0072020-04-20 16:54:23
Game development
Ben_r007, 2020-04-20 16:54:23

How to implement a sound game engine?

Hello.
My name is Konstantin.
I'm blind. Completely blind.
Among the blind programmers, there are those who develop sound games.
What does it look like?
Imagine GTA, Mafia, Call Of Duty, any shooter. Only without graphics, and without the height of the sight. And you navigate by the 3D sound, shoot by the sound, etc.
Lately, there are a lot of people writing in Python. But personally, I wouldn't trust Python with a good online project...
We use screen readers to work with the computer. Programs that sound everything that is on the computer screen.
More details can be found here:
https://habr.com/ru/post/260463/
https://habr.com/ru/post/336600/
Why can't we use video game engines?
Because not all of them are available to us. The most popular ones, Unity and Unreal Engine, are not available for our programs.
It is clear that anyone who starts development from scratch implements every detail. Game window, keystroke processing, sound output.
One of the developers of sound games, Philip Bennefall, in one of his interviews said (recorded from memory):
Every time, I have to do something at a low level. Working with memory, pointers. I can't focus on the logic of the game. That's why I decided to create a game engine. An engine that will allow you not to think about things at a low level, but will allow you to focus on game logic.
And he really did! The engine was called Blastbay Game Toolkit (BGT).
The engine is very simple. For example, to play a 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 pass the listener and source coordinates.
Disadvantages of the engine 3:
1) Not cross-platform;
2) Stopped support;
3) Very large lags when transmitting packets in online games.
There have been and are other attempts to create such an engine.
The most successful, now they have created an API in Python - Lucia. You can see the implementation here:
https://github.com/luciasoftware/lucia
Cons:
1) Not cross-platform (Windows and macOS only);
2) Powered by Python.
By implementation, I would like to create a similar engine. But in C ++, so that you can later port it to .NET, Java and Python.
The main features of the engine:
1) Creating a game window through a method that accepts the title of the window;
2) Work with the keyboard, mouse and other control devices;
3) Work with 1D, 2D and 3D sound, without complex manipulations, only specifying the coordinates of the listener and source;
4) Work with the network;
5) Cross-platform!
I can develop sound games for Windows by programming in Python. But I would 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 implement this myself, due to the lack of extensive experience. I don't even fully understand pointers in C++, to say the least. But we have interested developers.
I ask you to throw in approximately what is needed, how and why.
And if someone can help with the implementation directly, we would be very happy!
Thanks in advance!

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Anton Shamanov, 2020-04-21
@SilenceOfWinter

Everything sane that was found, even for a sighted person, is quite difficult to master. How to master development in programs that are not adapted for the blind is also not clear (I didn’t have enough time for habr - I fall asleep). Making modern games is not so much programming as it is design/ideas, that's what engines are for - to keep programming to a minimum. I'll look for more details tomorrow. I'm writing music - and after an hour of playing drums in a circle, it's a complete mess in my head, it seems to me that with the development of a game, something like this will turn out. debugging takes a lot of time.
Don't worry about cross-platform, the same python runs on any iron.

M
mayton2019, 2020-04-21
@mayton2019

This was created over 15 years ago by CreativeLabs. They have EAX technology. And it can be accessed via Microsoft Direct Sound 3D. I've played older versions of Half-Life and I remember that creepy 3D sound. After the transition from the old piece of hardware SoundBlaster 16 bit to Creative - the difference is, of course, monstrous. Young people don't understand.
Regarding Python and other Linux. With this, of course, rotten - because the target audience is almost zero. But googled for the OpenAL keyword. This, in theory, should also have an interface for accessing the EAX hardware, but how well and fully the features are implemented there - HZ.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question