ホームページを作る人のネタ帳

わずか4000バイト(4000文字)で作られた3分35秒の映像プログラム

プログラム大会動画
すごいとしか言い用がない。無性に紹介したくなった。

既に多くの方が知っている事は、なるべく紹介しないというのがスタンスなんだけども、今回ばかりはただただ紹介したい。

『プログラミング大会』というよりもMega Demo Partyだったらしいけど、そもそもメガデモを説明するのが面倒なのでプログラミング大会としておきましょう。

わずか4キロバイトのプログラムで作成された音と映像がYouTubeでアップされ、話題を読んでいる。動画が以下です。

音と映像全て合わせて4キロバイト


YouTube - Elevated by RGBA and TBC
4kbの世界
いやすごい。
正直鳥肌たった。いや泣いた。

4キロバイトは、4000バイト。(1キロバイト1024と計算する場合もある)

単位が良くわかんないよって人もいるかもしれませんが、全角で『あ』とうてば2バイト。半角なら1バイト。
デジカメで小さめに写真撮ったら100,000バイト。
映像や音楽はもっと高くなるわけで、それをプログラムで上のような映像を作り上げ、より軽い物になるように色々コードを改良するわけです。

とりあえず筆者。大会自体詳しくわかってはいないのでアレですが、もしもこの集まりがメガデモパーティならば、半角英数字1文字が1バイトなので、たった、4000文字で、上の映像と音を作ったということになります。

コードをループさせたり進めたり、同じ部分でもいろんなところで使ったりするわけですが、まぁ、、、いいや。

ちなみに古くからメガデモは色々とありますが、2007年に登場した177キロバイトの映像が衝撃的だったのを覚えている。


興味のある人は以下。
YouTube - FR-041: Debris by Farbrausch
メガデモ
こういうメガデモを見るといつも思い出すのはテトリスとスーパーマリオ。

ファミコンで発売されたスーパーマリオが実はたった40キロバイトで出来ていたと始めて聞いたときには衝撃的だったし、2chでテトリスのコードを短くするための熱いスレで誕生した565バイトのテトリスコードも衝撃的だった。

<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X [i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>

これをメモ帳とかに貼り付ければテトリスが開始される。
当時のスレ

とりあえずあまりにも感動したので記事に。それだけです。

優勝作品以外にも4k部門では色々あったりする。
Sult by Loonies(mp4ビデオダウンロード可能)
Lightshaft by Elude(mp4ビデオダウンロード可能)

複合demo
YouTube - kkapture: ASD - Rupture (The Gathering 2009) [HD]


一番上で紹介した動画の実行ファイルはこちら。
elevated by Rgba & TBC


4kバイトだからといって、ダウンロードは軽いけど、実行するのが軽いわけではない。
そこに書かれているさまざまなコードがCPUをガンガン使いながら映像と音を作り上げていくため、起動には、それなりに時間はかかりますのでご注意ください。

それでは、また。


おまけ
どうしてプログラマに・・・プログラムが書けないのか?
古い話ですがプログラマへの第一歩として。


今回の動画のネタ元
ドイツのプログラミング大会の優勝作品

@yamada_nt
Posted by@yamada_nt
スポンサードリンク

Comments 18

There are no comments yet.

名前を名乗れない人  

No title

おわああああああああ
すごすごぎる!なにこれ

2009/04/18 (Sat) 00:46

名前を名乗れない人  

嘘はいけませんよ

YouTubeの動画ってダウンロード出来るの知っていますか?落として見ましたがとても4kBでは収まっていませんよ?
もしかして落とし方もわからない人でしたか^^;

2009/04/18 (Sat) 01:01

名前を名乗れない人  

No title

米2
プログラムとflvは違うよ^^^^^^^^^

2009/04/18 (Sat) 01:09

感動しました  

No title

やけに恥ずかしいコメントが上に一人いますが・・・
晒しておいたら良いと思います


これは、すごいですね!
やっぱり、プログラミングってこういう方向性で進化するのも面白いですもんね

しかし、どうやったら出来るのかさっぱり検討もつかない

2009/04/18 (Sat) 01:10

名前を名乗れない人  

flvでは見れません

flvのままでは見れませんのでMP4にして普通はつかうんですけど・・・・
どちらも4kBにはおさまりませんけどね^^;

2009/04/18 (Sat) 01:18

Yamada  

コメ2、コメ5さんへ

落ち着いて聞いてほしいのですが、とりあえず動画の話は一切していません><

イメージとしては4キロバイトのプログラムがあの動画を作ったとかそういう意味なんですけど・・・

あとものすごく話が脱線してしまいますが、flvには専用のプレイヤーがありますので、見れないこともないと思いますよ!頑張ってください!

>>しかし、どうやったら出来るのかさっぱり検討もつかない

もちろんですけど私もです!

2009/04/18 (Sat) 01:25

名前を名乗れない人  

No title

なんか壮絶に勘違いさんがいるけど
http://www.pouet.net/prod.php?which=52938

からダウンロードして見れるみたい
クリックしてから1分くらいCPUぶん回すらしいけどその間にあのすばらしい映像作ってるらしいね

2009/04/18 (Sat) 01:41

nero  

No title

せっかく記事で感動したのにコメントまでスクロールしたらふきだしてだいなしwwwwwww

2009/04/18 (Sat) 02:03

sorai  

No title

すごいですねープログラミングでこういうことまでできるなんて!感動!!

2009/04/18 (Sat) 02:41

のtきさ  

No title

すげぇ。こんなことできるんだ。
画像とかちゃんと画像ソフト(プログラムが画像を作るだけだけど)とかで作ってそれをプログラムで描写させてとかかと思ったら、全部きっちりプログラムだけでやりとげるんですね。しかもたったの4kで。
驚き。4kっていったら、javascriptファイルでもあっという間だ。

2009/04/18 (Sat) 03:48

名前を名乗れ  

No title

低フレームのスライドショーだと思ったらバリバリの高品質動画だった信じられねーーー

2009/04/18 (Sat) 04:21

名前を名乗れない人  

No title

米2=米5
面白すぎwww

2009/04/18 (Sat) 04:34

mikio  

これは・・・

すごい・・・

プログラマを名乗ってるのが恥ずかしくなったw
どうせ読めないだろうけど、是非ソースがみたいな。

2009/04/18 (Sat) 10:33

VIPPERな名無しさん  

No title

末端のコードが小さくても、それを駆動するエンジンによると思うね。
テトリスコードだって、ブラウザとジャバスクリプトという前提があるからこそ出来ることであって、
ファミコンだったらこうはいかない。
当たり前のI/O処理を記述することからしないといけないのだから。
4000文字プログラムもそうしたライブラリを活用した
APIの集合みたいなもんじゃね?
だからすごいのはプログラムコード自体じゃなくて、
それを包括するライブラリやエンジンを作った人ね。
ま、そのためのコンテストだと思うけど。

2009/04/18 (Sat) 12:27

名前を名乗れない人  

No title

プログラムをダウンロード先から落としたが、実行しようにもエラーが出るな。WinXPsp3 & Win7β

2009/04/18 (Sat) 19:11

名無し  

No title

ライブラリやエンジンを活用するのはもちろんで、4kで問題になるのは画像や音楽といったデータをほとんど持てないことです。ここが工夫どころですね。

elevatedの場合でいえば山のテクスチャや地形のデータをすべて予めプログラムに含めておくことはできません。
断片的なデータを元にバリエーションを作っているか、ゼロからすべてアルゴリズムで作ってるはずです。
表示されるまでやたら時間がかかるのは、テクスチャをプログラムで生成しているためです。

2009/04/18 (Sat) 20:59

名前を名乗れない人  

No title

※2-5

久しぶりに笑った

2009/04/19 (Sun) 10:53

    

No title

乱用されすぎて俺は普段は使わないが、まさにこういうのを指す時に使うのが正しいだろうと思う。

ゆとり乙

2009/04/24 (Fri) 21:53

Leave a reply