MetalによってモバイルゲームにおけるiOSの優位性がさらに高まる

昨日の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の最速のポートが出来上がった”、と述べている:

[AppleのMetalで遊ぶのはとっても楽しい。3D APIのこれまでで最速のポートになった。]

iOSデベロッパでスタートアップコンサルタントでもあるNat Brownはブログで、iOSのMetalの性能にはかなわないからAndroidでは新作ゲームが作られなくなる、ということはない、と指摘している。なぜなら、Metalの利用はiOS独自のツールの利用を意味するから、クロスプラットホームな開発を志向するゲームデベロッパは最初から手を出さないだろう、というのだ。

でも、デベロッパではなくゲーマーたちは、いち早く、Metalベースのゲームのグラフィクスの素晴らしさに、気づき始めるだろう:

しかし、Metalに飛びつくきわめて高度なプログラマたちは、ゲームエンジンやフレームワーク、モバイルゲームの95%、いや99%で使われているツールチェーンをメンテしている人たちだ。Unity3DUnreal 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))


iOS 7はiOSを変えたがiOS 8はコンピューティングを変える

Appleは今日(米国時間6/2)大量の新料理を出してきたので、それを消化するわれわれの方もたいへんだ。でもその全体を一望に収めてマクロで見れば、明瞭なものが一つ見える: 実はiOS 8は、昨年のiOS 7に比べてはるかに大きな変化を表している。むしろiOS 7は、ヴィジュアルな変化でユーザや評論家たちをびっくりさせただけかもしれない。

でもその結果、幅広い受け入れと利用という点では、障害がほとんどない。すでに見慣れたUIや、大きく変わった、あるいはまったく新しい機能の数々、それにデベロッパがアクセスできる範囲と深さの拡大も、ルック&フィールの驚天動地の変化がないので受け入れやすい。しかしiOSのプログラミングを支えている土台にはとても大きな地殻変動が起きて、Appleのモバイルデバイス像というものを、いやおそらくコンピュータの概念そのものを、完全に変えてしまった。

モバイルの変化の中でもとりわけ大きいのが、Extensionsパラダイムでデベロッパに与えられる自由だ。これによってデベロッパは複数のアプリ間をつなぐフックを構築でき、デスクトップ的な柔軟性が近似できるとともに、消費者にとってはシンプルなモバイルUXが維持される。

また通知ウィジェットは、デベロッパがこれからさまざまに探求していける、まったく新しい創作の舞台を与える。通知トレイのソフトウェアが、これまでのような、スタンドアロンのアプリのための単なるアドオン、見るだけのもの、ではなくなる。

キーボードをサードパーティのプロバイダに公開して全システム的なインストールを可能にしたことも、これまでそんなことを伝統的に避けまくってきた同社としては巨きな一歩だ。

でもこれらの中でもっとも注目すべき部分は、iOSとMacの連続性を表すContinuityだ。これからは、モバイルとデスクトップをそれぞれ別のもの、別世界と考える必要がなくなるのだ。しかもそれは、Appleのネイティブのアプリやサービスに組み込まれているだけでなく、サードパーティのデベロッパにも公開される。二つのデバイスをWiFiネットワークの共有という形でペアにしてもよいし、ご近所同士ならBluetoothのキューやレンジを利用してもよい。デスクトップ上のSMSや電話の入呼起呼もContinuityになるから、いわばモバイルとデスクトップがシームレスにブレンドされる。しかも、そのための不格好なつぎはぎ細工…MicrosoftのWindows 8的?…は要らない。

iOS 8とOS X Yosemiteで、スマートフォンの使い方ががらっと変わる。しかも表面的な細かい部分ではなく、もっと本質的な部分で。これは、ほかのモバイルOSの最近のアップデートには見られない特質であり、その衝撃と影響は、この秋までどころか、今後数年間持続するだろう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


iOS 8 SDKではデベロッパがA7ハードウェアのグラフィクス機能に直接アクセス–iPhone/iPadが最新ゲーム機並の迫力に

Appleは今日(米国時間6/2)のiOS 8の立ちあげに併せて、このモバイルオペレーティングシステムのための数々の新しいデベロッパツールをリリースした。その新しいiOS SDKをAppleのCEO Tim Cookは、“App Storeのローンチから今日までで最大のリリース”と呼び、APIの新設や更新が4000以上もあることを誇示した。

中でもとくにデベロッパが気に入ると思われるのは…新言語Swift以外では…、Appleが”Metal”と呼ぶ機能だ。デベロッパが、A7プロセッサのグラフィクスやコンピューティングなどハードウェア機能に直接アクセスできること、そういうライブラリというかAPI集のことを、Metalと総称している。同社によると、Metalを使うことにより、グラフィクスや計算集約的な処理におけるオーバヘッドが減り、マルチスレディングの効率も上がり、iPhoneやiPadにおけるグラフィクスの速さと迫力は最新のゲーム専用機と肩を並べるものになる。これにより、描画のスピードは、iOS 7を1とすると、iOS 8ではその10倍になる。

主に2Dや3Dのカジュアルゲームのデベロッパ向けに、SceneKitが新たに提供され、また既存のSpriteKitには、力場やピクセルごとの物理計算や逆運動の計算が加わる。

今日は大方の予想通り健康アプリがローンチされたが、それに併せてHealthKitというものがローンチされた。これを使うとデベロッパは、自分のアプリとAppleの健康アプリとのあいだで、データを交換できる。

このSDKの大きな目玉には、スマートホームデバイスを作ってそれにiOSと通信をさせたい、というデベロッパのためにフレームワークHomeKitが含まれる。また大量のデータ伝送やデータの保存をクラウドを使ってやりたい、というデベロッパのためには、iCloudの無料のAPI集とも言うべきCloudKitが提供される。なおHomeKitに関する詳細な記事がここにある。

CloudKitでAppleは、クラウドをベースとするバックエンド市場に参入するが、ストレージもAPIも無料という点が、既存のサービスと違う。容量制限は、クラウドストレージ1PB、データベース10TB、一日のデータ伝送量5TBだ。どんなアプリでもサービスでも、またユーザがどれだけ増えても、これだけあればとりあえず十分だろう。

今日の発表でとくに目立った機能が、アプリの拡張機能だ。これによりさまざまなアプリが、ほかのアプリへのインタフェイスを露呈することができる。この機能は、サンドボックスに入れられて安全が図られる。この拡張機能を使って、たとえばメールと写真編集アプリとのあいだで写真をやりとりできるだろう。Safariも、この拡張機能にアクセスできる。AppleのCraig Federighiが今日行ったデモでは、Safariの中からBing Translateを呼び出して翻訳をやらせていた。

ついにサードパーティアプリが通知センターの中で自分独自のウィジェットを定義できるようになった。しかも、対話できるウィジェットもOKだ。

指紋認証システムTouch IDも、そのAPIが提供される。つまりサードパーティのアプリが、Appleの指紋認証を使えるのだ。

iOSの写真機能もそのAPIがデベロッパに公開され、それらはPhotoKitというフレームワーク名で総称される。AppleのPhotosアプリも、もちろんこのAPIを使って構築されているのだ。非破壊的エディットやPhotosのライブラリを/にリード/ライトできる機能、またCamera APIによりフォーカス、ホワイトバランス、露出などのコントロールが、デベロッパの写真撮影アプリの中でできる。

iOS 8のベータとそのSDKは、developer.apple.comで登録したデベロッパが利用できる。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Appleの自前のクラウドをデベロッパが利用できるためのクラウドAPI集CloudKitが供用開始

ハードウェアの美とソフトウェアのパワーではどこにも負けないAppleだが、MobileMeやiCloud、Siriなどによるクラウドへの進出は、そのAppleにも大きな欠落があったことを世に示した。

今日のWWDCイベントでAppleは、高度な写真ストレージ/シンクアプリiCloud Driveを発表して、クラウドへの進出がますます本気であることを示した。そしてもうひとつ、デベロッパ向けのCloudKitを忘れてはいけない。

CloudKitは、アプリの作者がAppleのiCloudを利用するための、“実質的に無料の”デベロッパフレームワークだ。これによりデベロッパは、自分のモバイルアプリにクラウド利用の部位を容易に含めることができる。それまではこういう簡便なAPIがなかったから、アプリからAppleのクラウドを利用しようとすると苦労が大きすぎて、ついついMicrosoft AzureやGoogle Cloud Platform、Amazon Web Servicesなどサードパーティのクラウドサービスを利用してしまうのだ。

デベロッパはCloudKit APIのいろんな部分を呼ぶ出すことによって、クラウドの認証、検索、通知などの機能を、Appleと競合するサードパーティサービスを利用しなくても、自分のアプリ上に実装できる。

データのストレージも伝送も、無料で利用できる容量が多くのアプリデベロッパにとって十分に大きいと思われる。無料とは言っても、まだ有料の料金体系をAppleは発表していないのだ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Apple、新プログラミング言語 Swift を、iOSおよびOS Xアプリ開発用に提供

今日のWWDCデベロッパーイベントで、Appleは新しいプログラミング言語、Swiftを発表して満場の開発者たちを驚かせた。この新言語は、Appleプラットフォームの主要プログラミング言語として、Objective-Cを置き換えるものと思われる。

Swiftは、AppleのObjective-C実装と同じLLVMコンパイラーとランタイムを使用するため、SwiftとObjective-Cのコードは同じアプリ内で共存できる。新言語は、現在Objective-Cで使用しているCocoaおよびCocoa Touch機能をすべて利用できる。

すでにObjective-Cに慣れている人には親しみやすいだろう、とAppleは言っており、「手続き部分とオブジェクト指向部分の統合」を狙いとしている。しかし、Objective-Cからの分化は文法だけではない。タプルやオプショナルタイプといった変数タイプが導入されている。また、浮動小数点演算で余りを求める等、Objective-Cには見られない演算子も含まれている。

Appleが発表した新言語のハイライト:

  • Closure(C、Objective-Cのブロックに類似)。関数ポインターを統合
  • タプルおよび複数戻り値
  • Generic
  • rangeまたはcollectionにおける高速で簡潔な反復
  • 構造体でメソッド、エクステンション、プロトコルをサポート
  • 関数型プログラミングパターン。マップ、フィルター等

その他Appleは、変数は使用前に初期化が必須、配列と整数のオーバーフローチェック、自動メモリー管理など、同言語が安全を重視して設計されていることを強調した。

Swiftのサポートは、もちろんAppleの最新Xcode IDEに深く統合される。インタラクティブな “Playground” では、コードの編集や、変更のアプリへの影響をリアルタイムで確認することができる。Xcodeのデバッグコンソールも、Swiftの文法のネイティブにサポートする。

Appleによると、Swiftはデベロッパーに数多くの高速化を提供する。例えば、complex objectのソートは、同じアルゴリズムのPythonプログラムよりも3.9倍速い。つまりPythonの2.8倍速いObjective-Cより速いことになる。

新プログラミング言語の詳細および他の言語との関係については、よく見なければわからない。Appleは、ドキュメントを今日、iBookおよび同社デベロッパーサイトで公開した。

Objective-Cは、新しいデベロッパーにとって取っつきにくい言語であると言われ続けてきた。SwiftがAppleプラットフォームでのアプリ開発をスタートしやすくするのかどうかは注目だが、ドキュメントを初めて見た印象は、明らかにObective-Cよりも使いやすそうだった。

[原文へ]

(翻訳:Nob Takahashi / facebook


Apple、iOS 8をデベロッパー向けに即時公開―一般ユーザー向けリリースはこの秋

今日(米国時間6/2)の午前中のWWDCイベントで、Appleが発表した次期のモバイルOS、iOS 8が一般ユーザー向けにリリースされるのはこの秋となる。

一方デベロッパーは今日からさっそくダウンロードが可能だ。また新しいデスクトップ版OS、OS X Yosemiteも公開された。Appleが一般公開に先立ってOSのベータ版を公開するのはこれが初めてだ。

iOS 8に盛り込まれた数多くの新機能についてはこちらを参照。またiOS 8にアップデート可能なデバイスは下の写真のとおり。

[原文へ]

(翻訳:滑川海彦 Facebook Google+