投稿

2014の投稿を表示しています

転送サービスを使って Gopher 君を買った話

イメージ
個人輸入・転送サービスのスピアネット というサービスを利用して、 Canada/US の Google Merchandise Store  から Gopher 君のピンクとパープルを買った話。

Go言語で画像縮小できるライブラリのベンチマーク

イメージ
Go言語で画像縮小できるライブラリのベンチマークなどを取ろうと思って少し書いてみた。 https://github.com/oov/resize-test github.com/nfnt/resize github.com/disintegration/gift code.google.com/​p/​appengine-go/​example/​moustachio/​resize github.com/bamiaux/rez code.google.com/p/graphics-go/graphics github.com/disintegration/imaging この辺りのライブラリは画像の縮小ができるので、どれも func(src image.Image, w int, h int) (image.Image, error) で 呼べるよう整理 して、それを元にした ベンチマークのジェネレータ とか サンプル画像出力プログラム を作った。 テスト環境は Intel Atom D510 で、物理コア数2でハイパースレッディング対応。遅い。 使用したGo言語環境は go1.3.1 の linux/amd64 版。

Cocos2d-JS 触り始めた5

イメージ
前回の作業中ホーミングミッソーを試しにたくさん飛ばしてみると、一時的にフレームレートが低下し、それに伴いゲームの進行速度が遅くなることがあった。特にフレームスキップなどの実装をしていないしこれは想定通りの動作ではあるものの、 update メソッドの第一引数に渡されてくる値は前回のフレームからの経過時間(秒)なので、これを適切に扱うようにすればフレーム落ちも加味して計算できる。

Cocos2d-JS 触り始めた4

だいぶやりたいことが見つからない感じになってきたので、 cc.ParticleSystem を使って適当に何かを散らしてみようかと思った(やったほうがいいことはもちろんまだたくさんあるが面倒くさい)。

Cocos2d-JS 触り始めた3

前回までの作業で操作することでブロックを避けられるようになり、少しゲームっぽくなってきた。 もう少し弄ってみる。

Cocos2d-JS 触り始めた2

前回の記事 ではデモプロジェクトを少し触って大体の雰囲気を掴んだ。 今回はもう少し使い込んでみるために、以前作った 簡単なゲーム を Cocos2d-JS 上で動くよう移植してみることにする。

Cocos2d-JS 触り始めた

以前 NME でゲームを作ってみたりしたこと などもあったが、巷で話題なのは Unity とか Cocos2dx 辺りで、この辺は有名だしもっと色々便利なんだろうなあと思っていた。最近会社を辞めて少し時間ができたので、そんなに情報が多くなくて面白そうな Cocos2d-JS  を触ってみようかと思ったので、合わせて日誌的にブログを書いてみることにする。

Amazon Route 53 用 Dynamic DNS 更新ツールを Go で作った話

なんか記事にするほどのことでもないんだけど。じゃあ記事のするほどのことって何だよ、俺にあるのかよ、って思ったので、深く考えずに書く。 oov.ch  で使うネームサーバーとして今までは VALUE-DOMAIN のものを利用してて、特に不満もなかったものの Route 53 の使い方を把握しておいた方が今後のためにもなると思ったので、試しに移行してみることにした。 レコード情報はそんなに量もないし手作業でチマチマ入力して、dig コマンドで適宜応答も確認しながらやったのでこれといったトラブルもなく比較的スムースに移行は完了した。っぽい。 ただ、遊び用の自宅サーバーには Dynamic DNS 的な奴が必要で、これは編集画面でチマチマ触ってるだけじゃ無理そうなのでちょっと調べた。すると  Amazon Route 53 Authentication Tool for Curl  と AWS Route 53 Dynamic DNS Updater Script  を使うと比較的簡単にできるという情報がゴロゴロ転がってきた。 それらをそのまま使えば多分解決するものの、そんなに難しいことをするわけじゃないだろうし自作してみてもいいかな、と思ってGo言語で作ってみることにした。できた。 https://github.com/oov/r53ddns AWS へのアクセスには  github.com/crowdmob/goamz/aws  を使った。 Route 53 周りも一応実装はあった ものの、ChangeResourceRecordSet でバッチ処理が出来なかったりとか若干イケてない気配がしたので、この辺に関しては自前で用意した。 自分が触るサーバは間違いなく Go が使える状態になっているので go get すればすぐ使えて便利だし、あと、あれだ、あの、なんでもない。 --ip オプションのデフォルト値は  http://checkip.dyndns.org/  になってるけど、はるか昔に自分で自分のために用意した GAE 上で動く同じようなものが ある ので、自分の環境ではこっちを使うようにした。

アルファチャンネル付き PNG の減色

イメージ
最近公開した楽曲用ページ を作る際に、簡単なパララックス風の効果を作るためにアルファチャンネル情報を持った画像ファイルを複数扱う必要があるケースに出くわした。 以前ゲームを作った時 は画像のデコード処理自体を外部デコーダに頼らなくてもできる状況だったので画像ファイルを WebP 形式にして、PNG 形式で 3.60MB ぐらいあった画像が 207KB まで容量削減できた(※この時使った WebP 形式はロスレスではない)のだが、ブラウザで WebP 形式を使うのは時期尚早……というかまともに使える日は来るんだろうか。 JavaScript によるデコーダがあることも知ってはいるものの わりとどうでもいい理由でボイコットされても困る し、それは冗談としても、とにかく WebP 形式は今回の選択肢にはなかった。 そうなると PNG の最適化の路線が残るわけで、まずは有名どころの PNGGauntlet  を試してみた。圧縮アルゴリズムの最適化だけではそう大きくは縮まないだろうとは思ってはいたものの、ほぼ容量が変わらなかったので、別のアプローチの併用も必要そうだと思った。 とはいえここまで来ると減色ぐらいしか選択肢がない気がしてきた。 昔、今よりもインターネットが好きだった頃は OPTPiX webDesigner v2.x を買って使ったりもしていたこともあったものの、今となっては開発終了してしまっていて v2.x 系では少なくともアルファチャンネル付き PNG は扱えない。WebFree 版は制限厳しそうで面倒そうだし、Padie 系列のソフト類も現状は消息がよくわからんことになってるし、 COLGA も試してみたものの容易く視認できるぐらいに劣化してしまった。 などと困っていたところで  PNG Color Reducer Pro を見つけた。 試しに減色してみたら見た目がほとんど変化しないまま減色後の画像が生成された。 減色後のファイルサイズが表示されなかったのでどのぐらい縮んだのかわからず若干不安ではあったものの、楓 software の人は以前からアルファチャンネル対応動画形式の実装日記なんかも書いてて半透明を含む圧縮という分野での遭遇は初めてじゃないし、少なくとも出力結果から視認できるレベルの劣化は見当たらなかったのですぐ購入して