demoscene.jp Japanese demoscene portal

Evoke 2011 レポート(kioku編)

これはEvoke2011参加者であるkiokuのレポートである。

●前夜祭(8/10)
午後11時kioku宅にqさんくる。
出発前にプロジェクタで調整。
PCのディスプレイとプロジェクタでは見え具合がが違うので
可能なら最終調整はプロジェクタで行った方がよい。
特に暗部はプロジェクタでは見えづらい。
(デモによってはBigscreenオプションとかあるものは
ガンマなどを変更することによって暗部をもちあげ、
プロジェクタでPCディスプレイと同様に見えるようにするものもある)
デモへの熱意で暑すぎてpants off.

●フライト(8/11)
結局前日徹夜したまま出発。
とりあえず曲は完成したことにしたが、
描画周りはできるものの、どういうデモの流れにするか
決定できていない。うーむ。
Qさんいわく、「ホテルで直前まで調整のトモヒロさんメソッドですよ!」(*注釈
デスクトップで開発していた、プロジェクトをノートPCにコピーして出発
とりあえず、ビルドのテストはしたので大丈夫だとおもっていたが、
飛行機に乗った後、曲データをわすれたことに気がつく。
(オリジナルの曲データはないが、4klangが出力した、objファイルがあるので
ビルドする分には問題ないが、曲の編集ができない)
このことは後で大変後悔することに・・・。

Qさんが、横浜駅で迷子になる。
時間ギリギリ。
とりあえず、空港でチェックイン。
受付のお姉さんに「チャーリーチャーリー」2名様だといわれる。
なんの隠語だろうか?

ささっとゲートをくぐり、おみやげのJapanese Sakeを購入。飛行機に乗り込む。
Qさんは飛行機が離陸するときに最悪の可能性を考え、おびえていた。
いや、今気にすべきは飛行機が落ちることよりもデモが完成してないことではないか!?

飛行機では眠かったが、映画を1本みて、あと爆睡。
やべー。まだデモできてない!

●ICEで移動
フランクフルトにつく。Breakpointにいったときは長距離用列車のIC/ICEにはのらず、
近距離用電車にのったので、IC/ICEの駅は初めてである。
プラットフォームまで結構遠いな・・。

ホームに行く途中で切符を購入。
ホームに着くと10分遅れているとのアナウンスがあった。
しばらく電車を待っていたが、10分すぎても時間になってもいっこうに来ず。
ホームがかわった気配もない。
プラットフォームの表示には次の時間の電車が表示されてしまう。
まわりの乗客も困惑気味。
しまいには、となりに座っていたお姉さんに、
今表示されてる電車でケルンHbfまでいって乗り換えればいいのよといわれる。
IC/ICEは日本の新幹線みたいなものだが、基本自由席である。
もちろん指定席もかえるが、座る席は自由席と共通で、
指定席の客が増えると、自由席の客は座れなくなるし、
自分が席に座っていると、その席の指定の客がきたら、その席をゆずらないといけない。
指定かどうかは、席の上に表示されるようになっているようだ。
ICEの時間は約1時間。フランクフルト空港駅からは場合によっては一駅である。

ケルンホテルにつく。
レオナルドホテルに宿をとった。
今回は会場で寝泊まりせずに、宿を取ることにした。
ホテルは2人で平日は59ユーロだったが、金、土は118ユーロだった。
やはり金、土は高いな。

ホテルについて、コーディング開始。
(Qさんはサブディスプレイ持参・・・ゴクリ)

デモサブミットのデッドラインを調べたら、
翌日だとおもっていたが、翌々日だった。
余裕だと思い、1時くらいに寝る。

●パーティ開催1日目(8/12)
20時にオープニングセレモニー開始予定だったので、
19時くらいにいく。まだあまり込んでいない。ぼちぼち。

sgtruckさんに挨拶。2年ぶりである。皆でビールを飲む。ドイツビールうめー!
ここでのんだビールはケルンのビールである。

Evokeパーティのオーガナイザをやってるm0dさんともTwitterをフォローし合ったりした。
フリー(タダ!)ソーセージを食べながら、オープニングがはじまるのを待つが、
なかなか始まらない。2時間くらいディレイした。
右がBBQのテント。

しばらく待っていると、qさんのデモの曲担当のBrainstormのParsecさんに会う。

●オープニングセレモニー
<iframe width="560" height="345" src="http://www.youtube.com/embed/wYLH6P5Zs2M" frameborder="0" allowfullscreen></iframe>

ここで、今日はどうせオープニンングだけで帰るからと、ホテルから
PCをもってこなかったことを後悔した。
やっぱあった方がいいね。

というわけで、レオナルドホテルに泊まっている人たちと一緒に
23時くらいにタクシーでホテルに戻る。
徹夜でコーディング開始。6時くらいに寝る。
qさんは眠いというのでホテルに戻り即効就寝。3時に起きるといっていたが、
実際には3時半におきた。(というか、俺が起こした。)
俺は4時くらいに寝た。

●パーティ開催2日目(8/13)
6時に起きる。AMホテルでコーディング
(が、俺はなんだか眠くて、半分眠りながらコーディング)
シエスタから起きたら、Qさんがドヤ顔で、超進みましたよ!といっていた。

9時ごろである。
そろそろやばい。今日の20時がリミットである。
だいたいシーン構成は決まったが、現在の容量が4300バイトくらいある。
まずい、このままでは4096バイトにおさまらず、4kIntroとして出せなくなってしまう。
かれこれ、昨日の晩からshaderのサイズを切り詰めまくっているわけだが、
30文字くらいけづって、10バイトくらいしか減らない。
曲データは手元にないので、曲データを減らすことは不可能・・・。
シーンを減らすか・・・!?いやそれだとしょんぼりな感じに・・。
とりあえず、可能な限りシーン間で共通化できるデータをまとめていった。

10時ごろである。
もう削るシェーダ文字がない。いくつか試した結果、shaderを1300文字くらいにおさめないと4096バイトを超えてしまうようだ。
もう

#define C float4
#define P float3

とかしてたし、shader関数も2文字になっていた・・。
これ以上むり・・・。

ここでQさんがつかっているというShader minifier を使うと、
とても賢いことをしていて、小さくなるという・・・。

以前まではGLSL miniferだったが、最近HLSLにも対応し、
Shader minifierになったらしい。
俺は今回はHLSLなので、GLSL minifierは使えないと思っていたが、
使えるという噂をきいて、早速シェーダファイルをつっこんでみた・・・。

結果からいうと、食えなかった。
独自に定義した、ジオメトリシェーダの構造体が食えないようだ・・。
詳細までは追ってないが、今回はD3D11だし、まだいろいろ対応できていないのだろう。
今回はジオメトリシェーダは必須なので、Shader minifierはあきらめることにした。

10:30
とりあえず俺はcrinklerに頼ることにした。
それまで圧縮のオプションをFast/Slowでは試していたが、
あまりサイズが変わらなかったので、当てにしていなかったのだが、
いろいろ試行した結果、iteration回数を指定するところで、
ORDERTRIES: 1000と指定していたところをORDERTRIES: 50000にした。
結果は100バイトくらい小さくなった。
これはすごい。ただ、圧縮時間がFastでも5分くらいかかる。
だが、これでもまだサイズは4122バイトだった・・・。あぁつんだわ・・・。(*注釈

11:30分ごろ
サイズが減らないと、悩んでいた俺にqさんがつぶやいた。
「曲データをバイナリエディタでいじればいいんじゃないですか?
V2シンセのようなv2mとかならなんとか・・・
でも4klangのようなobj形式だと無理か・・・」
俺はVisualStudioで4klangが出力したobjファイルを開いた。
・・・
バイナリデータを眺める。
・・・
シーケンスデータらしいところを発見した。
今回は幸いなことに自分で作曲したので、シーケンスのだいたいの並びを
覚えていたので、シーケンスデータ部分をながめると、だいたいどのパートの
シーケンスデータか予想できた。
俺は中盤の1つのシーケンス部分のデータを64バイト分を 00 で埋め尽くすことにした。
その結果、crinklerで、圧縮した結果は4072バイトになった。
これはいける!
最終的に、
音楽データ: 126バイト(インスト)+7168バイト(シーケンス) --> 416バイト
shader: 2937バイト --> 1351バイト
となった。
crinklerのオプションでは ORDERTRIES:10000 である
ORDERTRIESオプションは大きくすればするほど小さくはなるが、
ある程度限界があり、1000->10000では数十バイト程度小さくなることもあるが、
10000->20000では圧縮時間が2倍になるのに対して、数倍としか小さくならない。
20000->40000ではさらに倍の圧縮時間ではあるが、2バイトほどしか小さくならない。
この処理は並列で処理されるので、CPUのコア数が多いほど高速であるが、
Core2Duo 2GHzのマシンで、ORDERTRIES: 10000で、5分ほどかかった。
時間をかけたからといって劇的にかわる訳ではないので、開発初期のころは1000で十分である。
(デモ開発後期の4KBに収まらなかったときの埋蔵金てきに使おう!)

13時頃開場に向かう。
Qさんが14時からセミナーがあるとかいっていたが、
実は13時からだった。会場についたが、セミナーをやっている
風ではなかった。後からわかったが、別の部屋でやっていたらしい。

会場で、readmeや解像度別のバイナリを作成し、パック。
無事17時ごろにサブミット成功した。
あとからわかったが、解像度が1920x1080および1024x768のときのほうが
1280x720および1600x1200よりも20バイトほど多くなった。謎である。
パーティ会場の席で最後の調整を行うqさん。

・・・

●コンポ
そして、コンポがはじまった。
コンポの作品についての感想はここには書かない。
あくまでパーティについてのレポート参加のレポートにしておく。

発表作品のライブ録画が後悔されているのでリンクしておく。
デモパーティ会場ででも作品を出すとこんな感じで盛り上がります。

kiokuの4KB作品Live
<iframe width="560" height="345" src="http://www.youtube.com/embed/ig8UZMZoc1U" frameborder="0" allowfullscreen></iframe>

Qさんの作品
<iframe width="560" height="345" src="http://www.youtube.com/embed/6Hs6JvQ8zC0" frameborder="0" allowfullscreen></iframe>

evokeでの発表作品を実行してみたい方はこちら

コンポが終わったあとは外で歓談。

TBLのLOUIEさんに会う腹のでっぷりがやばかった。
VIPのsgtruckさんの腹もやばかったので、きっと
demoscene VIPになるほどやばいにちがいない。

夜の会場はなかなか良い雰囲気である。

●パーティ開催3日目(8/14)
prizing .
Qさんがみごと64kIntro 2位を受賞した。
これはもしや、日本人初受賞!!? マジチート。(*注釈
まぁ、64kは3作品しかなかったので、入賞は確実だったわけだが、
2位になったのはすごいことである。
本人はコピペだけど・・・といっていたが、ドヤ顔の受賞である。これぞドヤ力(*注釈

それにしても4kは激戦区であった・・・。俺の作品は無念の5th/7作品

Qさん受賞記念写真。おめでとうございます。

Qさんドヤ顔写真 (*注釈

2位トロフィー、ニューカマー賞

BrainstormのParsecさんに車でケルンまでおくってもらう。
Parsecさんにはいろいろお世話になりました。
あとAxelさんにも!

本当はパーティ会場であった人に振る舞おうと思い買っていったJapanese Sakeだったが
実は2日目にもっていこうとしてホテルに忘れるという始末・・。
いろいろとお世話になったBrainstormのお2人にお土産にしてもらいました。

そしてEvoke終了。
会場で聞いた話だと、次の盛り上がりは9月のハンガリーで行われる、functionですね。
また、今回インビテーションデモがだされたBunzoliも気になりますね。
次のパーティは来年のRevisionかな。いやその前にTDF2012 だ!!

ケルン大聖堂

●パーティ編(まとめ
パーティ編のまとめであるが、今回は初のEvoke参加であった。
ロケーションはケルンという比較的大都市でフランクフルトからの
アクセスも良好であった。(ICEで1時間)
ただ、8月の日本でのお盆頃という、休みやすいが、飛行機が非常に

お高いという・・・。安いのを探したけど往復で1人20万でした。
4月に行われるRevisionだと10万を切る価格で往復することが可能である。
EvokeはRevision/Breakpointほど大きな大会ではないが、
同じドイツで開催されるパーティであり、
非常に似たようなアットホームな雰囲気である。
感想としては規模としてははやりRevision/Breakpointには劣るが、
有名チームのデモのリリースされるし、十分に盛り上がる。
3月末/4月頭は日本人にとっては休みずらい時期であるのに対し、
普通の夏休みとしていきやすいEvokeは非常に魅力的である。
現在日本に在住のCtrl-Alt-TestのZavieさん(偶然にも彼は昨年度64kIntro1位)も
Evokeは一押しだったのもうなずける。

See you next party!

 

注釈

- トモヒロさんメソッド
デモパーティ前日にホテルで、デスマしてデモを制作する方法。

- あ、つんだわ。
予定していた時間に間に合わないと予想され、手詰まりになる状態で叫ぶ。

- ドヤ顔(どやがお)
evokeで2位をとったときにする顔のこと。

- ドヤ力(どやりょく)
コピペなのにオリジナルと言い張る力のこと。

- マジチートだわ
他人がとても苦労しているのに、他の人が超簡単な方法で問題を解決しているときに叫ぶ。