Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

soooch

7
Posts
2
Topics
1
Following
A member registered Jul 16, 2019

Recent community posts

To use the Metal backend paste this:

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

into the Script Editor and save it as an application.

I made a post a while back about getting the Metal backend working on the Mac version of ASH. At the time, on 1.6, the performance was much worse than you'd expect, and so it wasn't really worth it. With the 1.8 boat update, I decided to redo the tests and now it appears Metal is definitely the better backend for Mac.

Results:

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

Metal performs up to 30% better. Subjectively, it also has less judder at framerates that are close to, but slightly under 60fps. It does have more judder around 30fps than in OpenGL however. 

The one issue with the Metal version is that it sometimes gets stuck in a state where it can't get above 80fps. This can be resolved by going into the settings and toggling between different pixelation options.

One other thing I'd like to make note of is the new color correction option, which appears to slightly desaturate the displayed colors. This leads to different colors in the Metal and OpenGL versions. Since the Metal and OpenGL versions already start with different levels of saturation before any color correction is applied, there are now 4 different levels of saturation available to Mac users. I have no idea which is closest to the artists intent. For more information on how the colors are different in Metal and OpenGL, see my previous post.

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

Well I played with pixelation on for the most part anyways. I just thought it would be an interesting data point. ~50 fps on a laptop iGPU isn’t even that bad a result.

The most annoying part was just the weird judder the Metal version had without vsync enabled, but I played with vsync on, so it didn’t effect me.

Anyways, thank you for the amazing game!

(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?

(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. 

(3 edits)

So in the terminal at this directory, "/Applications/AShortHike.app/Contents/MacOS", using the command "./AShortHike -force-metal" should do the trick?

Is there anyway to check in game what rendering engine is currently running? Also is it definitely "-force-metal" and not "-force-gfx-metal" or "--force-metal"?

Thanks!

Edit: nm, it seems to be working.

Hi! Just got this game in the bundle. It is amazing. I was wondering how I could switch the default renderer back to Metal on my Mac? I can't seem to find the option anywhere in the settings.

I was wondering if anyone knew how to switch to the Metal renderer on Mac. OpenGL works, but I'd really appreciate any extra battery life that Metal could provide.