---
layout: post
title: 在MacBook玩游戏的各种方法
tags: [Apple, MacBook, 游戏]
---

  我倒要看看是谁在说Mac打游戏是疯子😡<!--more-->    

# 起因
  自从[用了MacBook Pro](/2023/02/03/mbp.html)以后，我用我以前Windows笔记本的次数越来越少了。虽然性能可能比不上，但是安静和超长续航的体验还是相当不错的。但是我也不是完全不玩游戏的人，有时候闲了也有打游戏的需求，那我如何在不使用Windows系统的情况下打游戏呢？   

# 在MacBook玩游戏的方法
## 原生游戏
  一般来说如果想发挥MacBook的全部能力，那自然是完完全全为Mac设计，不需要任何转换等方法的游戏最好了，这类游戏一般在Mac App Store就能找到和下载，只是绝大多数都不是免费的，我也就下过一款[TouchBrickOut](https://apps.apple.com/us/app/ibreakout/id1582094533)的打砖块游戏，这是真真正正为Mac设计的，不仅原生还要Touch Bar。当然对于大多数游戏来说不会为Mac专门设计，毕竟Mac的游戏玩家比较少。但是能在Mac上原生运行的游戏除了为Mac设计以外，就是开源游戏了。毕竟源代码都有了，想在哪里编译都可以。对于我玩的游戏来说，有几款正好符合这一点，比如[osu!lazer](https://github.com/ppy/osu)，还有之前玩过的[三维弹球](https://github.com/k4zmu2a/SpaceCadetPinball)。   
## iOS游戏
  因为M系列芯片基于ARM架构，所以我的MacBook也可以玩iOS的游戏。这类游戏一般也能直接在Mac App Store上下载到，比如我玩过的[药水制作师](https://apps.apple.com/us/app/%E8%8D%AF%E6%B0%B4%E5%88%B6%E4%BD%9C%E5%B8%88/id950654598)。但其实有很多iOS游戏在Mac App Store上都搜索不到，应该是开发者设置了规则不允许在Mac上使用。对于这类游戏可以在[Decrypt IPA Store](https://decrypt.day/)上下载，并且使用[PlayCover](https://github.com/PlayCover/PlayCover)安装。对我来说，我一般玩[公主连结Re:Dive](https://decrypt.day/app/id1423525213)，以及一些模拟器，比如[XP3Player](https://apps.apple.com/us/app/xp3player/id1064060287)和[ONSPlayer](https://apps.apple.com/us/app/onsplayer/id1388250129)（其实这两款软件可以在Mac App Store上下载，但是都要花钱……所以我就去网上找的ipa文件然后在PlayCover上安装了）
## 使用Rosetta 2的x86游戏
  在M系列芯片出来以前，其实也有不少Mac上的游戏，但是这类游戏可能在M芯片的Mac出来之前就已经开发好了，想让开发者为M芯片做适配显然不大可能。不过macOS有Rosetta 2可以让开发者不需要任何改动的情况下就让游戏在M系列芯片Mac上运行。这类游戏非常多，基本上在Steam和Epic Games上下载的游戏都是x86的，像我用的Epic Games Launcher以及在上面下载的游戏[while True:learn()](https://launcher.store.epicgames.com/zh-CN/p/while-true-learn)都是这样的，不过我玩的这些对性能要求都非常低，所以即使用了转译，但是玩起来并不会卡。
## 基于脚本的Galgame游戏
  很多Galgame都是用一些专用的脚本引擎工具写出来的，例如T Visual Presenter、NScripter还有Ren'Py等等，因为是脚本，所以通常来说很容易跨平台，毕竟它们没有太多依赖系统本身的东西，只要能写出对应平台的解析器，脚本都能运行。像上述提到的XP3Player、ONSPlayer还有[RenPyViewer](https://apps.apple.com/us/app/renpyviewer/id1547796767)就可以运行很多基于脚本的游戏。不过很多Ren'Py游戏都有发行macOS版本，所以一般不需要安装RenPyViewer。只是有可能它们都是基于x86开发的，可能需要用Rosetta 2转译……
## 在网页上运行的游戏
  浏览器作为跨平台最强的解决方法，自然游戏也不例外，能在网页上运行的游戏也很多，像RPG Maker MV制作的游戏基本上都可以在浏览器上运行。我看到有一个[网站](https://amemei-lists.top/posts/49e03169/)就收集了很多这种游戏，他们之前还把游戏放在了GitHub上。不过Github对[Sexually Obscene Content](https://docs.github.com/zh/site-policy/acceptable-use-policies/github-sexually-obscene-content)内容是不容忍的，所以他们在GitHub上的东西就消失了……不过我搜了一下还有一些漏网之鱼，[这个账号](https://github.com/jjbR18)还有这样的游戏可以玩🤣（有效性只限我写文章之前的时间，说不定哪天被GitHub发现就没了）。其实对于这种网页上可以运行的游戏来说，最好下载下来，虽然RPG Maker MV的游戏可以在线玩，但是加载那么多资源，尤其这些文件还是在境外，对国内玩家非常的不友好😆，所以如果想在Mac上玩，可以下载下来，然后在终端那个目录下执行`python3 -m http.server`，就可以打开 <http://127.0.0.1:8000> 下开始游戏了。不过Safari的效果不太行，很多游戏连声音都没有，想玩还是下载Chrome之类的浏览器比较好。   
## 使用Wine🍷游玩Windows游戏
  除了相对比较原生的办法，不太优雅的办法就是用基于Wine的各种东西了。其实我之前不太想在MacBook上使用Wine的，因为一般如果是Linux系统在ARM芯片上运行的话需要用QEMU User模式模拟x86，然后再运行Wine，效率极其低下，还不如用虚拟机呢（虽然听过Crossover，不过我当时以为它是按这种方式的，而且还要收费😂）。不过macOS不太一样，它有Rosetta 2加持，效率比QEMU User模式高太多了，虽然是两次翻译但是毕竟有黑科技还算是能玩。尤其是前段时间出的Game Porting Toolkit，据说很厉害，所以前几天我根据[这个教程](https://www.applegamingwiki.com/wiki/Game_Porting_Toolkit)安装了一个，编译的时候第一次听到我的MacBook风扇转😂。试了试效果确实不错，找了个Unity3D的游戏可以满帧率运行。虽然很不错，不过我又去网上搜了搜，发现我是**，有个开源的软件[Whisky](https://github.com/Whisky-App/Whisky)不需要编译任何东西，就可以使用Wine和GPTk，而且配置也很简单，还能使用DXVK，而且因为是已经编译好的，不需要安装依赖，也不需要源码之类的东西，我通过上面教程安装的大小要4个多GiB，但是这个就只要1个多GiB，还不需要考虑乱七八糟的东西。   
  经过我的实测，GPTk（其实就是D3DMetal）兼容性更好一些，效率也更高，但是占内存很大，DXVK似乎效率低一些，但是占内存比较小，因为我的MacBook只有8GiB内存，而且我玩的游戏在哪个上面都能跑满帧率 ~~（反正3A大作我也不可能在MacBook上玩，估计M2的水平也玩不了……不如说我基本上不玩3A大作🤣）~~ ，所以我在玩游戏一般还是会用DXVK多一些，除非打不开才会用D3DMetal。   
## 使用虚拟机游玩Windows游戏
  因为我的MacBook只有8GiB内存，而且硬盘也只有256GiB，跑虚拟机压力实在是太大了，我以前试过[UTM](https://github.com/utmapp/UTM)，但是玩不了游戏，随便什么游戏都会卡的动不了，当然也可能是UTM的显卡驱动不太行，不过现在的话我也不想尝试其他虚拟机了，所以我只能说强烈不推荐使用虚拟机玩游戏。   
## 云游戏方案
  这种方案直接就不在本机运行了，流畅程度全看网络和连接的主机性能。我以前也写过一篇[关于云游戏的体验](/2021/09/28/cloudgame.html)，在这里就不多赘述了。

# 感想
  这么看来MacBook玩游戏的方法挺多的嘛，谁说一定要Windows才能打游戏呢？我觉得说在macOS上打游戏的人是精神病的人自己才是精神病吧，谁也没有说买MacBook就是专门拿来打游戏的，那些人就是觉得买Mac亏，估计还很穷吧🤣。   
  顺便一说，有个叫[AppleGamingWiki](https://www.applegamingwiki.com/wiki/Home)的网站上记录了一些比较大的游戏在M系列芯片上的兼容性，如果真的有想在Mac上打游戏的想法，也可以去这个Wiki上参考一下。