通信管理クラスを使おう

ソースコード http://yumesoft.net/program.html 通信対戦は当たり前? 最近は同人ゲームであっても、通信対戦が実装されて当たり前になってきています。 しかし、WinSockは色々と低レベルすぎて手が出しにくく、DirectPlayはサポートが終了してしまい死に体…

CThreadの実装と挙動を変更しました

ソースコード http://yumesoft.net/program.html 説明 CThreadは、そのインスタンスが破壊されてもスレッド自体が止まることはありませんでした。 しかし、スレッド終了時(や、スレッドの中)にメンバー変数にアクセスするため、メモリー破壊の原因ともなり…

ゲーム中は、スクリーンセーバーやディスプレイ休止を回避しよう

ゲームパッドでゲームをしていたら、いきなり画面が真っ暗に。 という経験をされた方は多いかと思います。 慌ててマウスを動かすも、画面が復帰した頃にはボロボロになった自キャラが…。 というわけで、今回はゲーム側でその対処を行いましょう。 電装天使ヴ…

役割ごとにスレッドを分けよう

ソースコード http://yumesoft.net/program.html 前置き 私のプログラムは、基本的に3つにスレッドに分かれています。 WinMainから始まる「ウインドウメッセージ処理スレッド」 定期的に入力デバイスを監視し続ける「入力スレッド」 1ループするたびにゲーム…

同じ入力をしたら、同じ出力になるようにしよう

前置き ゲームを作っていると「再現性」というものが重要になることが多くあります。 例えば「リプレイ機能」は完全な再現性がないと困ります。 他にも「ある場所でエラーが出た」場合、状況を再現できれば再度同じエラーを起こすことができ、直すのも非常に…

ファイルロード管理クラスを使おう

ソースコード 2010/03/10 内容を修正更新しました。 http://yumesoft.net/program.html まずはファイルローダー 私は、ゲームを作る際に真っ先に作らなければならないものとして、必ずファイルローダーを挙げます。 画像を表示するにしても、文章を表示する…

Xファイルの甘い罠。巨大Xファイルの読み込みが超遅い

Xファイルは素晴らしいフォーマットです。 初心者が初めて触って理解するためという意味では。 大抵の中級〜上級者曰く。3Dフォーマットは自前フォーマットを用意しろ。 ゲームを作り終わった今、まったくもってその通りだと思います。 電装天使ヴァルフォー…

Direct3DXの甘い罠。浮動小数点結果が環境依存

Direct3DXは素晴らしいライブラリです。 私がいきなり「電装天使ヴァルフォース」という3Dゲームを作れたのも、ひとえにD3DXの助けがあってこそです。 ですが、陥りやすい罠もいくつか見られます。 まず紹介しておきたいのは、Direct3DXを使って行った行列や…