Behind the Screens: Is Mac for Game Dev?
Image created using Microsoft Designer

Behind the Screens: Is Mac for Game Dev?

You may already have an answer prepared. It's obviously Windows, right? How can you make games on a platform that doesn't allow you to play games? Thank you for reading and have a good rest of the day.

The answer to this easy question is not so easy, I'm afraid. As with everything, there are pros and cons of both and it also depends on the software you use. I have not crunched any numbers or run benchmarks. The contents of this article are based on what I've experienced using Unity and Unreal on Mac and Windows.

Let us begin by talking about the specifications of each of my systems:

On one hand, I have a 14" MacBook Pro with the base M1 Pro chip, 16 GB of unified memory and 1 TB SSD. Having the new arm-based Apple silicon, I cannot speak for the older Intel-based systems.

On the other hand, I have a Dell laptop with a Ryzen 5800H, RTX 3060 Ti, 16 GB of DDR4 3200MHz RAM and 512 GB PCIe NVMe SSD.

Here's a little background on the new architecture of Apple computers.

Is ARM the new Intel?

Not really. No. Intel and ARM developed different architectures for processors and until recently, were used for different categories of devices. Intel is renowned for its x86 architecture, whereas ARM is known for its ARM architecture.

Intel has been making desktop and laptop processors for many years and has also started venturing into GPUs (there was that time they made mobile SOCs for Asus phones, back in the day). The ARM architecture has been powering a large catalogue of devices such as TVs, smartphones, smart speakers and even the Raspberry Pis of the world, through contracts and licensing deals.

Up until a few years ago, Apple was using Intel CPUs for their laptops and desktops, which means that all apps were written with the x86 architecture in mind. That all changed in late 2020 when they announced their new ARM-based chips, the infamous M1, (I'd like to call them processors but they are more than that –?they are more akin to SOCs) for MacBook Air and 13" MacBook Pro, followed by M1 Pro and M1 Max for 14" and 16" MacBook Pros (interchangeable). They have been releasing new versions of their "Apple silicon" SOCs from time to time. At the time of writing, they have reached the M3 series.

Changing the architecture of the silicon that powered their computers required app developers to rework their apps in order for them to work properly and as intended. This required time and Apple offered a solution for the devs that had not yet updated their apps to support the new ARM architecture –?software emulation via Rosetta Stone. This allowed Intel-based (or rather, x86-based) apps to run on these new computers, while devs around the world worked towards releasing native apps.

Now that we have been caught up with the backstory, let us talk about game engines.

Unity

The experience of using Unity on the M1 Pro is very good. It is fast, snappy and has been properly optimised. This did not come as much of a surprise, as Apple had invited Unity on stage to showcase how well it runs on the new architecture during their unveiling event, back in 2020. 2D and 3D projects open up and load fast, code compiles faster than my Windows counterpart and builds are equally faster –?for MacOS, Windows and even Android. Load times will, of course, scale with the complexity and size of the project.

A strange thing I noticed was that, while making subsequent builds for Mac, it would remember the folder location, whereas when building for Windows, I would need to manually navigate to the folder location each and every time I wanted to make a build. If somebody knows a fix, please let me know in the comments.

The experience of using Unity on Windows is largely dependent on your system specifications. A good gaming laptop/desktop can handle most things you throw at it, as long as those things are within range (running Unity while you have Flight Sim open, with a few browser tabs running 4k video streams will put a dent in your performance, needless to say, which is also true for Mac).

I did notice slower compile and load times, but those things can be improved with a better processor and faster memory speeds.

Along with Unity, you might also want an IDE to write your code, unless you are one of those legendary programmers who uses Notepad++ or gedit (I salute you). Visual Studio for Mac, VS Code and JetBrains' Rider have all been properly optimised for the M-series and I had no trouble running them. Again, the load times will vary based on system specifications.

For source control, GitKraken also works very well with its native app, or you could go ahead and use terminal commands.

Unreal

This is where the story gets interesting. Unreal Engine is part of the reason why I dived into the backstory of Apple transitioning from x86 to ARM, a while ago. Up until Unreal Engine version 5.2, Epic had not made a native Unreal Engine version for the M-series computers, which means that engine versions including 5.1 and below run on software emulation. The problem here is not with Rosetta. As good as it is with emulating applications, the issue is with the process itself. Emulation is often taxing for any system and thus harms the application's performance; it adds a header. I often noticed worse performance, as compared to versions 5.2 and beyond.

5.2 was where they finally made a native version of Unreal Engine, but this did not make waves. At least, not in my case. A game that I am working on only runs at 30 FPS while playing in the engine on Mac, but will result in 60+ FPS after building it. I understand that the engine adds a performance header for the system, but this does not happen on Windows.

Unreal 5.3, as of writing this, is unstable for Mac. Performing simple tasks such as duplicating or deleting nodes from my blueprints sometimes results in the application crashing. The silver lining here is that I have become used to saving my code every 5 seconds, or so.

One other major problem I continue to face is that I cannot figure out how to enable force feedback on my controllers. This might not seem as big a fault until you are designing, testing and implementing force feedback for your games, at which point you are out of luck.

Speaking of controllers, here is an interesting observation. The DualShock 5 controller will work both ways on the Mac: wireless via Bluetooth, or a simple USB connection. The Xbox controller, on the other hand, will only work via Bluetooth.

The blueprint compilation time is roughly the same as that for Windows, no changes there. You are in luck, however, if you plan on using C++ for your project, as the Mac will noticeably compile code faster than the Dell. The new M-series chips are, in general, faster at compiling code. Compile times, however, are largely dependent on your system specifications: faster processors, and in some cases, depending on the size of your project, faster memory will certainly boost up compile times, regardless of the platform.

You may come across multiple people saying Windows is slower at code compilation as compared to Linux or MacOS and while I did notice it personally, my dataset was not large enough to draw conclusions.

On the source control side of things, Perforce has a native client for Mac and it runs wonderfully. I did face a slight inconvenience, however: the client would automatically create a new workspace and change into it every time I used a different WiFi connection, which meant that I manually had to change workspaces before beginning work, whenever I was at a different location.

The gaming situation is changing on the Mac, however, with more and more developers porting their games over. Some major titles to have native versions include Baldur's Gate 3, Lies of P and Resident Evil. Here is a website that lists some more titles: Mac M1 Games: Native & Rosetta 2 supported games

Needless to say, the list will grow.

Everything I talked about today was based on my own experience, observations, engine versions and projects. Your mileage may vary.

This article was inspired by the creation of these games, and the problems I spoke of were genuine problems that I faced:

CurseBreaker: Bringer of Death –?a 3D game made using Unreal 5.3. Still in development.

Speedzza! –?a 2D game made using Unity

Go With The Flow –?a 3D game made using Unity

CurseBreaker: Lock and Load –?a 3D game made using Unreal

要查看或添加评论,请登录

Harsh Koranne的更多文章

  • Can Games Kill Companies?

    Can Games Kill Companies?

    Intro We have all heard of Intel, AMD, Qualcomm and possibly even ARM, if you’re the keen one. There is, however…

  • Are Game Engines Only Meant for Games?

    Are Game Engines Only Meant for Games?

    The age-old question, eh? Well, the truth – my friends – is more complicated than a simple yes or no. Well, here’s the…

    2 条评论
  • Engineering Student + Game Developer?

    Engineering Student + Game Developer?

    So, the million-dollar question: do you need to study engineering to be a game developer? Short answer, NO. Still here?…

    1 条评论
  • History of Unity3D

    History of Unity3D

    Unity was founded in Copenhagen, the capital city of Denmark, by Nicholas Francis, Joachim Ante and David Helgason. It…

    1 条评论
  • Piracy

    Piracy

    Ho ho ho, it’s a pirate’s life for me. ???????????? At some point in our lives, I’m sure we have all had the urge to go…

  • Apps that Compliment Game Dev

    Apps that Compliment Game Dev

    So, you have probably heard by now that learning the concepts of a game engine isn’t enough if you want to make waves…

    1 条评论
  • Lighting Properties

    Lighting Properties

    In an earlier article, we discussed colour properties. Today, let’s talk about lights.

  • Next Gen Gaming

    Next Gen Gaming

    PS5 and the Xbox Series X/S have been released, and you can even buy one - if you can find it in stock! That can only…

  • Colour Properties

    Colour Properties

    Holi is the festival of colours here in India and it is only fitting to talk about colours during the celebrations…

  • Prince of Persia

    Prince of Persia

    The original Prince of Persia trilogy (Sands of Time, Warrior Within and Two Thrones) was massively successful…

    2 条评论

社区洞察

其他会员也浏览了