2006-03-01から1ヶ月間の記事一覧

C#2.0時代のゲームプログラミング(14)

今一度、前提条件を整理しておこう。これが正しく伝わっていないと、ぐだぐだな議論になってしまう。 ・multi display環境下で特定の画面をフルスクリーン化したい。 ・フルスクリーン化とは、「画面解像度の変更」+「アプリケーションの保有しているウィン…

C#2.0時代のゲームプログラミング(13)

いまどき、1万円ぐらいのビデオカードですら、dual display対応になっているので、dual displayを避けて通るわけにはいかない。かくいう私も、開発効率upのためtriple display(3台)ならぬ、quadruple display(4台)にしていたのだが、ついでなので、先日、qui…

博士の愛した数式

映画「博士の愛した数式」を見た。若きシングルマザーの家政婦と80分しか記憶の持たない数学者の話だ。小川洋子の原作のほうであらすじは知っていたのだけど、どんな風に映像化するのかに興味があった。 この物語のなかの博士は、整数論を自分の研究分野とし…

swf形式で動画キャプチャ

Yanesdk.NETもいよいよβ1リリースである。(id:yaneurao:20060308) ここらで一発、Yanesdk.NETのサンプル作りも兼ねて、Yanesdk.NETを使うとどれだけ楽にゲームプログラミングが出来るのかを知らしめるために俺様のゲームプログラミングの風景を画面の動画キ…

ハッカープログラミング大全 攻撃編

「ハッカープログラミング大全 攻撃編」なんて、俺様の許可なしに勝手に出しやがるのは誰じゃい!(`ω´) と思ったら、アセンブリ言語の教科書のケンジさんだった。い、、いや。発売だいぶ前から知ってたんだけどね…。

C#でビジネスアプリ

知り合いのid:taosさん*1が、Vindというプレゼンツールを開発した。C# + Managed Direct3Dで動いている。「C# + Managed Direct3Dでここまで出来るのだ」というのを知らしめるのに十分なソフトである。 そんなわけで、そろそろC#に乗り換えてみてはどうか? …

buggyなプログラム禁止令

ようやく仕事がひと段落した。なんか、納品前の最後の5日は、毎日2時間ぐらいの睡眠時間で1日22時間ぐらいプログラム書いた。私が今回書いたプログラムは、設計ミスによる手戻りやデバッグ作業は全くなかった(デバッグ時間,テスト時間ともにゼロで完動!)の…

ひなた先生第11回

今回は例外処理の考え方について書いた。いま読み返していたら間違っているところがあったのだけれども、見なかったことにした。 あと数回書いたところで、書籍化しようと考えている。そのときに大幅加筆/修正したい。

intelli-sense

C#で開発しているとVisual Studio2005のintelli senseやsnipetは、それなりに便利だが、私の理想にはほど遠い。 「foreach」と入力してtab keyを2回押す。私の考えでは、この時点でcollectionのほうにカーソルが行かなければならない。collectionが決まれば…

ファイルコピーって難しくね?

コピー先に、コピー元より新しいファイルがあるのに、どうしてその新しいファイルよりさらに新しいファイルで上書きできるの?その新しいファイルはどこから来るの?あのね。ボクが言いたいのは、新しいファイルよりさらに新しいファイルは、あるの?ないの…

熱さまおっさん

ロールシャッハテストの説明より引用。 被検者は,これらの曖昧な刺激図版に対して各自の独特の見方で反応する。この反応のなかに願望・欲求・情動など反応する人の内面的な世界が露わにされるのである。 今日の写真の熱さまシートの絵柄は、どう見てもゲロ…

C#2.0時代のゲームプログラミング(12)

OpenGLをWindowsプラットフォームで動かすのにwglほにゃららというAPIだけに頼るのは、いかにも心もとない。たとえば、texture自体のHDCが取れない。これは、textureに文字を描こうと思った場合、OpenGL自体の文字を描く機能を用いるのでなければ、いったん…

C#2.0時代のゲームプログラミング(11)

実は、この問題には、特効薬がある。あまり知られていないAPIだが(そもそもWindows環境でOpenGLを複数のウィンドゥの描画に使っているケース自体がレアなのだが)、wglShareListsというのがある。 これは、二つのRCを結びつける。これを使えば、glGenTexture…

C#2.0時代のゲームプログラミング(10)

pure C#でOpenGLのPictureBoxへの描画に成功した。C++で書かれたOpenGLのwrapper等は一切不要だ。OpenGLで描画した経験さえあれば、描画自体は出来るだろう。だけど難しいのはここからだ。 先にも説明した通り、RC(Rendering Context)をHWndに対して生成して…

C#2.0時代のゲームプログラミング(9)

.NET Frameworkのpicture boxに描画したいとすれば、このpicture boxのHandleを取得する。Handleの実体はHWNDなので(C#1.0/2.0にはtypedefがないのでIntPtrの実体が何なのかサッパリな上に間違って違うところに代入してしまいそうなのだけれど)、Win32APIのG…

C#2.0時代のゲームプログラミング(8)

描画にはOpenGL/DirectXを使う。二次元の描画をするときでも三次元の描画システムを利用するようにすれば、affine変換(上下反転、左右反転、拡大縮小etc..)が自由に行なえるようになる。 Yanesdkではlinux/MacではOpenGLを使うことにするので、Window環境で…

C#2.0時代のゲームプログラミング(7)

file systemの話が出たので、ついでにdllのpathの設定の話。 yanesdk.dllから利用しているsdl関連のdllだけで、sdl.dll , sdl_image.dll , sdl_mixer.dll , libpng.dll , zlib.dll , sdl_ttf.dllなど多数必要になる。これらが実行フォルダに入っていると邪魔…

C#2.0時代のゲームプログラミング(6)

file systemの話があがったついでに、zipファイルの話をしておこう。 Yanesdkではzipファイルをシームレスに読み込むために、このArchiverを提供する必要があった。.NET Framework2.0からはzip stream(?)をデコードするためのクラスGZipStreamが存在するので…

C#2.0時代のゲームプログラミング(5)

続いて、file system。 ゲームで使う素材をbmpやらpngやら、生のファイルを配備するわけにはいかない。例えば、アダルトゲームでCGが bmp/ フォルダにbmp形式で格納されていたら、ユーザーはゲームをする気を無くすかも知れない。 そこで、ファイルは独自の…

C#2.0時代のゲームプログラミング(4)

次に、リソースの解放をいつ行なうかについて考えていこう。 GCの挙動が嫌らしいのは、私が思うにGCが実行されているスレッドがGC専用のスレッドであることだ。つまり、非同期で、しかもそのclassをnewしたスレッドとは異なるスレッドからそのclassのfinaliz…

C#2.0時代のゲームプログラミング(3)

unmanagedなリソースに対して、GCが無力であることは、前回説明した。実際のところ、ビデオメモリやサウンドメモリ上に存在するようなmanagedなリソースに対しても前回と同様の理由によりGCは無力なのである。「managedな世界に居れば、快適に暮らせる」とい…

C#2.0時代のゲームプログラミング(2)

C++からC#になりGC*1が搭載されて、メモリ管理は楽になったように思われる。普通のコード(managed code)の世界ではそうなのだが、unmanaged codeの世界はそうとも言えない。 たとえば、サウンドやテクスチャと言ったリソースはGCに管理されたくない。なぜな…

お任せにはお任せ出来ない

エアコンの暖房が効きすぎて暑いので、エアコンを切ったつもりが「お任せ」モードになっていた。しばらくすると、エアコンからは冷たい風が出てきた。どうやら部屋が暑いため、冷房してくれているようだ。 れ、、冷房て。 いま何月やと思てますのん…。いくら…

C#2.0時代のゲームプログラミング(1)

YaneuraoGameSDK.NET(以下Yanesdk)のサイトを長らく放置していたが、実はYanesdk自体はほぼ出来上がっている。 YaneuraoGameSDK.NET version 0.11 (α1) http://yaneu.com/yaneurao/yanesdkdotnet/yanesdkdotnet0603080305.zip YaneuraoGameSDK.NET version 0…

メイド喫茶無料券

メイド喫茶を経営している友達が、無料券をくれた。今日の写真のものだ。なんと北海道のメイド喫茶全店で使える飲食代の無料券だ。 北海道のメイド喫茶すべてと提携でもしてるのかなー?と思って良く見たら「お財布役が同行」って…ああ、一緒に来て、お勘定…

.NET Expert #02

お情けで記事を書かせてもらった(id:yaneurao:20060111)ので、見本誌いただきました。アマゾンのデータでは3月9日発売になってますが、そろそろ書店に並んでいるのではないでしょうか。 Excel(VSTO)の有効利用、クラスライブラリの歩き方、TeamSystemによるT…

すごく楽な仕事

なんか最近ずっと部下の尻拭い(?)で一日16〜18時間ぐらいプログラムしてるのだが、すごく楽だ。というか楽しい。こんな楽しくていいのか。デスマーチなのになによ、この楽しさは! しばらくまともにプログラム書いてなかったので、プログラムが書けると幸せ…

天と地

同じぐらいの能力を持った二人に同じことをさせても、そのあと伸びるか伸びないかというのは、本人の性格や本人が物事をどう捉えているのかによるところが大きい。仕事を“やらされている”と思っている人と、仕事に意義を見出している人とでは全くそのあとの…

株ロボを作ろう!(3)

id:yaneurao:20050808 株ロボを作ろう!(1) id:yaneurao:20050809 株ロボを作ろう!(2) 以前紹介した「株ロボを作ろう!」という本だが、このたび、株ロボコンテスト第二回が開催されることになり、「株ロボを作ろう」の著者の書いたプログラムBayesianRobot(…

もしアンパンマンがバイキンマンにお金払っていたら

新しい液晶ディスプレイを買ったので古くなったブラウン管型のディスプレイを捨てようと思ったら、業者に来てもらうのに4,000円もかかるのだそうだ。まだ映るのにもったいない。 私の家から5分でいけるところに住んでいる友達のI君が液晶モニターが壊れてblo…