本の虫

著者:江添亮
ブログ: http://cpplover.blogspot.jp/
メール: boostcpp@gmail.com
Twitter: https://twitter.com/EzoeRyou
GitHub: https://github.com/EzoeRyou

アマゾンの江添のほしい物リストを著者に送るとブログ記事のネタになる

筆者にブログのネタになる品物を直接送りたい場合、住所をメールで質問してください。

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

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

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

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

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