SDL3 & OpenAL: 2D Audio for WebAssembly SDL3 и OpenAL: 2D звук для WebAssembly
A guide to integrating OpenAL for 2D audio in your Wasm projects, using SDL3 exclusively for windowing and OpenGL graphics. Руководство по интеграции OpenAL для 2D звука в ваших Wasm проектах, используя SDL3 исключительно для оконного интерфейса и OpenGL графики.
1. Obtain SDL3 for Wasm 1. Получение SDL3 для Wasm
- Build SDL3 for your Wasm environment: Building SDL3 for WebAssembly. Соберите SDL3 для вашей Wasm-среды: Сборка SDL3 для WebAssembly.
2. Obtain stb_vorbis 2. Получение stb_vorbis
-
Copy the stb_vorbis.c file content and remember the version number:
Скопируйте содержимое файла stb_vorbis.c и запомните номер версии:
-
Create the
stb_vorbis-x.yfolder and copy thestb_vorbis.cfile content inside it: Создайте папку с именемstb_vorbis-x.yи скопируйте содержимое файлаstb_vorbis.cв эту папку:
3. Assets 3. Ресурсы
Before creating the files, download the required asset: Перед созданием файлов скачайте необходимый ресурс:
- Download the music file (OGG): Winds Of Stories.zip. This is a free file from OpenGameArt.org Скачайте музыкальный файл (OGG): Winds Of Stories.zip. Это бесплатный файл, взятый с OpenGameArt.org
- Download the sound effect file (WAV): Picked Coin Echo 2.zip. This is a free file from OpenGameArt.org Скачайте звуковой эффект (WAV): Picked Coin Echo 2.zip. Это бесплатный файл, взятый с OpenGameArt.org
4. Project Architecture 4. Архитектура проекта
Let's create a project that plays a sound using OpenAL and renders graphics with OpenGL.
Давайте создадим проект, который воспроизводит звук с помощью OpenAL и рендерит графику с помощью OpenGL.
C++ Project: Create an empty folder named music-and-sound-2d-openal-opengl-sdl3-wasm-cpp and set up the following hierarchy by creating new CMakeLists.txt and main.cpp files:
Проект на C++: Создайте пустую папку с именем music-and-sound-2d-openal-opengl-sdl3-wasm-cpp и подготовьте следующую иерархию, создав файлы CMakeLists.txt и main.cpp:
music-and-sound-2d-openal-opengl-sdl3-wasm-cpp/
├── CMakeLists.txt
├── config-wasm.bat
├── build-wasm.bat
├── assets/audio/
│ └── Picked Coin Echo 2.wav
│ └── Winds Of Stories.ogg
│── public/
│ └── index.html
└── src/
└── main.cpp
5. CMake Configuration 5. Конфигурация CMake
Copy and paste the following code into the CMakeLists.txt file:
Скопируйте и вставьте следующее содержимое в файл CMakeLists.txt:
6. Source Code 6. Исходный код
src/main.cpp:
public/index.html:
7. Automation Scripts (.bat) 7. Скрипты автоматизации (.bat)
config-wasm.bat
emcmake cmake -S . -B dist/web
build-wasm.bat
cd dist\web
cmake --build .
cd ..\..
mkdir public\js
set current_dir=%~dp0
copy "%current_dir%dist\web\app.wasm" "%current_dir%public\js"
copy "%current_dir%dist\web\app.js" "%current_dir%public\js"
8. Build and Run 8. Сборка и запуск
Configure and build the project: Сконфигурируйте и соберите проект:
# Configure
config-wasm
# Build
build-wasm
Now, start your local server: Теперь запустите локальный сервер:
# Option 1: Using Node.js (http-server)
http-server -c-1
# Option 2: Using Python
python -m http.server 8080
9. Source Code 9. Исходный код
You can explore the source code and download the complete project directly from the GitHub repository: Вы можете изучить исходный код и скачать готовый проект напрямую из репозитория на GitHub:
Support My Work Поддержать проект
If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.
Sberbank (Russia only) Сбербанк (только для РФ)
Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)
USDT TRC20
Support via Cryptocurrency Поддержка криптовалютой