I have an SDL game that I have deployed on Steam. Currently I am deploying for Linux and Windows and plan to deploy for Mac later.
Recently when I deployed on Linux I noticed that the game wont run because SDL_mixer is missing. From what I understand Steam games should have access to SDL out of the box?
My Linux test machine has SDL2, SDL2_image and SDL2_ttf installed. Are these libraries installed automatically when Steam is installed?
Any ideas on why I’m missing SDL2_mixer on my Linux test machine?
My Linux distribution has only two objects
mygame (executable)
assets (graphics assets folder)
My Windows distrubution has:
mygame.exe (executable)
assets (graphics assets folder)
(sdl)
SDL2.dll
SDL2_image.dll
SDL2_mixer.dll
SDL2_ttf.dll
libFLAC-8.dll
libfreetype-6.dll
libgcc_s_seh-1.dll
libjpeg-9.dll
libmodplug-1.dll
libmpg123-0.dll
libogg-0.dll
libopus-0.dll
libopusfile-0.dll
libpng16-16.dll
libtiff-5.dll
libvorbis-0.dll
libvorbisfile-3.dll
libwebp-7.dll
zlib1.dll
(mingw64)
libgcc_s_seh-1.dll
libstdc+±6.dll
libwinpthread-1.dll
I’m using VS Code for both Linux and Windows. On Linux I’m building with g++ and on Windows with MingW64.
I’ve done a little research online and it sounds like dynamic linking is the best way to go. I’m still having trouble understanding the best/proper way to deploy my game on Steam and hope you may be able to provide some insights.
Some other questions I have:
Should I be using the steam-runtime to build? I’m still a little fuzzy on what the steam-runtime can offer.
Is it correct to be including all these DLL’s in the Windows deployment or is there a better way on Windows?
Getting Started with Linux Game Development (Steam Dev Days 2014) - YouTube (Getting Started with Linux Game Development (Steam Dev Days 2014))
Running SDL2 App on Mac/Linux, that don't have SDL2 installed - static linking? (CMake, CLion)
GitHub - ValveSoftware/steam-runtime: A runtime environment for Steam applications
SDL2/Installation - SDL Wiki
Documentation Home Page (Steamworks Documentation)