2014-08-02

任天堂の使っている自由ソフトウェア

任天堂ホームページ:任天堂製品に関連するオープンソースソフトウェアのソースコード配布ページ

任天堂がひっそりと、自社製品で使っている自由ソフトウェアを公開している。

残念ながら、彼らはオープンソースという誤った用語を使っている。オープンソースというのは誤った運動であり、誤解を招きやすい用語だ。自由ソフトウェアという用語を使うべきである。

WiiUや3DSのファイルは相当に大きいので落として確かめていないが、Hacker Newsによれば、改変版Webkitとか、MSVCでコンパイルできるようにしたBluetoothライブラリとかだ。バーチャルコンソールにはMozillaのnanojitが使われているらしい。

WiiUのバーチャルコンソールがサイズも小さいので実際に落として確認してみたところ、nanojitが入っていた。

気になるのは、マリオカート8に使われている、BluetoothのSBCコーデックのライブラリだ。COPYINGをみるとGPLとなっている。ただし、COPYING.LIBをみると、LPGLとなっている。これはどういうことか。

ソースコードの著作権表記によると、どうやらSBCライブラリはLPGLで、そのライブラリを使ったsbcdecとかsbcencとかがGPLらしい。なるほど、sbcdecやsbcencはそのままマリオカート8に使うわけでもないし、任天堂が使っているのはLGPLのSBCライブラリだけなのだろう。

まあ、残念ながら、あまり面白いことはない。少なくとも、任天堂はCとC++を使っているということが明らかになっただけだ。

任天堂の秘密主義は本当に危険だ。私は任天堂のハードウェア用のプログラミング環境について、ほとんど知らない。どんな言語を使っているかすら、推測するしかない。これは、任天堂が馬鹿げたNDAを結んで、情報を公にしていないからである。

しかし、ガラケーの黒歴史で学んだように、我々は公開されていない情報から学ぶことはできない。公開されていない情報は見つからないからだ。公開できない情報は、他人と相談することができない。他人と知識の共有ができない場合、何とかひねり出したクソみたいな方法を、ノウハウだと勘違いしてしまう。

ガラケー時代は、ライブラリのインターフェースすら公開することができなかった。しかし、公にならない情報から人は学べないのだ。

そんな状況で、どうやって優秀なエンジニアを雇うというのか。情報が公開されていない場合、外部の人間は学ぶことができないので、新たにエンジニアを雇おうとしても、任天堂のハードウェア上のプログラミング経験は一切ないド素人を雇わなけばならないわけだ。いかに優れたエンジニアであっても、任天堂のハードウェアに関しては、学ぶ方法がないのだからド素人だ。全く経験したことのないハードウェア、ツール、ライブラリを学ぶのには、時間がかかる。何と無駄なことをしているのだ。

任天堂が落ち目なのも、当然だ。

それに、もはやゲーム専用機の時代は終わった。なぜゲームしかできない機械をわざわざ持たなければならないのか。今や筆者を除く誰もが持っているスマートフォンは、十分な性能を備えていて、クッキークリッカーやハイパーオリンピックぐらいなら余裕で実装できる。ハイパーオリンピックは、当時おおはやりしたゲームである。クッキークリッカーは最高のゲームである。そして、今はソシャゲというクッキークリッカーやハイパーオリンピックが流行っている。そう、ゲームの本質はクッキークリッカーやハイパーオリンピックだったのだ。あれでよかったのだ。自分の行動がゲームに良い成果となって現れるだけでよかったのだ。そこの深い技量など正確で高速な入力だのは、必要なかったのだ。自分の行動には、課金も含まれる。もはやパッケージを売って利益を上げる必要もないのだ。必要なのは継続的な課金するほどの価値の提供であって、高価なパッケージの抱き合わせ商法や品薄商法や限定版商法ではないのだ。

ところで、筆者は最近、ゲームをした。

Xibalba

未来からやってきたオールドスクールなシューターだ。久しぶりにいいゲームをした。

CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0

10 comments:

Anonymous said...

オープンでないから、落ち目なのは当然というのは、
オープンだった時代に隆盛だったとか、
オープンな他社が隆盛になった、
などの比較がなければ、
単に濡れた犬を叩いているとか、
オープンな立場ゆえのポジショントーク、という印象を与えるように思います。

ゲーム業界には詳しくないので、比較するまでもない常識レベルの前提とかであればすみません。

Anonymous said...

書いてある事をそのまま読めばいいのでは。
理由もちゃんと書いてあるんじゃないでしょうか。

Anonymous said...

あることしない=あるデメリットがある
という説明に過ぎません。
すべてはトレードオフがあります。

落ち目という根拠につかうには、それが決定的な影響を与えている、という根拠がいります。
その一例が、例にあげた比較の話です。

Anonymous said...

なんとなくですが、
「当然だ」などと書かずに
「宜なるかな」とでも書いておけば
何の問題もなく読み飛ばされていた様に思います……。

Anonymous said...

元コメの人間です。
一応私自身の見解は「オープン化推進賛成。クローズドにデメリットがある点も賛成。ただし任天堂の最近の凋落をクローズドさに求めるのはさすがに牽強付会でしょう」といったところです。

>「宜なるかな」とでも書いておけば
>何の問題もなく読み飛ばされていた様に思います……。

ごもっともです。
ただ独立した1行として書いているので、読み飛ばして欲しい点ではなかったと思いますけどね。

Anonymous said...

昔は「ファミリーベーシック」があって、ファミコンでゲームの自作ができた。

ところで、任天堂のみならず、ソニーもダメだと思う。

ただ、理由には、PS(n)はゲーム作るのにコストがかかり過ぎることがあるのに対して、
任天堂の方は確かに、製作がクローズドで、楽市楽座的な携帯端末と異なって作品を出しにくいことは、有ると思う。

Anonymous said...

>昔は「ファミリーベーシック」があって、ファミコンでゲームの自作ができた。
今でもDSi/3DSで同じようなものがありますよ

Unknown said...

I really enjoyed the information you have posted here and I am glad to read about it. microsoft office 2010

mist said...

任天堂は落ち目、完全に間違い。
ゲーム専用機は2017年も売れている。
コンピュータ<任天堂商品
NDAを結ばないガヤに公開する必要なし。

said...

非公開だから学習できないなんというのは できない人の言い訳でしかない。

できる人は、どんなプログラムであろうとも組める。

ハードウェアの信号の動き、CPUの動きメモリの管理、すべてを理解しているから。

ASMは癖はあるしCPU依存だから何とも言えないけど、Cを組める人ならC++であろうとJavaであろうともVisualBasic .netであっても、どんなハードウェア構成であろうとも、どんな言語であろうとも 要求仕様さえわかれば、プログラムなんて組めるものです。

OSがどんなものであっても癖が違うだけでやることは一緒だから。

プログラムを開発するっていう0から1を生む出すそのものでしかない。

勉強しなければわからないってのは、プログラマではなく、ソースコードを見てもわからないクレーマーでしかない。

開発するんだから0から1を生み出して当たり前。

だからプログラマーを名乗ることができると思います。