私の rascut のインストール手順

まさか,補足していただけるとは思ってませんでした(しかも変なタイトルでトラックバックを送ってしまってすみません…).作業環境は Windows2000 + Ruby 1.8.5-p12 + cmd.exe です.Ruby のバージョン上げ忘れてました^^;記憶を頼りになのですが,私の ras…

rascut が便利すぎる

更新ファイルを監視して、自動で再コンパイル、ブラウザのリロードまでしてくれるツール。インタプリタ感覚で書けて最高!rascutなんか、上手くリンクが張れなかった。はてな記法はよくわからない。 うちの環境では、そのままでは動作できなかったので、いろ…

画像の回転

背景でチップがクルクル回るようにしました。この際、DisplayObject#rotation は 左上 を基準に回転するので、画像の中央などを中心にしたい場合使えない。そこで、DisplayObject#.transform を使えばいけた。変換行列で「平行移動→回転→平行移動」。数学で…

いろいろとブラッシュアップ

中のソースコードをリファクタリングして、タイトル画面を差し替えたり。 GUI の操作性を改善したり。ListBox と ComboBox にパディングを付けないとなぁ。

[Ruby] TDD いいなぁ

未実装のルールが一つあったので、TDD してみた。あからさまに効率が良い。エンバグせずに弄っていける安心感が素晴らしい。積極的に採用しないとなぁ。

そんなこんなで

ロビーを改造したり、表に見えないところをいじったり、手抜きな天才と総替えの演出をつけてみたり。一通り作ってきて、メッセージング周りを再度見直したくなった。だいぶ汚いコードになってきた。そして、そろそろ、、、と思って、本体の日記で表に出して…

車輪の再発明

行為が名詞を獲得するということは、普遍性を見出されたということである。 つまり、世界的に共通して存在する言葉があるのなら、それは、世界的な普遍性を持つ概念である。くっそー、mxml 使ってアプリ書いてたら、豊富な GUI 部品があるというのにぃ・・・…

[Genial進捗] わくわく感

しかし、初めての人にさわってもらうためには、「わくわく感」が必要なんじゃないだろうか。今のところ、それが全くもって欠けている。うちの妹(大学生)が、「朝やってる、ドラゴンボールが面白い」「今みてもわくわくする感じ」と言っていて、はたと気付…

結果表示

結果表示やらなんやらがついた。コードも少しは整理できてきた。通信部分をシングルトンクラスにくくり出す。蝶スッキリ。牛歩のあゆみ。今月末には、ちょこっと身内に公開とかまで進めたい。

結局、サーバが落ちる問題が。。。

結果表示や、ロビーなどを実装していき、サーバが落ちる問題だけが残った。TupleSpace を切り離して別プロセスにしてみたところ、やはり、EventServer が落ちる。うーむ。dump をとって ruby-list を頼るしかないかなぁ。

一応、一通り揃ってきた

サーバに接続 → ロビー → ゲームを作成 → ゲーム開始の流れが通せるようになった。後は、ゲーム終了後の処理をいれればプロトタイプの完成。もちろん、まずい部分が多々残ってるんだけども。咳さんにメールを投げてみたところ、abort については光明を見いだ…

ロビーを作り始める

ロビーを作り始めた。socket はシーン間で使い回すようにして、プロトコルもほどほどに上手くシーン間をまたげるように。ロビーの表示周りを改善したらプロトタイプにしよう。後は、切断してもロビーから戻れるようにとかも実装したい。SEGV については、rub…

クライアント周りを改良

結局、サーバの Segmentation fault 起こして落ちるバグはさっぱり原因がわからない。デバッグビルドのRubyインタプリタでも作って調べるしかないんだろうか。後、ロビーとか作ったら最低限遊べるんだけどなぁ。

ひとまずクライアントに専念

サーバの問題はややこしそうなので、ひとまず回避策を打ってクライアントに専念することにする。どうにも、立て続けに TupleSpace に write しようとすると起きるようなので、まとめて行うようにした。このままでも、チャットとの絡みで再発する可能性がある…

Segmentation fault @ drb.rb:1472

e:/ruby/lib/ruby/1.8/drb/drb.rb:1472: [BUG] Segmentation fault ruby 1.8.5 (2006-12-25) [i386-mswin32] abnormal program termination 嘘だろ?嘘だと行ってくれー。今のところ、再現条件が不明です。これは困った。どうも、tuplespace への take, writ…

もう少しでプロトタイプと呼べそう

チップを設置できるようになった。 「Genial」/「総替え」も動作するように。 人数毎にマップの広さが変わるように サーバのバグを片付けたら、プロトタイプと呼べそうな代物になってきた。

trace

Air

trace( String ) を使うと、adl を実行したコンソールに文字列を出力できる。なんだかんだで、printf デバッグ。

-1 % 6 = -1 in ActionScript / JavaSciprt

Air

Ruby だと -1 % 6 = 5 なんだけど、ActionScript / JavaSciprt だと -1 % 6 = -1 になる。へぇ。「irb があれば簡単に確認できるのに!」って思ったけど、FireBug の存在を思い出して解決した。

とりあえず、イベント周りと格闘中

サーバの機能ももうちょっと充実させて、切断→再接続を実装しないと。バグが残ってて、たびたびサーバを再起動させないといけないのは効率が悪すぎる。次は、(コードとインタフェースの質はともかく)カーソルが動くようになったから、設置できるようにする…

Sprite#mouseEnabled

Air

Sprite の mouseEnabled プロパティを false にしておくと、マウス関係のイベントが後ろのオブジェクトで発生するようになる。Ruby 風に Sprite# って書いちゃったけど、ActionScript 的にはどう表現したらいいのかな?

Flash の Socket は JavaScript の XHR 同様のサンドボックスの制限がかかってる?

Socket の接続先は、SWF と同一ドメインしか駄目だったりします?。SWF を直接開いて、localhost のサーバと通信させようとしたら SecurityError が発生した。かといって、adl だと、二重起動が出来ない。むきーーー。

Air 始めました。

Air

Adobe Labs から Flex3 SDK をインストール。んでもって、気付いたこと躓いたこと。 Apollo と XML が若干変わっていた。 fcsh は標準添付 JSON を扱うにはライブラリが必要。

Thread#join, Thread#value と 例外

昨日の続き。irb で確認してみました。 001:0> t = Thread.fork do 002:1* sleep 10 003:1> raise "hoge" 004:1> end => # 10秒待っても何もおきません。 005:0> t.value RuntimeError: hoge from (irb):3 from (irb):5:in `value' from (irb):5 t.value を…

チャットがつながった

MKT に協力してもらって、外部とチャットできることを確認。Sprite をシーンに見立てて、Sprite を差し替えることでシーン遷移できるようにした。今後の予定は、ゲームに関しては描画周りと、イベントハンドラを作れば、最低限遊べるようになるはず。サーバ…

Thread について調べてみる

コメントで教えていただいた情報を調べてみる。「プログラミング言語 Ruby リファレンスマニュアル」 をスルーしていたということか。情けない。 あるスレッドで例外が発生し、そのスレッド内で rescue で捕捉されなかった場合、通常はそのスレッドだけがな…

Flex2 で SVG

Air

驚いたことに、普通に Inkscape で保存した SVG を Flex2 で読み込めた。残念ながら完璧なレンダリングではないのだけど。上が SWF でレンダリングされたもの、下が Inkscape でエクスポートした画像。色が全然違うのが、一番わかりやすい違い。ぼかしの辺り…

とりあえず

認証とか抜きにして、サーバに接続して、部屋を作り、4人が join して、フィールド情報を取得できるようになった。文字だけとはいえ、大いに前進。今日はここまでにする。 部屋を作る:Client → EventServer → GameServer → GameController → GameModel → …

Thread.fork したら、死亡時にスタックトレースを吐いてくれない。

Thread.fork した、ブロック内部でエラーが出ても無言で死ぬだけっぽい。printf をしこむ以外に良い方法ないんでしょうか。どこでエラーになってるかを特定するために、「printf 入れて、サーバを再起動して、テストスクリプトはしらせて、特定して、エラー…

ひたすらコード書き書き

ひたすらコード書き書きというと、聞こえが良いが、要は手動テストが超めんどくさいので、ひたすらコーディングしてからテストってこと。悪い傾向だ。頑張って自動化しないとなぁ。やっぱり、先にテストを書くべきかな。とりあえず、入力、出力のシナリオを…

なんか動いてきた

telnet で Event Server に接続して、JSON 形式のコマンドを送信したら、ちゃんと Game Server が応答した。 いやはや、dRuby, Rinda すごいわ。どういう感じのプロトコルにしたら良いのかがわからなくて、すごい単純な設計にした。