Здравствуйте.
Меня зовут Константин.
Я слепой. Полностью слеп.
Среди незрячих программистов есть те, кто занимаются разработкой звуковых игр.
Как это выглядит?
Представьте, 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++, что уж там говорить. Но у нас есть заинтересованные разработчики.
Я прошу вас накидать примерно, что нужно, как и зачем.
А если кто-то сможет помочь в реализации непосредственно, мы были бы очень рады!
Заранее благодарен!