2008/11/11(火)yieldが使いたい
RPGのシナリオスクリプトを、
C#のあるソースファイルのメソッドとして定義し、
C#コンパイラに食わせることを考える。
スクリプトなのだから、スクリプタさんが書く。
文法こそC#だがスクリプトっぽい感覚で書けるように留意する。
RPGなのだから「メッセージを表示してボタン待ち」のような高レベルAPIを用意したい。
スクリプトの実行はそこでブロッキングして、一見処理が止まってるように見せたい。
しかし実際にスレッドまで止めてしまうとゲームが止まってしまう。どうする?
2008/11/09(日)QoFの仕様を考えながら
2008/11/02(日)ICPC 2008 アジア地区予選 in 会津
なんか、いまごろICPC日記とか……。
書こうにも書く時間もなかったといえばなかった(あったといえばあった)のだけども、大学祭も今日で2日目が終わってしまって、ブログどうしよう状態に陥ったので書いてみることにした。
2008/10/24(金)いざ戦場へ()笑
2008/10/06(月)GSDK という名前にした
いわゆるIDisposableをつけなきゃいけないクラスについてabstractな基底を作って、メモリ回収はGCに任せようとか思ってたが。Sceneクラス破棄してスコープアウトしてもScene直下で持ってるリソースのデストラクタが呼ばれず、先にDirect3DとかDirectSoundのDisposeが呼ばれて、ストリーム再生中のバッファでAccessViolationがでる。確かにGCがオブジェクトのデストラクタを呼ぶタイミングは予想できないのに、実験的にはちゃんと呼んでくれてたという意味不明な理由で、あほな実装に走った。今振り返ってみれば、どうしてこのような実装にしたのかわからない。これは由々しき事態だ。結局Paneliaみたいに、親子を考えて寿命管理しないといけない。C#になってもリソースの寿命管理からは逃れられないのか。GSDKで文字を書くとPaneliaよりも極端にFPSが落ちる謎の現象も確認。同じ文字列を描いてるのに、ぱねりあでは700FPS、GSDKでは150FPSしかでない。原因がさっぱりわからなくて困っている。PresentParametersやRenderStateはまったく同じ設定のハズなのに、いったいどこが違うんだ?うーーん……。昨日やっと、ひととおり書き終わったつもりになって、初めてビルドして動かしてみたら、でるわでるわ。バグのやま。まぁ当たり前なんだけど。上に書いたみたいな仕様バグも出てるし、どうしようかな。どんどん完成が遅れていい加減嫌になってくるなぁ。当初5月に完成する予定じゃなかったっけ。
2008/09/28(日)雑記
全面的に作り直すのはやめることにしました。Version. Panelia をコピペしながら"見直し"することに。もう、Direct3D周りは一通り書き終えてしまったのですが、後DirectSoundと、DirectInputとSceneControllerとタスクシステムなんてやってたら、日が暮れるではなく、年が変わる!(笑) static化したいなんて言ってましたが、これもやめることにしました。やっぱり美しくないなぁってことで。で、まぁ、ここを書き換えないんだったら、あんまり全面書き直しをする理由もないので……開発スケジュール大幅に遅らせた上にこんなんではなんだか、アレですが……。まぁ、いい経験にはなったかなぁ。
QoFを作り直そうとかいうお話が出ていますが、たかだか1年ちょっと前のコードなのに読むのがとても辛い。きたない。汚い。きたない。スパゲティ。これ書いたやつ馬鹿なの? しぬの? と。どうにも、あの頃は「急がば回れ」という言葉を知らなかった(いや、言葉を知らなかったわけではない)ようです。仕様変更がおっかなびっくりすぎです。書き直した方がはえーんじゃねーの。このフレームワークができあがったら、QoFはたぶん一週間で書き直されるものとは思いますが。さぁどうしようかな。冬コミの企画も決まってません。結構QoFR(仮)も気合い入れて作ってるし、新再販(謎)でもいいんじゃないのかしらとか思いつつある。
なんだってくそいそがしくていやんなるぜ。もうあああああああああああ。冬休みが後2日です。
2008/09/25(木)にゅーふれーむわーくの悩み5
間が空いてしまいました。まだ悩んでます。あはん。
2008/09/18(木)にゅーふれーむわーくの悩み4
例によって、staticなの? instanceなの? 問題と格闘中。
いい加減こればっか悩んでても先に進まないので、割り切ってとりあえず作ってみて使ってみてそれからまた考えるかもしれないということにした。