FL Studio 9

9 月の初旬に FL Studio の最新バージョンである FL Studio 9 がリリースされている。

http://flstudio.image-line.com/

まともな曲作りもしないまま (d:id:Rubeus:20090603) に 9 がリリースされたことにちょっとショックを受けつつ、初めてのアップデートを行ってみた。

FL Studio は「Lifetime Free Updates」(直訳すると生涯無償アップデート) という保障があり、ダウンロード版を購入した場合のみ将来のアップデートにかかる費用が無償になる。BOX 版 (いわゆるパッケージ) を購入した場合は、一つ先のバージョンまでが対象 (8 を購入したら 9 まで) となってしまうけど、「Lifetime updates」の権利だけを後から購入 ($29) することができる。

国内で販売された FL Studio 8 XXL Edition を購入したのが始まりなので 9 までは無償でいけるはず、、、。ということで新しい regcode を発行してみたところ、9 のキーが追加された regcode が生成され、晴れて 9 にアップグレードすることができた。

ちなみに 9 からは XXL Bundle というカテゴリは廃止されて、同価格帯の Signature Bundle というカテゴリに置き換わっている。前述のリンクをみるかぎり、8 XXL Edition (現在では XXL Bundle が正しい) から Signature Bundle へのアップデートは $95 のようだけど、現在では $142 となっている。もしかしてセール期間とかあるのかしら、、、。

肝心の 9 だけど、とりあえず Fruity Dance が地味にアップデートされていることを確認した。

Dream.Build.Play 2009

Dream.Build.Play 2009マイクロソフトが主催するゲーム作品のコンテスト。XNA Game Studio で開発された Xbox360 のゲームが対象となる。

今年で 3 回目となるこのコンテストは今年も豊作。上の動画は今年の最優秀作品である「Dust: An Elysian Tail」。ベルトスクロールもいいけど、個人的には2軸のアクションのほうが好み。

ちなみに作者のサイトにはこちら。

http://www.elysiantail.com/

UX ガイド (2)

UX ガイド を読んでいて特に興味を引かれたのは「デザイン原則」の項目だ。

機能をデザインするのではなく、エクスペリエンスをデザインする

個々の機能をデザインするのではなく、エクスペリエンスを最初から最後までデザインします。そして、製品全体のエクスペリエンスを通して、デザインするに当たって設定した基準を維持します。
たとえば、プログラムのセットアップが使いにくくてバグが多いものであると、ユーザーはプログラムそのものも使いにくくてバグが多いと考えます。そのように考えるのは当然のことです。

何もしなくても適切に動作するようにする

ユーザーは、さまざまなことを設定したり習得したいのではなく、プログラムを使用したいと思っています。初期設定を選択し、最も一般的で重要なタスクの実行方法を明確にしたら、すぐにプログラムが機能するようにします。

シンプルさには開発者の努力が必要

パワーを維持しながらシンプルさを実現するには、内部をかなり複雑にしなければならないことがよくあります。通常、テクノロジーの設計をすべて公開するソフトウェアをデザインすることは、それを秘密にしているソフトウェアをデザインすることよりも簡単です。<中略>

シンプルさには、すべてを構成可能にする代わりに、厳しいデザインの選択が必要です。多くの場合、複雑なソフトウェアは、使ったことがない機能や理解できないほど複雑な機能に価値があるとするユーザーの誤解から生じています。

ちょっと強引かもしれないけど、上記はプログラミングにおけるデザインに置き換えて読むことができると思う。たとえば、多くの開発者が参加するソフトウェア開発において起こりやすい問題として、ざっと思いつくかぎりでは次のような点が挙げられる。

  • 複雑な操作をユーザーに要求している (重複した) コードはないだろうか?
  • 気を利かせて追加してみた機能は、本当に誰かが必要としているのだろうか?
  • あるシステムを操作するために用意されたラッパーは、どうして存在するのだろうか?

どうすればこれらの問題に対処することができるのだろうか?一つだけ確実に言えることは、UX ガイドでも少し触れられているが、実際の経験から得る必要があるという点に注目したい。

UX ガイド

Windows 7 のリリースに先駆けて、新しい Windows ユーザーエクスペリエンス ガイドライン (UX ガイド) が公開されている。

http://msdn.microsoft.com/ja-jp/library/aa511258.aspx

この UX ガイドには Windows アプリケーションをデザインする上で理解しておくべき情報がまとめられており、ページ数はなんと約 800 ページにも及ぶ。

ガイドラインとはいえ、さすがにこれだけの情報量にもなると読むこと自体をためらってしまいそうになるけど、そういった声に応えたかのように概要版 (約 50 ページ) も配布されている。

http://msdn.microsoft.com/ja-jp/windows/ee340680.aspx

これまでに UX ガイドを読んだことがなかったため、とりあえず概要版を読んでみたけど、具体的な例が示されていて興味深い。

以下は「コントロールの位置」で紹介されている例より。

BreakPoint 2009 (3)

以前に紹介した Elevated (d:id:Rubeus:20090707) など実行ファイルのサイズに制限があるデモシーンでは、パッカーというソフトウェアを使って実行ファイルの圧縮が行われている。

wikipedia:実行ファイル圧縮

実行ファイル圧縮(英: Executable compression)とは、実行ファイルを何らかの手段で圧縮し、それをデータとして伸張(解凍)用コードと共に1つの実行ファイルとすること。

圧縮された実行ファイルを実行する場合には、まず伸張(解凍)して本来の実行コードを取り出し、それを自動的に実行する。圧縮していないオリジナルの実行ファイルを実行したのと同じ効果が得られるので、一般ユーザーには区別がつかない。

このようにパッカーは実行ファイルを小さくしてディスクスペースを節約することが目的になるけど、現在の一般的な PC の環境においては実行ファイルのサイズ自体が問題になることはないし、自分が知るかぎりではデモシーンくらいしか使われていないと思う。

ちなみに Elevated は Crinkler というパッカーで圧縮されている。Crinkler で圧縮された実行ファイルを PEiD でチェックしてみると、圧縮されたプログラムの伸張には lz32.dll が使われていることが分かる。lz32.dll を使用している理由を見つけることは出来なかったけど、古くからサポートされていることから考えて互換性のためだと推測される。


伸張された本来のプログラムはメモリ上に配置されて実行されるわけだけど、メモリ上にプログラムを書き込んで実行するという行為は一般的にセキュリティリスクとも考えられるため、Windows XP SP2 以降の OS では DEP によって保護される。(ただし、ハードウェアのサポートが必要)

これに対して Crinkler ではいろいろと改良を重ねていて、現在は Windows Vista までは対応がされているけど、Windows 7 ではさらなる対策が施されたのか、不正終了 (バッファオーバーフロー) により動作しなかった。

ほかにもアンチウィルスソフトウェアによっては、ウィルスとして検出されてしまう可能性があることが挙げられる。仮にパッカーが識別されて (または解析を潜り抜けて) アンチウィルスソフトウェアに検出されなかったとしても、展開されたコード自体に悪意があるかどうかを判断することは難しいため、むしろ検出されたほうが好ましいとも言える。


これらの問題点についてはいわゆる「いたちごっこ」の関係にあることや、パッカーの本質的な役割が現在においてはほとんど役に立たないことを考えると、枯れていく技術であることは否定できないと思う。

だけど Elevated を観ていると、そんなことはどうだっていいと思えるくらいに、ソフトウェアひいては物作りに対する無限の可能性を感じることができる。

BreakPoint 2009 (2)

BreakPoint2009 のデモシーンの中から印象に残っているものを紹介してみる。

Crush

http://breakpoint.untergrund.net/download.php?dir=2009/pc_demo/&file=x-crush_and_flp.zip
PC Demo 部門の優勝作品。まさに王道といったデモシーンだけど、全体を通して完成度が高い。余談だけど、アーカイブを解凍すると msx フォルダが存在する。これは music という意味らしい。scn (scene) や、gfx (graphics) は見たことはあるけど、msx はこれまでに見たことがなかったので、違うものを想像してしまってドキッとしてしまった。

Roadside Picnic

http://breakpoint.untergrund.net/download.php?dir=2009/pc_demo/&file=brainstorm_roadsidepicnic_partyversion.zip
グループ名からして、すごくハードな内容を想像してしまいそうだけど、内容はずっと控えめな感じ。特に後半の BGM と連携したシーンは地味にグッときてしまった。

fr-065: Euphotic

http://breakpoint.untergrund.net/download.php?dir=2009/pc_demo/&file=fr-065_euphotic.zip
実行するとタイトルが「oceanic 64k」になっているけど気にしない。デモのセンスといい、BGM といい、farb-rauash 氏の作品は安心して鑑賞することができる。氏の作品の中では「fr-025: the.popular.demo」が強く印象に残っている。当時流行っていたテクニックを駆使したグラフィックスと印象的なディスコミュージックは、今観ても見劣りしないと思う。


ここで紹介したデモシーンは、すべて PC Demo 部門の作品。本当は PC 4k Intro 部門もチェックしたかったけど、Windows 7 RC では動作しなかったため、鑑賞することができなかった。

BreakPoint 2009

上のビデオは、たった 4KB の実行ファイルだけで動いてしまう「Elevated」というデモシーン。

この「Elevated」は、ドイツで毎年開催されている BreakPoint という、いわゆる「メガデモ」のパーティにおいて、PC 4k Intro 部門で優勝を取った作品。どうみても 4KB とは思えないほどの完成度の高さは、鑑賞を楽しむ以前に圧倒されてしまうほど。

実行ファイルは BreakPoint のサイトか、scene.org からダウンロードすることができる。(26KB!)

BreakPoint 2009 の様子は kioku 氏のレポートが参考になる。

http://kioku.sys-k.net/report/bp2009/index.html