Pofat 的話
WWDC22 落幕,不知道大家都是如何度過這個屬於蘋果開發者的嘉年華呢?
這期不講 WWDC 新技術和重點,就和大家分享我的感受和腦洞。
關於有效吸收 WWDC 資訊的策略,強力推薦最新一期 13 的 Apple 開發者電子報。
豐富又帶玄機的 WWDC22
往年 WWDC 有比較明顯的大小年之分,大年會有較多的新功能,小年修 bug 和升級性能居多,今年則兩種內容兼備,非常豐富。我想這對開發者們來說是好事,因為只要使用者升級意願高,開發者們就坐著享受 Apple 福利😎 ,幾年看下來的心得是,往後改善性能類型的專案最佳執行方法就是把週期拉到一年以上,然後等待新系統出來後升級即可。
👻 Swift Is Now Everywhere
事情是這樣的,如果你還是個只有 Objective-C、C 或者 Objective-C++ 的守舊專案,仍然還在思考什麼時候該導入 Swift 的話,新的 OS 很貼心地直接由第一方幫你導入了喔!(新 OS 的 Foundation 裡面包含 Swift )
另外為了展示 Swift 在多平台的野心,今年的 session 中不經意地提起 Swift 已經被用於獨立處理隱私安全的晶片 Secure Enclave 上。
去年宣佈的 16 個新 framework 中有 8 個是 Swift only 的,今年 Apple 更直接用行動說明 iOS 16 / macOS 13 開始,他們想在 SDK 裡哪用 Swift 就用!
🎮 未來的新遊戲主機 - Mac with Apple Silicon
Mac 不高的市佔率、不友善的遊戲開發環境和不成功的策略導致了幾次闖蕩遊戲界的失敗嘗試,因此一直是被認為不適合遊戲的平台。有趣的是,微軟的鎮店之寶 Halo 在一開始其實是由 Steve Job 公開宣傳要做為 Mac 獨佔的遊戲,最後失之交臂讓 Halo 反成為微軟 Xbox 的重要基石,以下是 1999 年在 Macworld 的介紹影片:
M1 上市時,Gaming on Mac 的願景隨即出現在我心頭,很香的性能、相對安靜無比的風扇與某節目勸敗勸敗了一年多低發熱度帶來了大幅買氣,2022 Q1 全球 PC 略顯疲態時,Macbook 還是逆風成長 。
這樣一個仍成長且尚未被(成功)開發的市場,擁有著過剩的繪圖運算能力,加上各主流手把都已經被 Mac 支援(感謝 Apple Arcade),這對遊戲廠商難道不是跨入 Mac 圈的吸引力嗎?後期推出的 M1 Max 運算能力和頻寬還更勝 PS5 :
當然我也明白,硬體能力最大的不代表就會有更好的遊戲表現,就好比肌肉最粗的人不代表就能在舉重比賽得勝,而做為關鍵角色的 API framework Metal,初代的表現實在就是,沒有表現。
This really is a new day for gaming on the Mac.
然而 WWDC22 keynote 中在老王賣瓜般地說明全新的 Metal3 可以更快,處理更多細節後,驚人的畫面出現了,是惡靈古堡八 (Resident Evil: Village)啊!雖然不是第一款移植作品,但看到夫人和克里斯出現在 WWDC 著實令玩家們無比興奮啊!卡普空(Capcom) 身為平台多元化的模範表率(舉凡 PC,Xbox, PS,Switch 以及 Oculus 等都有涉足),實在是很適合做為 MAC (再)進軍遊戲業前打響第一槍的合作伙伴。
除此之外,SharePlay 也為未來的遊戲體驗帶來了想像空間。前幾天 13 才帶我一起體看 session 影片,我腦中已經浮現下班後我們用 Stage Manager 切換到遊戲連線,然後打 FaceTime 叫喬喬看我們打遊戲講幹話,Gaming on Mac 的美好未來就要到來。
如果這麼美好就好了。
以上都是我對於未來的期望,只寫這樣八成會有人寫信來說這痴人說夢啊!
我也清楚眼前仍有許多難關,而最根本的問題還是:「廠商願意在 MAC 開發遊戲嗎?」
雖然 2021 年蘋果在遊戲領域的收入排名全球第三,僅敗於 Sony 與騰訊(微軟在收購暴雪後直接相加營業額可能會讓 22 年的排名改變):
Apple 並未公佈各項收入的佔比,不過我們應該都很清楚絕大多數收入還是來自於 IAP,即所謂的手遊。這種遊戲的形式是完全不適合在 MAC 上遊玩的(對於主機玩家的我來說,手遊比起遊戲,更像是精心設計的成癮心理學商品),看到目前一攤死水的 MAC 遊戲市場,這些開發商們會貿然跨入嗎?主機遊戲的開發商就算不用改變遊戲型態,但移植又何嘗不是件痛苦的事?
想像一下老闆跟 iOS 工程師說:「把這個 Android 的介面在 iOS 上實現一下。」
更別說目前 Macbook 本質上是「我有 Macbook ,有過剩的效能以及很讚的新螢幕,希望能順便玩個遊戲」,與 PC 和主機的「我買來專門打電動」之間就有不小的落差。
要克服這個落差,Apple 恐怕要拿出更多誠意或用更大的力道來推進才能成,至少要有微軟不惜重金推動 XGPU 的力道,比如買個 EA 之類的或者讓 Metal 進化到擁有非用來開發不可的誘因。
未來雖不明朗,但今年的 WWDC 讓我又再度期待著某些可能性。
如果有天遊戲和 Mac 間的高牆倒下,我相信 Chris Redfield 就是那揮動關鍵一槌的肌肉大棒子,如果有那麼一天。
Swift 新聞
🥴 Protocol 語法恐再改,some
要移除!?
電子報主軸還是要有,本周論壇裡最熱烈的討論來自於是否要省略 some
這個關鍵詞。
Swift 裡原先 Protocol 的混亂設計來自於其做為 existential container 的語法和一般型別宣告相同:
let foo: P
所以才更改語法以和型別宣告做出區隔:
let foo: any P
而 some
的用法則還是指「某一種遵循 P 的具體型別」,如果又用回原本的語法能夠理解,因為仍然是用於「指示型別的語義」。
語義正確又省打字是件好事,但實際執行上則是另一回事,如果牽涉到 public 的範圍,就代表要大家一起同步更新才行。
無論如何,現在還是早期討論,且可以從中觀察大家對設計介面的不同想法,頗有意思。
Pofat 選推
整合 WeatherKit 的 demo,但重點其實是在展示用 Metal 做的炫炮視覺效果吧?
ARKit 6 讓你在房間裡觀星和極光。
Regex 的泛型叫什麼?
我就說今年會有 SwiftUI inspector 吧?