2008/11/19(Wed)続・動的コンパイル

はてブ数 2008/11/19 1:26 計算機な日記::ソフト作り つーさ

動的コンパイルした先のコードで例外が発生すると、スタックトレースの行番号が取れない。
場所 にはメソッド名しか表示されない。コンパイル元がファイルでもダメ。

デバッグ情報を残し、かつ一時ファイルを残す設定にして、後からpdbの読み込みを試みる。

20081119012039.png

えー。

デバッグ出力コンソールくらいしか用意できないのかしら。printfデバッグω
スクリプトととして使うならデバッグ情報が足りねーのは致命的な気がするなぁ。
ある程度、どんなところでバグることが多いかの経験があればまだしも……。
それでもInvalidOperationException とか InvalidCastException だったら目も当てられない。
えーーーー どこーーー???? になること請け合い。

未解決。

関係ないけど。今日、西条に初雪が降りました。明日はもっと冷えるそうです。正直……

2008/11/11(Tue)yieldが使いたい

はてブ数 2008/11/11 4:50 計算機な日記::ソフト作り つーさ

RPGのシナリオスクリプトを、
C#のあるソースファイルのメソッドとして定義し、
C#コンパイラに食わせることを考える。

スクリプトなのだから、スクリプタさんが書く。
文法こそC#だがスクリプトっぽい感覚で書けるように留意する。

RPGなのだから「メッセージを表示してボタン待ち」のような高レベルAPIを用意したい。
スクリプトの実行はそこでブロッキングして、一見処理が止まってるように見せたい。
しかし実際にスレッドまで止めてしまうとゲームが止まってしまう。どうする?

続きを読む

2008/10/06(Mon)GSDK という名前にした

はてブ数 2008/10/06 17:43 計算機な日記::ソフト作り つーさ

いわゆるIDisposableをつけなきゃいけないクラスについてabstractな基底を作って、メモリ回収はGCに任せようとか思ってたが。Sceneクラス破棄してスコープアウトしてもScene直下で持ってるリソースのデストラクタが呼ばれず、先にDirect3DとかDirectSoundのDisposeが呼ばれて、ストリーム再生中のバッファでAccessViolationがでる。確かにGCがオブジェクトのデストラクタを呼ぶタイミングは予想できないのに、実験的にはちゃんと呼んでくれてたという意味不明な理由で、あほな実装に走った。今振り返ってみれば、どうしてこのような実装にしたのかわからない。これは由々しき事態だ。結局Paneliaみたいに、親子を考えて寿命管理しないといけない。C#になってもリソースの寿命管理からは逃れられないのか。GSDKで文字を書くとPaneliaよりも極端にFPSが落ちる謎の現象も確認。同じ文字列を描いてるのに、ぱねりあでは700FPS、GSDKでは150FPSしかでない。原因がさっぱりわからなくて困っている。PresentParametersやRenderStateはまったく同じ設定のハズなのに、いったいどこが違うんだ?うーーん……。昨日やっと、ひととおり書き終わったつもりになって、初めてビルドして動かしてみたら、でるわでるわ。バグのやま。まぁ当たり前なんだけど。上に書いたみたいな仕様バグも出てるし、どうしようかな。どんどん完成が遅れていい加減嫌になってくるなぁ。当初5月に完成する予定じゃなかったっけ。

2008/09/28(Sun)雑記

はてブ数 2008/09/28 20:16 計算機な日記::ソフト作り つーさ

全面的に作り直すのはやめることにしました。Version. Panelia をコピペしながら"見直し"することに。もう、Direct3D周りは一通り書き終えてしまったのですが、後DirectSoundと、DirectInputとSceneControllerとタスクシステムなんてやってたら、日が暮れるではなく、年が変わる!(笑) static化したいなんて言ってましたが、これもやめることにしました。やっぱり美しくないなぁってことで。で、まぁ、ここを書き換えないんだったら、あんまり全面書き直しをする理由もないので……開発スケジュール大幅に遅らせた上にこんなんではなんだか、アレですが……。まぁ、いい経験にはなったかなぁ。

QoFを作り直そうとかいうお話が出ていますが、たかだか1年ちょっと前のコードなのに読むのがとても辛い。きたない。汚い。きたない。スパゲティ。これ書いたやつ馬鹿なの? しぬの? と。どうにも、あの頃は「急がば回れ」という言葉を知らなかった(いや、言葉を知らなかったわけではない)ようです。仕様変更がおっかなびっくりすぎです。書き直した方がはえーんじゃねーの。このフレームワークができあがったら、QoFはたぶん一週間で書き直されるものとは思いますが。さぁどうしようかな。冬コミの企画も決まってません。結構QoFR(仮)も気合い入れて作ってるし、新再販(謎)でもいいんじゃないのかしらとか思いつつある。

なんだってくそいそがしくていやんなるぜ。もうあああああああああああ。冬休みが後2日です。

2008/09/18(Thr)にゅーふれーむわーくの悩み3

はてブ数 2008/09/18 3:12 計算機な日記::ソフト作り つーさ

結局描画はSprite使うことにして、今度はライブラリAPIの提供スタイルについて悩んでいる。

たとえば、Direct3Dをラッピングしたクラスを作った。個人的にはDirect3Dもだんだん理解が進んできたし、この程度のものをもはや何のためにラッピングしてるのか全然さっぱりわかんなくなってきてるんだけど。

続きを読む