Kengo's blog

Technical articles about original projects, JVM, Static Analysis and JavaScript.

javascript

ツクールVXのマップチップ規格を解釈したマップ描画

私みたいに絵心のない人は自作ゲーで使う画像をゲーム素材から探したくなるのですが、世の中のゲーム素材はツクールなどの素材規格に準拠しているケースが大半です。 RPGツクールVX素材規格 RPGツクールXP素材規格 ウディタ素材規格 で、JavaScriptゲーでも…

「妄想変身ヒーローズ」コードリーディング

9leapで公開されている妄想変身ヒーローズが楽しく快適だったので、どんなコードなのか読んでみました。JavaScriptでそれなりの規模のプロジェクトを作る場合はどうするのがいいんだろう?という疑問へのヒントをもらえた気がします。enchant.jsに限ればScen…

間違い探しゲームをアップデート

間違い探しゲームのバージョン2を9leapで公開しました。バージョン1には全くといっていいほどゲーム性が無かったので、大幅なテコ入れを図っています。1分で何回間違いを探せるか?というシンプルなルールなのですが、短い時間で楽しみやすい仕上がりになっ…

狭い画面を広く使うためのenchant.ScrollableSceneクラスを作った

年末年始は予想以上に休めそうなので、きちんとしたゲームを1本仕上げたい*1と思いつきました。集中力が続けばシミュレーションあたりを作りたいなーなどと考えていたら、軍事担当任命などのような「ユーザーに複数の選択肢から選ばせる処理」というのがなか…

RequireJSによるコードの分割と最適化 for enchant.js

enchant.jsプログラミングでRequireJSを使うとなにが嬉しいの?どうやって使うの?という話。最初はenchant.jsをCommonJS/Modulesに合うように書き変えなきゃダメだと思っていたんですが、そんなことはないんですね。これは便利。 何が嬉しいの? 開発時には…

メモ・複数のJS/CSSをRequireJSでひとまとめにする

RequireJSをちゃんと調べたらbrowserify以上に自分の目的に近かった。UglifyJSでのコード短縮なんかも処理してくれるし。assets埋め込みなどの処理を挿し込むのはちょっと無理っぽいので、そこは泥臭くやる必要がありそうだ。 REQUIREJS OPTIMIZER REQUIREJS…

メモ・NodeでHTMLファイルにJSファイルを埋め込む

HTML5ゲーム開発環境構築支援ツールを作った件の続き。通信回数削減という名目のもとで、HTMLにJSファイルを静的に埋め込む方法について調査する。試した環境はMac OSX Lion(10.7.2)のNode v0.4.12。 ちなみにこの「埋め込み」がNodeに適した処理かどうか…

JavaScriptはいつの間にこんなにでっかくなっちゃったんだろう

はてなブログのニュースに大歓喜しているeller86です。ダイアリーはあちこちガタが来ているように見える(私見)ので、ゼロから書きなおしたというのがとてもプラスに見えています。そのうちバックグラウンドについての技術解説も出るでしょうし、いろいろと…

JavaScriptで複数行文字列を扱うためにヒアドキュメントを使いたくなったら

泣くしかない のですが、代替案としてこのような方法もあります。 CoffeeScriptのウェブサイトを開く メニューバーのTRY COFFEESCRIPTをクリックし、コンソールを開く 左ペインに(ダブルクォーテーション3つ)(改行2個)(ダブルクォーテーション3つ)と入…

JavaScriptのAST変換

ASTとは腐れ縁にある気がするeller86です。専攻とかは全然関係ないんですが、大抵の仕事でその姿を見ているような……。さてJavaScriptのAST変換を使ってenchant.jsのassetsを変換できないか試してみました。以前は正規表現でなんとかしましたが、どうせやるな…

testlingを使うためにあがいた記録

私の環境ではtestlingさんが無言でおなくなりになることがしばしばです。サンプルではうまくいくので回線の問題ではないようですが、それ以外の原因がわかりません。 $ tar -cf- . | curl -sSNT- -u mail@address.com:pass testling.com/?browsers=iexplore/…

nodeで開発を始めるためのメモ

長いものには巻かれておくスタンス。 TDDはExpressoを使う。 option parsingはoptimistが便利そう。参考 拡張子からmime-typeをマッピングするにはmime。 HTTPクライアントはrequest。 seqをよく見かける気がする。

HTML5ゲーム開発環境構築支援ツールを作った件

testlingの登場によりQUnitを捨てる可能性が出てきたeller86です。操作を間違ったときのリアクションがわかりにくい*1のですが、それを大きく上回るメリットを享受できそうです。大半のOSS開発なら無償プランでも充分じゃないかと。唯一の不安は、サイトが潰…

surrogate-pair.jsをnpmモジュール化しました

ASM4.0がリリースされてwktkしているeller86です。しかし今日はJavaScriptの話をします。以前から開発していたライブラリsurrogate-pair.jsをnpmモジュールにしました。まだpublishできていません*1が、以下のブランチから取得していただくこともできます。 …

enchant.jsとDOM操作の連携

enchant.jsはDOM要素をうまく隠蔽してくれているので、どんな要素を使っているのかを開発者が気にする必要はありません。しかし見た目にこだわるゲームを作るときなどは、DOM要素を意識することで可能性が広がるのも事実です。今回はenchant.jsとDOM操作(id…

canvasで3Dレーシング

先週末の3連休で実装したゲームを9leapに投稿しました。canvasを使った3Dレーシングです。 9leap : D3 racing by eller86 - どこでも遊べる、投稿型ゲームサイト 本ゲームの特徴はcanvasで3Dを描画しているところでしょう。とは言えcanvasで3Dを描画すること…

jslint.vimをMac OS Xに入れた

JavaScriptをチェックしてくれるvimプラグインjslint.vimをMacBook Airに入れました。公式マニュアル通りにやってOKだったら苦労はなかったのですが、そんなことはなかったのでエントリを残しておきます。 前提 プラグイン管理にpathogen.vimを使っている gi…

enchant.jsにpull request送った

動的に生成する要素のデザインにCSSを使いたいなぁ、Entityのidやclassに触れるといいなぁ、ということで送りました。 Pull Request #11: Entityからidとclassにアクセスしたい by eller86 · wise9/enchant.js · GitHub QUnitによるユニットテスト付きです。…

enchant.jsのフレーム管理周りを改造した話

この土日は体調回復しつつ国産ゲームエンジンenchant.jsのコードを読んでいました。先日9leapで公開したTowerDefenceゲームを低速端末でもスムーズに動作させたかったのです。 その成果はなんとかforkとして結実しました。ここにはなにをやったか、既存実装…

ウェブアプリ開発における画面デバッグ 自己流ノウハウ

JavaScriptに本腰を入れて*1からそろそろ9ヶ月になるので、少しずつたまってきた感じのデバッグノウハウをまとめておきます。 どこで動かなければならないのか意識する デバッグとは関係ないように見えますが、まず動作環境を意識するのが重要です。 IE6で動…

最近のアウトプット

ここ数週間で作ったものについてまとめておきます。 Javaのコンストラクタに関する知識と私見 GWの時間をつぎ込んで書いたのがこれです。Javaのコンストラクタはきれいにコーディングする上でもJVMの動作を理解する上でも重要なファクターであると感じており…

SVG with Javascript習作

SVG女子が話題を呼んでいることもあり、連休中にSVGに触れました。作ったのはJavascriptで動的に図形を描画したり動かしたりするもの。ジャンルとしてはSRPGやタワーディフェンスゲームに近いと言えます。 forked from: SRPG Map (Hex, SVG) - jsdo.it - sha…

Java仮想マシンの教育用シミュレータを実装しました

JVM内部の挙動、特にframeやoperand stackやconstant poolについて人に伝えるためのツールが欲しいと考えていました。高速で省メモリなコードを書いたりマルチスレッドプログラミングしたりするには(Javaヒープの使い方と並んで)役立つ知識ですし、Scalaな…

2010年10月のJavascript作品まとめ

今月jsdo.itに投稿した作品です。 orgel フロッキング2 遺伝的アルゴリズム フロッキングと遺伝的アルゴリズムはこちらの本を参考にしたものです。AIはゲーム作成における難関のひとつだと思いますが、その手本を得ることができました。ゲーム作成に関心のあ…

Javascriptによるゲーム制作体験まとめ

ここ数日の有給休暇を使いJavascriptタワーディフェンスゲームを制作したので、その感想など。Javascriptはページに動作を付与する程度の使い方しかしてこなかったので、とても新鮮な体験となりました。 「Javascriptでゲーム」は現実的 作るだけなら他の言…

Javascriptによるゲーム開発中

最近jsdo.itでHTML5を使ったゲームを開発しています。具体的には、canvas要素による描画を主軸に据えたタワーディフェンスゲームです。 TowerDefence 5th - jsdo.it - Share JavaScript, HTML5 and CSS HTML5によってWindowsでもMacでも初代iPod touchでも動…