# Why are Mac versions of games larger in filesize than Windows versions?

I have browsed many games mainly on itch.io and many developers offer a Mac version of their game along with the Windows version. The Mac version of all those games is significantly larger in file size than the Windows version. Why is that?

• My guess is runtime libraries. Either some of that stuff is statically compiled with the game or included as external libraries along side the game (making both cases for larger game package) or absent from the game because the OS provides certain libraries, thus making it smaller in total. – Sidar May 21 '18 at 14:55

## 2 Answers

I'd suspect that many of these games are using Unity, as it's a popular choice for indie developers on itch.io (my own itch games included)

Scripting in Unity uses Microsoft's .NET framework, a managed environment that makes it easier to write safe code that can run on many different devices. This includes runtime software to manage memory and interface with platform-specific features, a just-in-time compiler to translate IL bytecode into a form the machine it's running on will understand, and numerous libraries to support common tasks.

On Windows, all this is available as part of the OS, so it doesn't need to be included in the game executable. On other platforms, it's replaced by Mono, a cross-platform version of the .NET framework. But Mono isn't built into the OS on Mac or Linux, so we can't count on it being there, and need to package it up within the game download itself to make sure it will work out of the box.

Similar patterns may repeat with all sorts of underlying tech. Windows has historically been a popular environment for game development, so when bringing games to new platforms it's often easier/more reliable to bring along a piece of Windows-like behaviour to build on as the common bedrock rather than change the games' foundations.

I can't say for sure why this is happening, but in the past I've downloaded games for linux, and inside the project (even though I downloaded the "linux specific" folder, and not a has-it-all folder) I could find windows-specific files like .bat or even .exe.

So the only reason I can find, is that most developers focus on windows, and only support other platforms barely enough to have a playable project. So they make a "normal" project for windows, including only files they need, and when it comes to support other platforms they just add a few files, probably for emulation or for converting some files from one platform to another.

It is not the proper way to do it, but as long as the result can be played there's not a big issue.