Desert Express arrives onto macOS (mostly...)

So I managed to build a macOS version of our game, Desert Express, thanks to a wonderful colleague who lent me her MacBook. Now I just have to figure out how to package it properly.

express_macos.gif

I have never actually used a Mac for more than a couple of hours, so it took a bit of work to get the game built on this new and alien platform :). Despite what can be laughably called my "engine" using SDL, which abstracted away the platform-specific stuff, some code changes had to be made, since LLVM turned out to be more stringent then other compilers and also due to some runtime issues, which did not occur on other platforms.

Of course, these changes were just to get the game working and no new features were added or anything relating to gameplay or content changed in macOS build. What did happen though, is that in the process of adapting the code for LLVM and macOS a crash, that sometimes happened during the game, was fixed. So, interestingly enough, this version turned out to be more stable then the originals for Linux and Windows.

I'm hesitant to backport the corresponding changes to Windows and Linux though, given that said crash occurred not quite often enough for it to be considered a game-breaking bug, especially given the fact that our game, as it stands in the jam version, for better or worse, features no progression and a very short play cycle (under 1 minute), meaning that even if the game crashes, the player can just restart without losing any significant progress.

Anyway, as for the packaging, I used CMake to generate an .app folder, which is, as far as I understand, one way people distribute macOS applications. I know Unity packages its games' Mac builds like that. What I haven't figured out yet is how to properly bundle dynamic libraries, on which the app depends. I understand that it's not quite as simple as Windows, where you can just put all of the .dll files in the same directory as the executable and you're good to go. So until I work out how to make the .app self-sufficient, it will be necessary for players to install some runtime dependencies via Homebrew before launching the .app on their Mac.

If this is not a big deal for you and you'd like to try Desert Express on your Mac, you can do brew install libvorbis sdl2 sdl2_image sdl2_mixer sdl2_ttf boost, then go to our game's page and check out the newly released macOS build.

In the meantime, if any experienced Mac developers have some advice to give on the subject, it would be much appreciated.

Have fun playing all of the wonderful LD games this month!