Previous month:
October 2007
Next month:
December 2007

ianime.jsで「iPhone用落ちゲー」のテンプレートを作成

 iPhone/iPod touch用のアニメーションライブラリianime.jsを作ったは良いが、もう少し具体的なアプリを作らないと、不具合や不足している機能などが見えて来ない。そこで、「さめがめ」「Bejewelled」などのいわゆる「落ちゲー」に共通する部分のみをテンプレート化して実装してみた。

 実際にiPhone上で実行してみると、さすがに、オープニングに80個のアイコンが同時に落ちてくる部分だけは少し重いが、そこから先は比較的サクサクと動く。これならば十分に実用的だ。

 ちなみに、クリックしたときのフェードアウトと、抜けたセルに上からアイコンが落ちて来て一回はねるアニメーションという二つの「アニメ効果」を実現している点や、一つのアニメーションの終了イベント(onEnd)を拾って次の動作をさせているあたり、ianime.jsのサンプルとしても良く出来ていると思うので、ianime.jsに興味のある人はぜひともソースコードを見ていただきい。

 下がiPhone/iPod touchユーザー向けのリンク。

  http://satoshi.blogs.com/ianime/ochigame.html

 そして、Safari/Firefox (そしてたぶんOpera)を持っている人用のデモ。


あるはずのない「カジノでの必勝法」が実はあったという話

 ずいぶん前に「ギャンブルの心理学:攻略法と必勝法」というエントリーで、どうして「パチンコや競馬には必勝法がある」と思い込まされている人たちがなぜこれほどたくさんいるのかについての考察を書いたが、今回は本当の必勝法の話。それも実際にそれをビジネスにしている会社でしばらく働いていたMBAのクラスメートから聞いた話なので、かなり信頼できる。

 ビジネスモデルは至ってシンプル。「カジノが提供するJackpot付きのスロットマシンでの$1の投資に対する期待値が$1以上になったところで人を送り込んでマシンを占領し、Jackpotが出るまでスロットマシンをまわし続けること」である。

 「Jackpot付きのスロットマシン」とは、数台〜十数台のスロットマシンをつなぎ、それぞれのマシンからの売り上げの3〜5%をJackpotに貯めておき、最初にJackpot(特定の数字の組み合わせ)を出したスロットマシンにそのお金を全部払うという仕組み。たまたましばらくJackpotがどのマシンでもでなかったりすると、10万ドルとかのお金が溜まることもある。

 カジノが提供するギャンブルは、長く遊べばかならずカジノが儲かる様に出来ている。スロットマシンでも、ルーレットでも、ブラックジャックでもそれは同じで、$1を投資した時の期待値は原則として$1以下(たとえば97セント)になるように作られている。そのため、一人のギャンブラーを見た時には儲けたり損したりしているのだが、ギャンブラー全員を合わせたら必ずカジノ側が儲かるようにできている。

 フロリダにあるこの会社が目をつけたのは、Jackpot付きのスロットマシンだけに関して言えば、Jackpotに十分にお金が貯まった時に、その期待値が$1をわずかだが上回る瞬間があること。ただし、そんな状態にはなかなかならないので、一個人がそれだけを目指してギャンブルをすることは基本的に不可能。

 そこでこの会社は、低賃金で従業員(主に学生)を30人ほど雇い、携帯電話を渡してフロリダの14カ所のカジノに文字通り「24時間の張り込み」をさせる。そして、どこかのカジノでこの「期待値が$1を上回った状況」が起こると本部経由で全員に連絡が入り、全員がそのカジノに集合してそのJackpotに繋がったスロットマシンすべてを占領してJackpotが出るまでひたすらスロットマシンをまわす。そして、Jackpotが出たらそこでプレーをやめ、ふたたび別々のカジノにちらばって「張り込みモード」に戻る。

 このシンプルなビジネスモデルで、この会社は3年間に300万ドルの元手を、2000万ドルにまで増やしたそうである(それもちゃんと従業員に給料とボーナスを払い、税金も払った後での話)。

 このビジネスモデルがうまく行った理由は、カジノからお金をかすめ取っているのではない点につきる。カジノとしては、この会社がやっていることは十分承知しながらも、直接の被害を受けるわけではないので黙認していたという(厳密には、他のギャンブラーからかすめ取っていることになる)。

 テラ銭がやたらと高い日本のギャンブル(競馬、競輪、パチンコ、宝くじなど)ではこんな仕組みは難しいだろうが、テラ銭がわずか2〜3%の米国のカジノでは、Jackpotのような仕組みの導入のおかげで、こんな「隙間産業」が成り立つのだ。

 ちなみに、最近はこの業界も競争相手が増え、Jackpotに繋がったすべてのスロットマシンの席を全部占領することが難しくなり、あまり儲からないようになってしまったそうである。「マーケットの効率化の法則」(=儲かる産業には競争相手が集まり、いつかは他の産業と同じくらいの利益率に落ち着く、という法則)は、こんなところでもちゃんと働いているようだ。


ianime.js で iPhone のメインメニューを再現してみた

 妙に大きなPNGファイルしか入手できなかったので、ダイナミックに縮小しながら描くという効率の悪いことをしているのだが、iPhoneのグラフィック・プロセッサにとっては楽々であるようだ。

iPhone/iPod touchを持っている人向けのURL

http://satoshi.blogs.com/ianime/test30.html

Safari/Firefox (そしてたぶんOpera)を持っている人用のデモ。


アメリカの大学の典型的な授業風景

 知り合いから転送されてきた「アメリカの大学の典型的な授業風景」がこれ(クリックすると拡大する)。全員がノートブック・パソコンを持っているのは驚くに値しないが、MacBookの比率の高さが驚異的。

 もともとAppleは学校には強かったのだが、チップをIntelに変えてからその傾向は一層強まっているようだ。まだまだ仕事場でのパソコンはWindowsが大半を占めているのが現状だが、こんな学生たちが毎年のように卒業してくる中でその地位を保つのはだんだん難しくなってくるかも知れない。

University


canvas 対 SVG

 先日のエントリーで少し触れたが、アップルがSafariに導入してから、Webkitは当然ながら、Firefox、Operaにも標準採用されて一気に業界標準になりつつあるcanvas。iPhone上のSafariでも使えるし、Googleが先日発表したandroid上のブラウザーでも使えるとなれば、私としては色々とやってみたくなるのは当然。

 問題は、同じく「ブラウザーにベクター・グラフィックスを追加する」という役目を果たすはずだったSVGの存在がこれで怪しくなってきたこと。そもそもが、FlashキラーとしてAdobeが全面的に押していたSVGの戦略的な価値が、AdobeによるMacromediaの買収でなくなってしまったところに合わせた様に来たcanvasの対等。一気に形成が逆転だ。

 SVG派の人たちに言わせると、「SVGは既に業界標準だし、記述型でないcanvasはJavascriptとの親和性が悪い」ということになるのだろうが、そういう正論が必ずしも通用しないのがこの業界。このままの勢いだと、canvasがSVGを押しのけてデファクトになってしまう可能性すら十分にある(あいかわらずIEは蚊帳の外だが、それはひとまず置いておく)。

 とりあえずiPhoneで色々と遊びたい私としては、canvasを使うしか選択肢はないのだが、少しプログラムをしてみた分かったことは、HTML+DOM+Javascriptとは大きく違うパラダイムでのプログラミングを強いられること。HTML+JavascriptのようにDOMを操作してエレメントを「置く」のではなく、WindowsのGDIでのプログラミングのように、関数を呼んで絵を「描く」必要がある。

 「これがSVG派の人たちの批判のまとなんだな」と思いつつ、「それならエレメントを『置く』ことを可能にするライブラリを作れば良いじゃないか」と考えてしまうのが私。まだまだ未完成だが、とりあえず作りかけのデモを下に貼付けておく(Safari/Firefoxjだけで動作確認済み、IEは未サポート)。


ianime.js: iPhoneのCanvasにVector 描画させてみる

 英語ブログの方に昨日書いたのだが、ianime.jsにベクターでのアニメーションをサポートする機能を付け加えた。SVGのようにタグでシェイプを記述できないので、コールバック・ファンクションの形で記述する。

 Firefox/Safari/Operaがサポートし、業界標準になりつつあるCanvasに関しては誤解している人も多いようだが、ビットマップだけでなくベクター描画の機能が付いており、これを使えばFlashでしか実現できなかったことがブラウザー上のJavascriptで実現できる(その意味では、SVGともオーバーラップする部分がある点が少し問題だが、それに関しては別途書こうと思う)。

 現時点で、FlashもSVGもサポートしていないiPhone/iPod touch上のブラウザーでベクター・グラフィックスを使おうと思ったら、これが唯一の選択肢。

 下に貼付けたのはこれを使って「蝶」を飛ばせるデモ(Firefox/Safariで動作確認済み。Operaは未確認。IEはサポート外)。いずれかのアイコンをクリックすると、そこから蝶が飛び立つ。何匹でも同時に飛ばすことができるので、これを使ってiPhoneのベクター描画能力を測定。10匹ぐらいは何の問題もない。iPhone/iPod touchで試したい人は、下のURLで。

http://satoshi.blogs.com/ianime/test24.html


「便利になるとストレスが上昇する」という不思議なジレンマ

週末の夕方。東京都内の広告会社で営業を担当する佐野裕美子さん(23)=仮名=は、仕事を終えると気の合う友人2、3人に携帯メールを送る。 「いま何してる?」 送り終わると、すぐに返信確認。1分、2分、3分…何度も操作を繰り返す。返事が来たら食事に誘う。5分も返事が来なければイライラする。「早く決めたいから、すぐ返信がほしい。自分が待てなくて嫌な思いをしているので、わたしはいつも即レス(即答)です」

【溶けゆく日本人】快適の代償(1) 待てない人々 数分間でイライラ (1/4ページ) - MSN産経ニュースより引用】

 これと全く同じことが、アメリカでBlackberryを持つビジネスマンにも起こっている。私も3年ほど前にしばらく持ち歩いていたのだが、あまりにもイライラするので持つのをやめてしまった。

 Blackberryを持つと会社のメールに24時間いつでもどこでもアクセスできるようになる。その意味では「とても便利なデバイス」なのだが、まさにここに書いてあるような副作用がある。パソコンからメールにアクセスしている限り、1時間に1回ぐらいチェック出来れば十分なのだが、常時接続状態のBlackberryを持つと、それが24時間いつでもどこでもメールが入って来た瞬間に『ブルブル』と知らせてくれるようになる。そうなると、食事中だろうと、ミーティングの最中だろうと、車の運転中だろうと、Blackberryが「ブルブル」とメールの受信を知らせると、どうしてもすぐチェックしたくなるのが人間の心情だ。

 それだけならまだ良いのだが、自分がそんな「常時接続状態」にあると、相手に対しても同じようなレスポンスを期待するようになってしまうから始末が悪い。まさに上に書いてある「5分も返事が来なければイライラする」状態である。特に私の場合、部下との連絡にメールを使っていたため、10分もメールの返事が返ってこないと「なんて使えない部下だ!」とついつい思ってしまい、顔を見たとたんに「さっきのメールの返事が来ないけどどうしたの?」と言ってしまう。最悪な上司だ。

 結局のところ、「便利さ」と「ストレス」を天秤にかけて「Blackberryをあえて持たない」ことを選択した私だが、その時につくづく感じたのは、本来なら人々の生活をより良くするための「便利さ」が逆にストレスを増す方向に働くことがよくあるということ。

 一日に電車が2本しか来ない田舎の駅でなら30分ぐらい電車を待つのになんのストレスも感じないのに、山手線が5分来ないとイライラする。本当に人間の心理とは不思議なものだ。


androidは電気羊の夢を見るか?

 普通はエントリーを書いてからタイトルを決める私だが、今回はタイトルが先。Google の android に関しては色々と書かれているが、携帯電話業界側から見た感想としては、海部さんのこれが一番端的。

そういえば、その昔、シンビアンが立ち上がったときも、日本からもドコモや端末メーカーがわんさか参加して、大騒ぎだったなぁ。で、結局一人、また一人と去っていき、最後にはノキアだけが残った。「デジャヴュ」感。【Tech Mom from Silicon Valleyより引用】

 特にメンバーを見ると、Java VMで飯を食っているはずのアプリックス、BREW OSをWCDMA端末にまで広めようとしているQualcomm、J2ME/MIDPのコンソーシアムに加わっていながら独自のJava(DoJa)で先走ってしまったNTT DoCoMo、つい最近 Sony EricssonのUIQに共同出資したばかりのMotorola、と利害関係が猛烈にぶつかり合っており、どうやってこのメンバー間で協力して行くつもりなのかがさっぱり理解できない。

 「協力」というよりは、「Google が無料でOS+VMを提供してくれるなら一応初期メンバーとして名前を連ねておいて情報をいち早く手に入れる立場にいるのが良かろう」と集まっただけのメンバーに思える。

 ちなみに、「アンドロイドは電気羊の夢を見るか?」はフィリップ・K・ディックの書いた名作SFの題名。映画「ブレード・ランナー」の原作でもあるが、私は本の方が圧倒的に面白いと思う。シリアスSFが好きな人にはおすすめの一冊。


Googleからandroid SDKがリリースされたけれど...

 今朝になってGoogleからandroid SDKがリリースされた。予想通りの独自VM(参照)。それも、Javaのバイトコードではなく、独自のバイトコードであるところがまるでDangerのSidekickと同じ(Danger Inc.とAndyの間で知的所有権の問題はないのか心配になってしまう)。APIが業界スタンダードであるJ2ME/MIDPと異なるところまでSidekickと同じだ。すでに、J2ME/MIDP(業界標準)、J2ME/DoJa(ドコモ独自)、J2SE(SavaJ/Sun)と3種類のモバイル向けJavaがあるところに、さらにもう一つのプラットフォームが加わることになる。10年後にどうなっているかは予想しがたいが、ここ数年はますます混乱することは間違いない。

 ちなみに、ブラウザーはやはり予想通りのWebKit。ただしJavascript VMに関しては特に興味深い情報は発表されなかったようだ(見逃しているかも知れないが)。私がandroidのチームにいたら、「Javascript向けJIT(それもVM向けのバイトコードにコンパイルするもの)を作りたい!」と名乗りを上げるところだ。

 賞金は一部の開発者には魅力的だろうが、実際の端末がまだマーケットにないので、しばらくはビジネスにはなりにくいのが難点。私が個人的にはiPhoneのSDKの方にずっとワクワクしているのは、やはり私自身、iPhoneを持っているからだろう。エミュレータだけでは、どうも盛り上がらない。

 ちなみに、android上のHello Worldはこんな感じ。

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);
    }
}
 XMLでUIを記述することが可能で、その場合はこんな感じ。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:text="Hello, Android"/>

 うちの会社(UIEvolution Inc.)としては、こんな風にプラットフォームが増えることは大歓迎。コンテンツやアプリケーションを作る方としては、すでにJ2ME/MIDP、 J2ME/Doja、BREW、Symbian、Windows Mobileとプラットフォームが乱立するなかでアプリケーション・ビジネスを成功させるのは至難の技。そこにさらに、iPhone、androidとい うプラットフォームが追加されて、誰が勝つのかを見極めるのはますます難しくなったし、アプリケーションの移植コストが馬鹿にならない。「だからこそ UIEngineのようなクロス・プラットフォーム・テクノロジーが必須」というストーリーに説得力が増す^^。


起業の時に意識すべき「会社の存在理由」

 今週末は、たまっていた資料を一気に読破。読み過ぎでいささか食傷ぎみだが、その中に出て来たフレーズで最も気に入ったものはこれ。

Disney's core purpose is to make people happy - not to build theme parks and make cartoons.

 これは、"Building Your Company's Vision (Collins and Porras, Harvard Business Review, September 1996)"の一節だが、筆者が伝えようとしていることは、ディズニーという企業の存在理由は「人々を幸せにする」ことにあり、テーマパークやアニメを作るなどの活動は、その目的を達成するための手段でしかない、ということ。「利益を上げて株主の利益を最大化すること」すら目的ではなく手段である。

 少し前に、「君の夢は」と聞かれた学生が「会社を作って上場させること」と答えたことに対しての批判が書かれており少し物議をかもし出していたが、この学生の発言の問題点はまさにここにある。人間だから欲があるのは当然で、「上場や買収で一儲け」を狙うことになんら問題はないが、それだけが目的では魅力的な会社は作れないという話。

 せっかく会社を作るのであれば、どんなに市場の状況が変わろうと100年ぐらいは通用するビジョンを持って始めるべき、というのがこのフレーズに込められたメッセージ。