2013年06月19日

なぜ Apple は Sprite Kit を作ったか、そして、Cocos2d にとって何を意味するか

cocos2d や KoboldTouch で有名な Steffen Itterheim 氏による Sprite Kit に関する記事を直訳してみました。 オリジナルはこちらです。 なお掲載にあたっては、Steffen Itterheim 氏の許諾をいただいております。

なぜ Apple は Sprite Kit を作ったか、そして、Cocos2d にとって何を意味するか

On June 13, 2013, in idevblogaday, by Steffen Itterheim

もしあなたがニュースを見ていないなら: Sprite Kit は Apple の 2D レンダリングエンジンでゲームに使われ、他の新しい API の中で単に言及されるだけの形で WWDC 2013 で iOS 7 と一緒にアナウンスされました。 Apple にとっては小さなステップかもしれませんが、ゲーム開発者族にとってはとても大きな跳躍となるでしょう。 これはあらゆるものを変えていくのです!

多くの人が Sprite Kit と Cocos2d-iphone を比較しています。 なぜとは聞かないで欲しい、彼らはそうするのです。

もしあなたが Apple developer に登録しているのであれば、 Sprite Kit Programming GuideSpriteKit.framework reference をあなた自身でチェックできます。

Sprite Kit は NDA のもとで管理されており、それは iOS 7 の残りの部分と同じようであって、そのため私はここで詳細について書くつもりはありません。 私は、 list of strengths and weaknesses of Sprite Kit をデベロッパフォーラムにポストしており、そこで自由に詳細について議論できます。

ここでいくつかの質問に答えてみようと思います: なぜ Apple は Sprite Kit を作ったのか、そしてなぜ今?

とても重要なこと(訳注:別の意味かも): Apple はゲームを認めた!

Apple はついに彼らのプラットフォームにとってゲームが重要であることを理解したのです! Sprite Kit はその事実に対する証左でしょう。 実に喜ばしい!

特にもしあなたが噂されている Apple TV セットについて考えているのであれば: 想像してみて下さい、テレビセットがあって、そこで iOS が走っていて、あなたのゲームをダウンロードし購入するための App Store があることを。 興味深いことに、 iOS 7 はまた、Xbox や Playstation と一緒に手にするようなジョイパッドを想起させる 3rd パーティのゲームコントローラに対する API を追加しています。

それらを全部つなぎ合わせると: Apple の TV デバイス、 App Store 、そしてゲームコントローラ − ジャジャーン − Apple の競合は Xbox One や Playsation 4 であることがわかるでしょう!

Apple にとって、インディーズの流入は素晴らしいものであり、Apple は確立されたビジネスモデルについて心配する必要がなく、そうして Apple はインディーズをクローズドなプラットフォームから閉め出す必要はなく、なぜなら大きなパブリッシャが幸せであり続けるようにするためであり、すなわち彼らがトリプルA級の何百万ドルもの予算のタイトルとガレージゲームを単純に競合させたくないからです。

Apple にとって素晴らしいのは、マス(mass)の中には、いつもわずかに、きわめて優れた、イノベーティブで、市場競争力があり、配信される売上駆動タイトルで、そしてついでに言えば、他のプラットフォームでは動かないようなものがある、ということです。

もし Apple TV が技術的にもまた十分能力が高いことが明らかになり、さらにトリプルA級のタイトルのための競合するゲームデバイスとして大手のゲームパブリッシャによって受け入れられるようにマネージされることになれば、Microsoft, Sony そして特に任天堂は大きな問題を抱えることになるでしょう。

ハードウェアとソフトウェアの互換性

私はこれ(互換性)が、Apple が Sprite Kit が存在すべきと確信することを必要とした主な理由の一つであると考えており、なぜならそれは、新しい Apple のハードウェアで(リリース)初日から機能してほしいからです。 (Apple によって)パブリッシュされた既存の Sprite Kit ゲームは、 "iTV" に移植することが非常に容易になるはずで、他のデバイスが登場してもそうでしょう。

そして新しいソフトウェアをリリースするにあたってあなたはどのような互換性問題も抱えることはなくなるし、 Sprite Kit はそつなく新しいバージョンの Xcode, iOS, OS X あるいは Apple が変更するであろう他のソフトウェアに対して動作するでしょう。 そういったことはあまり起こらないかもしれませんが、事前通知や適合させるための十分な時間が準備されるでしょう。

cocos2d-iphone では、SDK の変更に適応し、新しいデバイスや、オフィシャルの(安定した)リリースで見つけることのできる互換性の問題をサポートするのに、通常であれば数ヶ月を要したでしょう。

特に二の足を踏ませるのは、 cocos2d は今でもラベルされているように、"安定版" vs "非安定版" をリリースしており、 それにもかかわらず、 安定バージョンは最新のテクノロジでは動作せず、非安定バージョンでは動作するという、意味の喪失がしばしば生じている、ということです。

Sprite Kit によってこれらの諸問題が解決されることを、私は嬉しく思います。

頼もしい API

cocos2d-iphone はここ数年の重要な機能を追加されているにも関わらず、継続して変更されてきています。 実際に、新しいバージョンが出るたびに、デベロッパにコードを変更してもらわなければならないような変更を公開しています。

過去数年の個々のリファクタリングの選択はおおよそ良かったと思いますし、高く評価もされましたが、 完全にオーバーホールする代わりに 他のものとの間で徐々に改善していくことは、 広くサービスされたゲームエンジンを悩まし続けています。 それは骨が折れますし、不満も高まります。

現時点で考えるに、 Sprite Kit は概して今のままとなるでしょう。 もしあなたが Sprite Kit が頻繁に改良されることを期待するなら、考え直した方が良いでしょう。 今見えているものが、ほぼ最終的な API であり、 Sprite Kit が今から3年経っても90%はそのままでしょう。

これは良いことです! それは知識の半減期を意味し、チュートリアルや書籍が増えるでしょうし、とにかくものすごくそういう感じになるでしょう。 私が思うに、だいたい3-9ヶ月だったものが、1-3年かそれ以上になるでしょう! このことは、 Sprite Kit を習得するのをより容易にし、デベロッパは、チュートリアルを書き、質問に答え、サポートフレームワークを作るなどして、Sprite Kit を提供していくでしょう。

ネイティブのままであれ、XXXX(訳注:dammit)!

Sprite Kit は、 Apple がデベロッパに言うにはネイティブ API が使えるということであり、特にゲームに取っては今まさにそうだということです。 クールな 2D ゲームであってiOS 上でだけ動くもの、理想的には iOS 上で のみ可能である ものが、 Apple が我々から見ていきたいものとなります

Apple はデベロッパが Apple のプラットフォームにどれだけ忠誠を尽くしているか知っている - Apple のデバイスとシステムのユーザとちょうど同じように - それで Sprite Kit は成長しているゲームデベロッパのベースにおける投資になるわけです。

cocos2d-iphone はまだ現時点でもっともポピュラーです、 iOS だけのゲームエンジンとしては - しかしここ数年で Zynga は Javascript エクステンションによるクロスプラットフォームに移行していますし、さらに開発の焦点を cocos2d-x に合わせてきています。 このことは cocos2d-iphone ユーザの興味のあるところではないし、クロスプラットフォーム開発によって希釈されつつあるもっともポピュラーな iOS エンジンについて Apple がハッピーになるとも思えません。

Sprite Kit は、 iOS や OS X に釘付けしたゲームデベロッパを安心させ、納得させ、流し込み続けるための Apple の手段です。 それは、 Apple がどのようにしてデームデベロッパが Apple のデバイスやコンピュータのためにゲームを生み出すかを制御するものです。 意味するところは:エレガントにそして効果的ではありますが、ソースコードなしに "lock-in" されるということでもまたあります。

それでもまだ他のゲームエンジンを使う理由がありますが、これはハードコアプログラマによって共有されるだけの欲望でしょう。 それは Apple が Sprite Kit でターゲットにしているような層ではないでしょう。

もしあなたがまだあなたの Sprite Kit ゲームを Android に移植できるようになりたいと思うなら、 Apportable があります(訳注:日本語訳したページはこちら)。 疑いなく、彼らはあっという間に彼らのサービスを Sprite Kit コンパチにしてくるでしょう、 なぜなら Sprite Kit はどこにでもある安定したターゲットとなるであろうからです。

なぜ今?今である理由が理解できない、でしょ?

なぜ今なのか? おそらく、 Apple がかつて感じたのは、 Zynga がApple 支持を急に取り下げたと感じていて、それは Zynga が cocos2d 開発指揮を始めた頃(2010-2011年頃)でした。 Sprite Kit はもっと早くできたかもしれないが、私が想像するに cocos2d のクロスプラットフォームへの移行が最初に起きなければならなかったのではないかと思います。

それと、 ゲームが iOS にとってどれだけ重要で、iOS の成功にとってどれだけ有益であったかは認識していたはず - ただ皮肉にも Apple が Steve Jobs のもとで早い段階で認めてもらえなかったかもしれないということはあったかもしれません。

他のこととしては、 ネイティブレンダリングエンジンからの大きく利益をもたらすであろう Apple のパイプラインに含まれるこの TV デバイスを Apple が有しているということであり、 特にもしそのことが、多くの既存ゲームが容易に移植されることができることを意味するのであればそうであるし、 考えてみると、そのことは Xbox One, Playstation 4 や Wii U と競合するということでしょう。 さらに考えると、cocos2d-iphone が Apple TV サポートを行うのにどれだけ時間がかかるかということでしょう、それが仮にあったとしても。

タイミングは理にかなっています。 Apple は我々にサービスするためにいるわけではありません - 我々が利益を得ているのは素晴らしく好ましい副作用というわけです。 でも彼らは悪魔というわけでもありません。 今こそが単純に Sprite Kit のタイミングであり、なぜならそれは Apple は新しいマーケット(TV とゲームコンソール)上でイノベーションを準備しているからであり、それは2007年以来初めてのことですが、そのマーケットでの成功は、かなりの割合でゲームに依存しているからです。

Sprite Kit とそのリリースのタイミングは、現実主義以外の何物でもありません。 これが私の愛するポスト Jobs の Apple です。

Cocos2d、それは思われるほどビギナーフレンドリーでは到底ない

cocos2d がビギナーフレンドリーであると知られるようにどうしてなったかというと、もともとは OpenGL とだけ比較されていたからでしょう。そうだとすれば、確かに、 OpenGL よりは簡単でした、申し分なく。

もしあなたが過去に他のゲームエンジンで仕事をしたことがあるなら、 cocos2d の API は望まれるまま多くを残しており、とても分かりやすく、他に比べてエレガントであることが分かると思います。 cocos2d デベロッパが全く同じ問題や概念とほぼ毎日格闘しているのを私は知っています - 多くは、2009年に私が直面したのと同じ問題です。 簡潔で、一貫していて、完全なドキュメントはどこにも存在していなくて、新しいユーザエクスペリエンスは何からあるいは誰から学んだかに依存し、非常にばらついています。実に嘆かわしい。

Sprite Kit はビギナーフレンドリーです。 それは典型的なほどよくデザインされ、きれいに整えられ、小綺麗な API であり、あなたが Apple に期待した通りです。 また最新で完璧であろう素晴らしいドキュメントもあります。

しかしもっとも偉大な恩恵は、あなたが本当はそれ以上考える必要がないということにあります。 すなわち Sprite Kit があなたの面倒をみてくれるということです。 多くの初心者 cocos2d デベロッパが気づくことなく、能力を必要とせず、すべきことに興味をもつ必要がないということです - 本当にビギナーフレンドリーなフレームワークは、ユーザにとって代わることが仕事なのです。Sprite Kit がなすこととはそういうことなのです。

Apple はまっさらなスレートで始めて、 Sprite Kit API をデザインすることに腐心してきました。 あらゆるものが可能な限り小綺麗に共倒れしていきます。 私が強く印象を受け、納得させられているのは、 cocos2d に対する Sprite Kit は、手動でリファレンスをカウントすることに対する ARC のようなものだということです。

踏み石理論

Sprite Kit から"アップグレード"してくる cocos2d 開発者の来たる世代のために、 Sprite Kit が踏み石になるということを期待してはいけません。

Sprite Kit で始めようとしている人、それから cocos2d を試している人は、cocos2d が混乱しており、一貫性がなく、時代遅れで、ドキュメント化がひどい状況で、不必要に複雑で、とんでもなくひどい手作業を要求されることに気づくでしょう。 これはアップグレードではなく、後退です。

iOS 7 の採用は 90% をマークするほどにリーチしており、cocos2d-iphone に固執する理由はほとんどないでしょう。 我々は cocos2d-iphone がゆっくりと偏在化するのを過去5年にわたって見てきましたが、cocos2d-iphone がレガシープロジェクトになるのはたった5ヶ月かもしれません。 相対的に短い時間で、cocos2d-iphone の大多数が、 Sprite Kit や cocos2d-x や他のものに移っていくでしょう。

cocos2d-iphone が今日的な意味を帯び続けるための唯一の方法は、Sprite Kit の利便性に適合している間に Sprite Kit を超える強さに焦点を合わせることです。 それは巨大な時間の投資となり、そのようなことをすることを給料なしでやるのはまずあり得ません。

3D ゲームはどう?

Sprite Kit は、名前が暗に示すように、2D のみです。それではなぜ 3D には対応しないのか?

なぜならそのフィールドは本当にビギナー向けではないからです - そしてこれはどちらの道もあります: Apple 内のデベロッパと Apple 外のデベロッパです。 3D レンダラは、 Unity や Unreal technologies やそれらにつながる優秀なツールチェーンと直ちに競合し、比較されることになります。 スクラッチから作ってそれらに競合するのは非常に厳しいですし、ゲーム開発分野に対する新規参入組であり、それに興味があるというわけでもない Apple について(特に)そうなります。

正直になりましょう:App Store 上に偉大な 3D アプリが多く存在するというわけではありません - 特にインディーズからのものとしてはありません。 もっとも私が覚えている 3D ゲームは、 id Software, Epic, Ubisoft そして EA からのものです。

賭けてもいいですが、 iOS ゲームの80%は 2D であり、もしくは 3D ゲームでさえ、3次元の中を実際に移動できる本当に 3D なものの数は多くありません。 3D ゲームは3次元要素をもっており、より困難で、より高価で、作成するのに時間を消費します。 3D ゲームは悪名高くもビジュアル的にアピールするように作るのが難しいとされており、特に同じゲームの代替となる 2D バージョンと比べたときにそのようになります。

2D ゲームは2007年に iPhone が紹介されて以来のルネサンスでした。 TV セットとさらに新しいモバイルデバイスはそのようなトレンドを終わりにはしないでしょう。 3D ゲームは巨大なゲームデベロッパとパブリッシャによって支配されており、3D ゲームこそが、インディーズの製品と彼ら自身とを容易に差別化できる唯一の道なのです。

Sprite Kit の採用

Apple がゲーム用のレンダリングエンジンを実装したら、あらゆる人が Sprite Kit を採用していくでしょうし、短期間で Sprite Kit エキスパートや、コードに対するアドオン、ツールが増え、それは cocos2d エキスパートやコードに対するアドオンやツールよりも増えるでしょう。

Zynga は素晴らしいゲームエンジンを作ることで Sprite Kit に加わりませんが、彼らにとってエンジンとは、彼ら自身の(少なくとも操れる)技術をもってクロスプラットフォームゲームを効率よく開発するという彼らの目的に対する手段なのです。 だから彼らは、cocos2d-iphone や Sprite Kit ベースのエンジンを追っかけもしないしサポートもしようとはしないのです。

通常の iOS 採用レートと新しい iOS デバイスの売上の伸びが分かれば、ほとんどのデベロッパは否応なく2014年中に iOS のサポートを打ち切るでしょう。そのため、バックワードコンパチの問題は(あらためて今一度)長くは議論されないでしょう。

プログラミングオリエンテッドなゲームデベロッパは、以下のような選択をすることになるでしょう: Sprite Kit を使い、全ての道具立て(Objective-C, ARC, ネイティブ API)を使って完全に Apple ネイティブな世界に行くか、"メンテナンスモード"にある年老いた cocos2d-iphone 馬に乗るか、です。今から一年であなたはどちらを選択しますか?

代替案:ひどく厄介ですが、クロスプラットフォームを開発する - すなわち、Unity や Unreal のような能力過剰な 3D テクノロジを使い、ローレベルで扱いにくい C/C++ ゲームエンジンを使うか、もしくはある程度パフォーマンスを犠牲にして Javascript もしくは Lua を使うか。

私は信じていますが、 Sprite Kit を使うという選択は多くの人にとってむしろ自明でしょうし、"Apple 製品"である Sprite Kit であればなおさらですし、たくさんの役立つソフトやツールに否応なく囲まれていくでしょう。要は最終的にはそういうことです。

Kobold Kit: Sprite Kit ゲームエンジン!

私は Kobold Kit に取り掛かり始めており、それは Sprite Kit 上で拡張したゲームエンジンとなります! 今度の KoboldTouch 7.0 は Kobold Kit をそのレンダリングエンジンとして cocos2d-iphone の代わりに使うことになるでしょう。

Kobold Kit は iOS 7 がリリースされる当日に有効になるでしょう。 KoboldTouch 7.0 は同日かその後なるべく早くに有効になるでしょう。 言うまでもなく、 KoboldTouch 6.x は進化し続けますし、サポートされ続けますし、 iOS 7 で動作しますし、 cocos2d-iphone を使い続けるでしょう。

私は信念をもって一つのことを考えています:Kobold Kit は一生に一度の何か偉大なものを作る機会であり、それは成し遂げられ、そして私は他の何かを作ろうとは思っていません。 もし私が深くすっかり納得させられたことがあったとしたら、これこそがそうなのです! cocos2d-iphone の上に2つのエンジンを構築してきて、まっさらなスレートから始める機会を得て、 cocos2d に同調させるためにしなければならなかったはずの全ての不愉快なものごとを回避しつつ、私が cocos2d でできなかったことをできるようにしながら、学んだ全てをぶつけることができて本当に嬉しいのです。


FruitsFields - 寄付代わりに購入いただけると嬉しいです。
Icon-72.png as_available_appstore_icon_20091006.png

サポートページはこちら。
http://cbbandtqb.toypark.in/FruitsFields/index_jpn.html

posted by cbbandtqb at 23:03| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。