2009-05-01から1ヶ月間の記事一覧

そうだ、パブリックドメインにしよう

色々調べてみたのだが、とりあえず参考はコレ。 「パブリック・ドメイン」とは何か http://sourceforge.jp/magazine/03/06/15/1044258 著作権の基礎 http://www.furutani.co.jp/kiso/tyosaku1.html サンプルとして提示するソースコードは全てパブリックドメ…

DXRubyOgg0.0.1

oggSDKを拾ってきて、ビルドしてスタティックlib作って、テキトーなコード書いてexe作ったら音が出た。 なんという簡単仕様。 面白いからRubyの拡張ライブラリを作ってみた。 dxrubyogg.soファイルはoggSDKをスタティックリンクしたら247kBになってしまった…

OggVorbis対応を考える

ファイル全体をデコードしてメモリに入れといて、再生できるようにしてみたら、デコードにえらい時間がかかる。 元データが3.4Mほどで、15秒以上かな・・・。 小さな効果音ならそれでもいいのだろうけど、BGMをこれで、ってなると問題だ。 なるほど、ストリ…

OggVorbis再生ライブラリVoxラッパクラス

HSPのほうでメジャーらしいVox.dllを使ってOggVorbisを再生するラッパクラスを作った。 使わないと思われる関数は無視した。 使い方は・・・コメント見たらわかるだろう。 再生しながらsetVolumeすると音量の変更が少し遅れるのは仕様だろうか。 Voxのダウン…

テスト中

安定版に向けてテストをしている。 画面の表示とかキーやマウスの入力とかだから、ユニットテストで楽できるもんでもない。 地道にやるしかない。 サンプルとかを動かしているから、基本的な動きは一通りできるのはわかっていて、やらないといけないことは、…

サンプルとライブラリとライセンス

たとえばDXRubyのサンプルシューティング。 俺が作ったのはプログラムだけだから、そこに限定するとして。 基本的なスタンスは、どのように扱ってもらってもよい。 力作というわけでもないし、特殊な技術を使っているわけでもない。 ぶっちゃけ、絵と音のデ…

DXRubyExtension004リリースとその他の話

こんな感じになった。これはサンプルで入れてある。 矩形・円・点・三角混在で判定できる。 計算量はかなり多いのに結構速くてCのスピードってすごいもんだと思った。 例によってDXRubyプロジェクトWebのほうにこっそり置いてある。 とりあえずDXRubyの安定…

プロバイダ料金滞納の件

朝、ネットが繋がらなかった。 電話してみたら料金払ってないからだって。 請求書がいっぱいあってどれが払ってなくてどれが払ったものなのかわからなくなって、まあいいやってほったらかしにしてしまうから、こうなる。 NTTWestだと電話かかってきて、まと…

DirectXで2Dの話

DXRubyは2D専用だからして、DirectX9を使っていながら2D描画しかしない。 2Dとはいえ一応ポリゴンで描画するから、テクスチャを設定したり頂点を計算したりする。 そのあたりはどうもよくわかっていなくて、とりあえずD3DXSpriteを使わないようにはしたが、…

かなり古いけど。

12年ほど前に書かれた文章。 Smalltalk Odysseia http://www.sra.co.jp/people/aoki/SmalltalkOdysseia/SmalltalkOdysseia.html 検索してみてもほとんど件数は出ず、大きく注目されているものではない。 しかしおもしろいことに、はてなブックマークではいま…

いろんなあたり判定できた

ネットを漁ってとりあえずRubyで実装。 基本アルゴリズムとしてはこれでOKだろう。 require "dxruby" Vector = Struct.new(:x, :y) Point = Struct.new(:x, :y) # 線分と直線 <0 交差する, =0 上, >0 交差しない def intersect(p1, p2, p3, p4) return ((p1.…

当たり判定の仕様を悩む

少しずつ考えはまとまってきた。 が、回転した矩形をサポートするところで、その扱いをどうしたらいいのかで悩む。 DXRubyExtensionでサポートする当たり判定のデータの持ち方は、基本的にはDXRubyで描画する画像に対応させるようになっている。 画像のxとy…

うわ、めんどくせぇw

ソース眺めてたら急に面倒になってきた。 もう既に十分ややこしいのに、これ以上混乱させてどーする。 回転した絵を正確に判定する必要なんかなかろ。 拡大縮小もそんなにやりたきゃ自分で計算してなんとかしやがれ。 楕円なんぞ知ったことか。 原点の無い三…

三角がー

追いかけられる夢を見そうだ。 三角の判定作るだけでこんなに苦労するとは。 他のんやめる決断しといてよかった。 しかし線分を三角の流用でやろうとしてもうまくいかない。 計算式の前提に合ってないのか。 困った。 まあ実際、調子いいときって効率いいか…

初心者向けと速さ

DXRubyは速さを第一に主張しないが、とりあえず速い。 最適化マニアが基本設計レベルから真剣に取り組んだものなのだから、そのぐらいでなくては困る。 ところで、ライブラリの実行性能はどういうときに役立つのだろうか。 ぱっと思いつくのは、とにかく派手…

Rubyの実行時間を計ってみる

項番 処理 時間 カラループを引いた実時間 1 カラループ 0.34 0 2 a=0 0.65 0.31 3 a=1+1 1.07 0.73 4 a=1*1 1.09 0.75 5 a=d 0.65 0.31 6 a=d*2 1.1 0.76 7 a=d+d 1.08 0.74 8 a=0.1+0.1 1.36 1.02 9 a=0.1*0.1 1.35 1.01 10 a=map[2][2] 1.41 1.07 11 a=ma…

マップシステムを考える

こんなことを考えていた。 実装はまだ全く手付かず。 すぐできそうだけど。 コードを書くより仕様を決めるほうが大変だし、大事だ。 require "dxruby" # マップシステムを考える # マップシステムモジュールが持つのは、マップの描画方法の指定、それから絵…

パフォーマンスは相当いいらしい

マップシステムモドキを実装してみた。 ようするにCで配列を参照して描画登録を大量にするだけなのだが、RubyでループしてWindow.drawするのと比べて6倍ぐらいの負荷の差がある。 描画自体の負荷は変わらないから、当たり判定の時よりおとなしい数字になって…

とりあえず動いた

まあ、この程度のものを実装するのはワケないのだが。 256枚の描画で負荷22〜23%ほどだったのが9〜10%に下がった。 ここで減少率を取り上げても意味はなく、当たり判定のときと同じように、ここからマップチップを膨大な数に増やしても負荷があまり増えない…

DXRubyExtensionを無駄に拡張する

DXRubyExtensionは、Rubyでゲームを作りたいけど、この処理Rubyで書いたら重いからゲームにならないや、ってものを色々突っ込んでいければいいなーと思っている。 あまり高度なことは作者の限界の低さゆえにできないが。 とりあえず矩形判定の不具合修正版を…

ちょっとだけね

DXRubyのコンパイルオプションに/Faをつけてアセンブラのコードを吐き出してみた。 んで、愕然。 ぜんぜん最適化されてねぇwwww Makefileのオプションを見るとそれっぽいものが付いてるのだが、それを外してみても変わらず。 最適化関連をバサっと消して…

コンパイラによる最適化の落とし穴

いやー悩んだ。 DXRubyExtensionの動作確認をしてたところ、どーにも点オブジェクトが矩形オブジェクトに化ける。 dfree(解放時にGCから呼ばれる解放関数のポインタ)を使ってクラスをチェックしているのだが、定数のはずなのに値がおかしい。 release_Coll…

DXRubyExtension機能拡張できた

なんか効果的なサンプルをつけてSourceForge.jpでリリースしたろか、と思った。 でも、DXRubyプロジェクトの中のパッケージにすると、これが何かを説明する場所がないし、そもそも別のものだ。 とはいえ別プロジェクトにするとそれはそれで管理が面倒だ。 や…

DXRubyExtension003こっそりリリース

こっそりDXRubyプロジェクトWebに置いた。 サンプルも付けといたから興味ある人はどうぞ。 これとDXRubyを使うとRubyで作っているとは思えない驚異的なオブジェクト数のゲームが作れるようになるはずだ。 いまのところ、ちょっと使い方がややこしいのがネッ…

おうちでも速度比較

うちのPCでも同じものを動かしてみた。 DXRuby0.0.8の時間は約1秒となり、会社のPCと比べてかなり短い時間となった。 どういう切り口で見ても遅くなる部分など無いようなスペック差だから当たり前だ。 開発中の0.0.9にすると0.8秒ほどだ。 ライブラリの性能…

どらくえフォント

有名かもしれない。 すらいむのへやさま。 http://slime4.hp.infoseek.co.jp/index.htmlここにドラクエフォントなるものがあって、非常によいデキなのだ。 こんな感じになる。 これを使ってWiki新ネタ「RPG用メニューの作り方」、とかも面白いかもしれない。…

DXRuby0.0.9リリース近くなってきた

DXRuby0.0.8リリース後、GC負荷安定、描画性能向上、エラーチェック強化、line描画アルゴリズム修正、フォーカスが外れたときの入力処理の省略、その他微妙なメソッド・機能追加と調整などを行った。 見た目、相変わらず大きな機能追加は無いが、最適化も含…

DXRuby0.0.9リリース

リリースしてきた。 これでしばらくは、致命的な不具合などがない限りはおとなしくなるだろう。 なんせGW前あたりから2日、3日置きにリリース連発してたからなー。 今回のはちょっと自信ある。 サンプルシューティングも、DXRubyExtension組み込み版をリリー…

透視座標変換の可能性

DXRubyはノーマルな機能拡張は、基本的には終わりと考えている。 しばらく様子見て、0.1.0にでもしよう。 んで、0.2.0に向けて新機能を考えていく、とかになるかなー。 新機能としては、さっきも書いた背景描画なども考えていて、これは何らかの形でイメージ…

描画速度比較

いろいろ調べてたら目に止まった。 Jewel-mmo開発日記さまの1年前の記事。「Ruby/SDLとStar Rubyの描画速度比較」だ。 http://dgames.jp/dan/?permalink&date=20080417 速度比較そのものは、どっちもメインで使うものではないから気にならないのだが、一箇所…