初投稿です。
ここにはゲームを開発する過程を書いていこうと思います。
さてまず、どんなゲームを作ろうかという所からですが。。
僕は東方が好きなので、その二次創作をやっていこうかなと思います。何かモチーフがあったほうが作りやすいしね。
今のところ個人開発なので、1人で出来る程度のカンタンなもので、かつソコソコ遊べるようなものを作ろうかと思います。そうなると対戦ゲームかなぁ。
それに加えて、LinuxやMacでもゲームできるようにしたい(ゲーム≒Winodws、とういのが浸透してる気がする)ので、OpenGLを利用してゲーム作っていこうかと思います。
3年近く前に同人ゲーム出した事があるんですけど、そのときはDirectX使ってたし、直したい箇所が山ほどあるので、開き直って1からライブラリを組み立てなおしていくつもりです。そのためにどんな機能を付けていこうか検討しよっかな、というのが今回のエントリの目的です。
とりあえず必要な機能を大雑把にまとめると、こんな感じ↓
・タスクシステム
・ファイルの読み書きをまとめたアーカイバ
・ゲームパッドに対応した入力
・2D、3Dの表示
・音楽、効果音の再生
・ゲームに組み込むスクリプト
・ネット通信をまとめたクラス
他にもコンバータとか必要かな、と思ったけど、とりあえずはこのあたりの実装を目指していきます。他のツールも必要になった時に考えようかと。あと、タスクシステムとアーカイバは過去に作ったものを使いまわします。
***
で、早速OpenGL触ってみたんですが、補助ライブラリ無いとなかなか使いづらい・・・。glutとかglfwを触ってみたんですが、どっちもクセありすぎる。
まずglut。コールバックベースで、毎フレーム呼ぶために登録する関数は、引数が変更できない。タスクシステムを呼ぶのであまり問題は無さそうにも思えるけど。さらにglutMainLoopを呼ぶと抜け出せない仕様でした。これが若干気持ち悪い。
次にglfw。こっちはとにかく遅い。glutの半分の速度しか出てない・・・。無限ループを空回りさせてみたんですが、glutはCPUを50%使い切るのに対してglfwは24%でした。ループ間の処理はどっちもライブラリのswapbuffersを呼んでるだけなので、つまりループ速度が遅くなるような処理をswapbuffersがやってることに。
これじゃ使いものにならないんで、glutを使っていこうかと思ってます。
次はメインループを実装しようかな。
はじめまして。
Re: はじめまして。
あぁ、glutが50%出てるってのは間違いでした、こっちは20%前後しか出てないみたいだ(自分の環境下では)。
どうも別タスクと見間違えてたみたい。。
ところで無限ループをほっとくとメモリ使用量が徐々に上がってくのはなんでだろう?DirectXでもGLでもこの現象起きる気がするぞ・・・
どうも別タスクと見間違えてたみたい。。
ところで無限ループをほっとくとメモリ使用量が徐々に上がってくのはなんでだろう?DirectXでもGLでもこの現象起きる気がするぞ・・・