カテゴリー
ネットのサービス

Untrusted – JavaScriptをいじって先へ進むRogueライクゲーム

ローグライクゲーム、というジャンルがあります。Rogue(ローグ)を代表とする自動的に生成される迷路・迷宮から脱出するというゲームで、日本で有名なものでも、ネットハック、トルネコの大冒険、チョコボの不思議なダンジョンなど多数あります。

Untrusted は、そのようなローグ風ゲームのバリエーションなのですが、JavaScriptのコードを操作することでパズル的な迷宮を解き、先へ進むというのが最大の特徴です。

untrusted-3

画面左の迷宮で、自分のキャラクター”@”を、階段”□”まで、カーソルキーを使って導かなければいけません。しかし、普通に上下左右に移動しただけでは、出口にたどり着くことはできなくなっています。

そこで、右側のコードに書かれた、迷宮を生成するJavaScriptのコードのうち、書き換えて良いという黒地の部分を変更し、Ctrl+5 で実行するとあら不思議、壁や出口の場所を書き換えてしまうことで、次の階へと進むことができるようになるというわけです。

いかだを使ったり鍵を探したりと、面ごとに違う趣向の障害が配置されています。

その階がどういうトラップなのか、どんな障害が設けられているかというヒントがJavaScriptのコメントとして書かれているので、解く際の参考になるでしょう。

untrusted-2

壁を描画している部分の位置を書き換えるとか、出口の場所を移動するとか、で解ける面もありますが、後の面ではそれらを防ぐようなバリデーション・コードが追加されたりして、同じ手は2度使えないようになっています。

UntrustedのソースコードはオープンソースとしてGitHub上で公開されています。ソースコードを見れば現在のダンジョンが何階あるかはわかってしまうのですが。

# HackerNewsで紹介されたせいで、現在ゲームはちょっと重かったり、正しく動かなかったりすることがあるようです。その場合は、footerにリンクのあるミラーサイトで遊んだり、オープンソースですから自分のところで動かしたりということもできます。

via HackerNews

カテゴリー
fun

デバッグの6段階 (Six Stages of Debugging)

  1. ありえません
  2. 私のマシンでは再現しません
  3. それは起こるべきじゃありません
  4. なんで起こるのかな?
  5. あー、なるほど
  6. なんで今まで動いてたんだろう?

あるある。サポート担当者として1や2の返答をしてしまうと、あとでバツの悪い思いをしちゃいますね。

少なくとも2003年には流通していた文章を、発掘した人のブログから

via HackerNews

カテゴリー
教育

Codespell – Java言語がそのまま呪文となる教育用3Dゲーム

カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。

Codespellでは、プレイヤーは小動物ノーム(gnome)たちが住む土地にやってきた魔法使いです。ノーム達は過去に魔法を使って生活していたのですが、今は魔法をうまく使えなくなっています。魔法の呪文はJava言語プログラムで、物体を浮遊させるとか火を起こすといった7つの手持ちの呪文を使って、ノーム達を助け、火を消したり川を渡ったりといったクエストを解き、バッヂを獲得するのがゲームの目標です。

ゲームプレイ

3D世界の岩が燃えていますが、

codespell-target

岩オブジェクトというターゲットオブジェクトに対して onFire()メソッドにfalseを渡す、という呪文を呼ぶプログラムを書き、実行することで、

codespell-target-program

燃えていた岩の火が消える、という例がデモ動画で紹介されています。

codespell-target-extinguish

プログラミングの達人を昔からWizard、魔法使い、といいますが、ここでは、プログラムがそのまま魔法であるような仮想空間を作りこんだ、ということですね。

ゲームの教育効果

これを開発した研究者たちが、プログラミング経験がまったく無い10歳から12歳の女子40名にこのゲームを遊ばせたところ、少女たちは一時間もしないうちにJavaの基本的な構造を把握し、自分たちで新しい遊び方をプログラミングしたということです。たとえば、呪文(プログラム)を間違えてターゲットのオブジェクトを空中高く、届かないところに持ち上げてしまったグループは、自身を他のオブジェクトの上からジャンプさせるコードを書いて、ターゲットに次の呪文を掛けることができるようにしたそうです。

入手方法

ゲームはオープンソースで公開され、マック版はバイナリがダウンロードできます。Windows版も近々リリースされるということ。

via UC San Diego Computer Scientists Develop First-person Player Video Game that Teaches How to Program in Java via