@Ben_r007

Как реализовать движок звуковых игр?

Здравствуйте.
Меня зовут Константин.
Я слепой. Полностью слеп.
Среди незрячих программистов есть те, кто занимаются разработкой звуковых игр.
Как это выглядит?
Представьте, GTA, Mafia, Call Of Duty, любой шутер. Только без графики, и без высоты прицела. И вы ориентируетесь по 3D звуку, стреляете на звук и т.д.
В последнее время, много тех, кто пишут на Python. Но лично я не доверил бы Python хороший онлайн проект...
Для работы с компьютером мы используем программы экранного доступа. Программы, которые озвучивают все, что на экране компьютера.
Подробнее, можно почитать здесь:
https://habr.com/ru/post/260463/
https://habr.com/ru/post/336600/
Почему мы не можем использовать движки видео игр?
Потому что ни все они доступны нам. Самые популярные, Unity и Unreal Engine, недоступны для наших программ.
Понятно, что каждый, кто начинает разработку с нуля, реализует каждую деталь. Игровое окно, обработку нажатий клавиш, вывод звука.
1 из разработчиков звуковых игр, Philip Bennefall, в одном из своих интервью говорил (записал по памяти):
Каждый раз, мне приходится делать что-то на низком уровне. Работа с памятью, указатели. Я не могу сосредоточиться на логике игры. Потому я решил создать игровой движок. Движок, который позволит не думать о вещах на низком уровне, а позволит сосредоточиться на игровой логике.
И он действительно создал! Движок назывался Blastbay Game Toolkit (BGT).
Движок очень простой. К примеру, чтобы воспроизвести звук, нужно было создать объект класса Sound_pool, в конструкторе задать имя файла, а потом просто выполнить метод Play_3D и передать координаты слушателя и источника.
Минусов движка 3:
1) Не кросс-платформенный;
2) Прекращена поддержка;
3) Очень большие лаги при передаче пакетов в online играх.
Были и есть иные попытки создать такой движок.
Самая удачная, сейчас создали API на Python - Lucia. Можете посмотреть реализацию здесь:
https://github.com/luciasoftware/lucia
Минусы:
1) Не кросс-платформенный (Только Windows и macOS);
2) Работает на Python.
По реализации, я хотел бы создать подобный движок. Но на C++, чтобы можно было в дальнейшем портировать под .NET, Java и Python.
Главные возможности движка:
1) Создание игрового окна через метод, принимающий заголовок окна;
2) Работа с клавиатурой, мышью и иными управляющими устройствами;
3) Работа с 1D, 2D и 3D звуком, без сложных манипуляций, только указывая координаты слушателя и источника;
4) Работа с сетью;
5) Кросс-платформенность!
Я могу, программируя на Python, разрабатывать звуковые игры для Windows. Но я хотел бы вести разработку не только под Windows, но и под Linux, macOS, Android, IOS и т.д.
Что мне нужно для создания такого движка?
Я понимаю, что самому будет трудно такое реализовать, из-за отсутствия большого опыта. Я даже не до конца понимаю указатели в C++, что уж там говорить. Но у нас есть заинтересованные разработчики.
Я прошу вас накидать примерно, что нужно, как и зачем.
А если кто-то сможет помочь в реализации непосредственно, мы были бы очень рады!
Заранее благодарен!
  • Вопрос задан
  • 215 просмотров
Пригласить эксперта
Ответы на вопрос 2
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Все вменяемое что удалось найти даже для зрячего довольно тяжело освоить. Как освоить разработку в программах не адаптированных под слепых тоже не понятно (на хабр не хватило времени - засыпаю). Создание современных игр - это не столько программирование сколько дизайн/идеи, именно для этого и нужны движки - чтобы свести программирование к минимуму. Завтра поищу детальнее. Я занимаюсь написанием музыки - и через час проигрывания ударных по кругу в голове полная каша, мне кажется с разработкой именно игры получится что-то подобное т.к. отладка занимает кучу времени.
Насчет кроссплатформенности не волнуйся, тот же питон запускается на любом утюге.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Это было создано более 15 лет назад CreativeLabs. У них есть технология EAX. И к ней есть доступ через Microsoft Direct Sound 3D. Я играл еще в старые версии Half-Life и я помню этот пугающий трехмерный звук. После перехода от старой железки SoundBlaster 16 bit на Creative - разница конечно чудовищная. Молодым - не понять.

По поводу Питонов и прочих линуксов. С этим конечно тухляк - т.к целевая аудитория почти нулевая. Но погугли по ключевому слову OpenAL. Это по идее тоже должно иметь интерфейс доступа к железу EAX но насколько там хорошо и полно воплощены фичи - ХЗ.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы