Hi there! All my life I’ve only made games and apps for the Windows OS. All of a sudden, since I’m trying to make games, I realized that I still haven’t learned about how games get ported from Windows to Mac and Linux! Can someone please explain how the porting process goes, let’s say from the point of view of someone who only uses C# (or other programming languages) to make games, and then the other from the point of view of someone who uses Unity to speed up the game making process (I believe Unity has some kind of port function?).
If it’s 2D i would use BlitzMax, the tool exists for all three platforms and you only have to alter a few things like choosing a different sound driver, taking care of case sensitivity for pathes, maybe writing a workaround due to driver bugs on a specific system, … If you setup your project upfront properly it’s normally a relative easy process. So option 1 is to use a tool which supports all wanted platforms.
Now if you’re developing a game for instance with a language like C you often use a number of engines, libs (maybe SDL) or frameworks on top of that. Often these third party tools are crossplatform available as well, so you install your compiler/editor, your libs and make it all work together nicely, taking all the system dependencies into account again. Option 2 is to choose components which are available on all platforms or several ones with a similar functionality.
The second option mostly gives you more freedom but you have to take care of more things on your own as well.
If you don’t use Unity, porting from Windows may require you to rewrite your code and compile them with XCODE on MAC or other compilers on Linux.
Alternatively, you can also use the “wrapper” type approach, where a middleware is use to translate the instruction and API calls to the native OS. These includes Cider, Cedega, and WINE.
Thanks for the answers everyone! They’re very informative! Since I don’t even own a Mac, I guess I’ll concentrate on the Windows version of my games. Hmm, maybe for experience, I’ll port a sample game that I’ll make in Unity to Mac and just ask someone who owns one to test it there lol!