Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(2 edits)

So I appear to have it working. I get about 30% better performance with Metal vs default OpenGL. The performance difference is actually more complicated than this. See the chart in my below post.

If anyone else is trying to do this, paste this:

do shell script "open -a '/Applications/AShortHike.app' --args -force-metal"

into the Script Editor and save it as an application. 

(+1)

Glad to hear it's working! Thanks for sharing. Just out of curiosity, what is the FPS difference between the builds?

(7 edits)
Resolution: 2560x1600 |  GPU: Iris Plus 655 | Settings: MaxedOpenGL (fps)Metal (fps)
On Fishing Ship + No Pixelation + vsync~35~52
On Fishing Ship + No Pixelation +  no vsync~50~52*
On Fishing Ship + Default Pixelation + no vsync~180~100*
Clump of Trees near Debt Guy + No Pixelation + vsync40-49~53
Clump of Trees near Debt Guy + No Pixelation + no vsync50~54*
Clump of Trees near Debt Guy + Default Pixelation + no vsync~130~120

*There was some really weird judder for these Metal results, it felt like it was running slower than real time

Really weird results actually. I only did the first test earlier, which lead me to believe Metal was strictly superior, however OpenGL performs pretty well in some situations, which is odd given how poorly supported it is on macOS. In particular, without vsync on, the Metal implementation was practically unplayable. Additionally, OpenGL seemed to benefit significantly more from pixelation.

Also, after doing some testing with the Intel Power Gadget, there is no appreciable difference in power consumption for the two runtimes. One actual difference is the color management (or lack thereof in OpenGL's case). The Metal version of the game targets sRGB, but the OpenGL version just outputs to the Mac's native gamut.

OpenGL outputs to the native gamut

OpenGL outputs to native gamut


Metal outputs to sRGB

Metal outputs to sRGB

These images may appear the same if viewed on a noncolormanaged OS or on a sRGB monitor. Basically the OpenGL version is much more saturated than the Metal version, and perhaps not the best representation of your artistic intent?

I've updated the results after the recent update, and the numbers are now very different. Metal now performs significantly better*, with up to 30% higher framerates. Additionally, the Metal version no longer had judder issues at 60fps, though it did have some issues at 30fps.

Unfortunately, OpenGL seems to have regressed. Framerates slightly below 60 are completely unplayable. If the framerate is at 58, for example, it's necessary to lock fps to 30 for the game to stay responsive.

*Sometimes the Metal version gets stuck in a weird state where it can't get above 80fps. This can be solved by going into the settings and toggling between different pixelation options.

Resolution: 2560x1600 |  GPU: Iris Plus 655 | Settings: PerfectOpenGL (fps)Metal (fps)
On Fishing Ship + No Pixelation + vsync~5760
On Fishing Ship + No Pixelation +  no vsync57~65
On Fishing Ship + Default Pixelation + no vsync~230~300
Clump of Trees near Debt Guy + No Pixelation + vsync~5760
Clump of Trees near Debt Guy + No Pixelation + no vsync57~60
Clump of Trees near Debt Guy + Default Pixelation + no vsync
~200~250