イベント
プログラミングは最高だ。無差別級ゲームコンテストも発表されたUEI「enchant.js meetup!」レポート
このイベントは,enchant.jsやenchant PROの紹介を兼ねつつ,enchant.jsの活用事例などをユーザーから募っての発表や懇親会などを含む交流の場として設けられたもの。当日は,当初の予定から大幅に拡大された180人収容の会議室が用意されたものの,それでも足りないほどの応募者が集まった。
enchant.jsはこうして生まれた
続いて,9leapプロジェクトリーダー伏見遼平氏より,enchant.js開発の経緯が紹介された。
発端は,今年の3月ごろに清水氏が漏らした「昔あったファミリーベーシックみたいなものがほしい」という言葉から始まったという。その場にいた学生達は「ファミリーベーシックってなに?」と思いながら聞いていたらしいのだが,調べると,テレビにつないで子供がプログラミングしてゲームが作れるものらしい。こんな感じかなと当時大学1年だった田中 諒氏が1週間くらいでさらさらっと作ったのがenchant.jsのα版となるものだ。
そのほか,どこでも遊べる投稿型JavaScriptゲームサイト「9leap」という発表の場が用意されていることや,さまざまな地域でプログラミングキャンプを実施するといった,普及活動などについての紹介が行われた。
プログラミングキャンプでは,プログラミング初心者に対し,午前2時間でenchant.jsの基礎を教え,午後4時間で1本ゲームを作らせている。ちょっとハードルが高そうに感じられるかもしれないが,仙台・札幌で行ったときはほぼ全員,沖縄では2時間しか時間がなかったらしいのだが,それでも半数くらいはゲームを仕上げて発表したという。
ちなみに,UEIの社内ではさらに過酷なトレーニングが行われているそうで,12時間で21本のゲームを作らされたこともあったそうだ。そういうことができるのも,enchant.jsがあったればこそだと伏見氏は語る。
読んで理解できるかは置いておいて,ここで用いられていたプレゼン資料は,ここにあるものとほぼ同じなので,興味のある人はぜひ参照していただきたい。
ユーザーによる活用事例
UEIの開発者による概要紹介に続いて,ユーザーによるライトニングトークが行われた。
enchant.js におけるチーム開発手法(@blankblank)
最初はレベルデザインについて。レベルデザインは,プログラマーが行うとは限らないことや,あとで変更しやすいものが望ましいことなどから,JSON形式でデータを記述することが勧められていた。XMLを簡易表記にしたような感じのものだが,読みやすく,データの変更も柔軟にできるという。
また,共同開発を行ううえでは,「一緒に同じアニメを見ること」の重要性が強調された。要は,グラフィックス担当などと共通のバックグラウンドを持っておけば意思疎通が速いという話だが,例として,ロボットもののゲームを作っていたときのエフェクトで「美琴がキレたときの奴」というだけでちゃんと望みのものが仕上がってきたことなどが紹介された。
もう一つ,目的と手段の階層構造を把握することの重要性が説かれた。ちょっと分かりにくいかもしれないが,ある程度込み入った事象では「〜をしたいので 〜する」といった目的と手段が何段にも積み重なることが普通である。「女の子にもてたいので,すごいものを作ってみせる」「そのためにゲームを作る」「そのためにenchant.jsを使う」といった感じになるのだが,それぞれで別の手段を取ることが可能だった場合,手段の部分だけでは,どの階層のための手段かが分からないので,それを明確にしないと意思疎通が難しいということらしい。いま一つよく分からない部分もあるが,これで困ったことがあったのだろう。
プラグイン localStorage.enchant.js
今回は行われたのは,3G回線の遅さ,不安定さを解消するためのLocalStorageプラグインについての概要紹介だ。これは,よく使う画像を,ブラウザのLocalStorageに保存しておこうというもの。LocalStorageというのは,いわばCookieの大きい奴のような感じで,URLごとに関連した文字列を保存しておける仕組みだ。本来文字列しか扱えないのだが,Base64コーディングすることによって,画像を保存し,ネットワークからダウンロードすることなしに使ってやろうというわけだ。
ymrl氏は,enchant.jsのpreloadメソッドと同じ用に使えるpreloadToLocalStorageをプラグインで拡張している。これは,指定されたアドレスの画像がLocalStorageにあれば,そこから,なければネットワークから読み込むというものになっている。
これによるパフォーマンスについては,ネットワークからの読み込みで395msかかっていた画像が83msで表示できることがデモされ,パフォーマンスアップに繋がることが示された。なお,キャッシュに残っていればもっと速いのだが,スマートフォンなどでは,キャッシュはあまりあてにできないとのこと。
preload部分を書き換えるだけで使えるうえ,スマートフォンなどで通信量削減に役立つ面白いプラグインだ。
ゲーム開発日誌,私の場合
9leapでは,主に学生用のコンテストが繰り広げられているのだが,学生以外にも門戸を開いた9日間チャレンジのプログラミングコンテストも開催している。お題が発表されてから締め切りまで9日間というコンテストでいかに開発をしていったのかなどが紹介された。実際のところの開発期間は8日間で,enchant.jsの勉強を習得を兼ねて伊藤氏が挑んだのはパズルゲームのコンテストだ。かつてポケコンPB-100用に作ったゲームを移植しようと試みたという。
そのパズルというのは,雑誌に掲載されていた1行落ちモノパズルを独自に連鎖対応に改造したもので,15年ほど前にパソコン通信などで公開していたものだという。
ポケコン用の1行表示を再現してみると,いかにも地味だったので,アレンジが試みられたという。
イメージとして目標となったのは,「DanceDanceRevolution」。画面表示などが似ているからとのこと。「ダンス」というところからの連想で出てきたのが「ジュリアナ東京」。背景なので,あってもなくてもゲーム自体には関係ないようなのだが,アニメーションさせるなどの構想に従って,かつての巨大ディスコのバブリーな雰囲気を再現すべく,イラストを描いていったそうだ。
Androidアプリを手軽に作成「enchant PRO」
enchant PROは,JavaScriptとHTMLでは制約が多くてできなかたようなことを,Android専用版とすることで解決した特別版のenchant.jsだ。基本的な実行部分はJavaScriptとHTML5のままのようだが,OpenGLをハンドルすることができたり,端末の各種センサーやカメラといった機能にアクセス可能で,単体のアプリにパッケージングして配布可能といった特徴を持っている。
※初出時に,5万円の中にAR技術ライセンス料も入っている表記で掲載してしまいましたが,明らかな間違いです。お詫びして修正させていただきます。
enchant.jsはどこに向かうのか?
清水氏から,来場者へ贈られたメッセージは「プログラミングは最高だ」というもの。プログラムを覚えたいという人に対して,数年前ならRubyを勧めていたと清水氏は語る。しかし,優れた言語として人気を集めるものの,Rubyはなかなかメジャーになれない。なぜかというと,Rubyの主要目的はWebサービス関係となっており,プログラミング以前のところで難題が多すぎるのだそうだ。
そのためにも,UEIはenchant.jsに本気で取り組んでいくという。また,enchant.jsでプログラミングを楽しむだけでなく,仕事でも使いたいという人のために作ったのがenchant PROだと氏は語る。
とはいえ,社会人に9日間は厳しいなどの意見は多いようで,趣味としてのプログラミングをもっと広めたいとのことで,新たに“無差別級9leap”として「Open leap」を立ち上げることを発表した。
賞金は「大人が趣味でやっていても奥さんに言い訳できるくらいの金額」ということで,優勝賞金50万円,優秀賞10万円,そして奨励賞1万円が用意される。
奨励賞のみ,ちょっと変わった仕様となっており,公開されてから1万プレイを達成した先着10名に贈られるという。また,2012年初春には,9leapの勝者とOpen leapの勝者との決戦を含むイベント「leap fest」が開催される予定。日時はまだ未定だが,場所は秋葉原となっている。プログラミングを趣味とする人や,かつてBASICでゲームを作っていたというような人には見逃せないニュースといえるだろう。もちろん,さほど難しいものでもないので,これからゲーム制作を始めてみたいという人でも十分参加できる。
ということで,海外展開を踏まえた強力なエヴァンジェリストとして清水氏は,新たにUEIに加わったというエリック・マックエヴァー氏を紹介した。日本で映画を制作していた人らしいのだが,「タフでパワフルで演技力があり,英語も得意」な氏を迎え,今後は海外へもenchant.jsを強くアピールしていくという。
「我々は超イイ時代にいる」と清水氏は語る。enchant.jsはスクリプトベースのシステムだが,わりと適当なコードを書いても十分に高速に動作させるハードウェアが続々と出てきているため,最適化などに気を遣わず手軽にゲーム制作ができる。そして,それがクロスプラットフォームで動く。プログラミングの楽しさを広めるのに,enchant.jsはかなりよい材料であるのは間違いないだろう。UEIの今後の動向にいっそう注目してみたい。
enchant.js公式サイト
- この記事のURL: