昨日のWWDCでは2時間のキーノートで大量の発表が行われたが、その中にゲームデベロッパ向けのものが3つあった: SceneKit、SpriteKitの新しいファンクション、そしてiOS上のハイエンドゲームのパフォーマンスを大幅に上げるMetalフレームワークだ。中でもMetalは、AndroidというOSの性格上、Googleには逆立ちしても真似できないものだ。
Metalはデベロッパに、OpenGLよりも“もっとメタル(metal, 金属==ハードウェア)に近い”一連のファンクションを与える。OpenGLはいわばグラフィクスの標準ライブラリとして、iOSだけでなく、MacもAndroidもMicrosoft以外のゲーム機も使ってきた。しかしデベロッパがMetalを利用すると、グラフィクスのハードウェアをダイレクトにコントロールでき、システムのオーバヘッドが少なくなるためパフォーマンスはより高速になる。
ただしMetalは、グラフィクスのパフォーマンスをぎりぎりまで上げたいというデベロッパにしか、あまりメリットはない。しかもゲームのデベロッパたちも今では“ゲームエンジン”をベースに仕事をすることが多く、MetalのようなAPIを直接使って低レベルのグラフィクスコードを毎回一から書くことは、あまりない。だからデベロッパが関心を向けるのは、MetalでもってiOSゲームの、どこがどう変わるのか、という点だ。
実はゲームエンジンの制作者たちはすでに、Metalを利用するエンジンを作り始めている。昨日は、Unity3DのレンダリングのグルAras PranckevičiusがTwitterのツイートで、同社のエンジンにMetalを組み込むことによって“うちの3D APIの最速のポートが出来上がった”、と述べている:
Playing around with Apple #Metal was super fun btw. Fastest port to brand new 3D API ever. #unity3d—
Aras Pranckevičius (@aras_p) June 02, 2014
[AppleのMetalで遊ぶのはとっても楽しい。3D APIのこれまでで最速のポートになった。]
iOSデベロッパでスタートアップコンサルタントでもあるNat Brownはブログで、iOSのMetalの性能にはかなわないからAndroidでは新作ゲームが作られなくなる、ということはない、と指摘している。なぜなら、Metalの利用はiOS独自のツールの利用を意味するから、クロスプラットホームな開発を志向するゲームデベロッパは最初から手を出さないだろう、というのだ。
でも、デベロッパではなくゲーマーたちは、いち早く、Metalベースのゲームのグラフィクスの素晴らしさに、気づき始めるだろう:
しかし、Metalに飛びつくきわめて高度なプログラマたちは、ゲームエンジンやフレームワーク、モバイルゲームの95%、いや99%で使われているツールチェーンをメンテしている人たちだ。Unity3DやUnreal Engineなど数社がiOSとAndroid両方のモバイルゲームを支配しており、これまでは両プラットホームとも、OpenGL ESの比較的共通のコアをターゲットにしてきた。
そのため、Metalのおかげで大量のデベロッパがiOS国へ移民する、ということはありえないだろう。今ではデベロッパは、APIのレベルではなく、エンジンやフレームワークなどの高級なツールを使って仕事をしている。しかしMetalがiOSのパフォーマンスを高めることによって、ユーザやゲーマーたちの大量人口移動を起こすことはありえる。
Metalフレームワークと同様のものは、ほかのプラットホームにもある。AMDのグラフィクスチップ上のMantleや、MicrosoftのWindowsやXboxプラットホーム上のDirectX 12などだ。ただしAMDもMicrosoftも、これらのフレームワークを核とするエコシステムを完全にコントロールしていないから、状況は複雑であり、特定のハードウェアを対象とする最適化も、それほど徹底できない。
たとえばAMDはとても多様なグラフィクスコアを作っていて、それらが、PCハードウェアのほとんど無限ともいえる構成において利用されている。またDirectXも、CPUやRAM等々の無限の多様性に加えて、グラフィクスチップの多様性にも対応しなければならない(AMD、nVidia、Intel等々)。
つまりこれらのフレームワークは、Appleにできるほどのレベルでは、特定のハードウェア向けの最適化ができない。AnandtechのRyan Smithが、今朝(米国時間6/3
)、こんなことを書いている:
これまでの低レベルAPI、たとえばAMDのMantleやMicrosoftのDirectX 12は、前者は他社のCPUやOSも顧客にしなければならないハードウェアベンダのAPIであり、後者はサードパーティのCPUやGPUに対応しなければならないOSベンダのAPIだ。これらに対して、Appleの羨ましい立場とは、単独かつ自力で、完全に垂直なエコシステムを築けることだ。Appleは、CPUも、SoCの構成も自社製、OSも自社製だ。GPUは他社製だが、これも過去7年間Imagination TechnologiesのPowerVRを独占的に使っていて変える様子もない。
iPhone 5sもiPad AirもiPad miniも、すべて、同じA7のSoCを使っている。今年の機種はA8を共有するだろう。Metalは一連のハードウェアに対して同一の最適化が可能であり、多様なモバイルデバイスの上で同じゲインを稼げる。
Androidハンドセットの多様性にはそれなりのアドバンテージがあるが、多様なメーカーの多様なハードウェアに対して、GoogleがMetalと同レベルの最適化(==特定単一のハードウェア固有の最適化)を図ることはありえない。今後、スマートフォンの進化に対するゲーマーたちの期待が、ますます欲張りになってきたとき、Metalによってゲームの世界がどう変わるか、それが見ものだ。
[原文へ]
(翻訳:iwatani(a.k.a. hiwa))