2011/07/12

DarkPlacesというQuake1互換のエンジンがあったので最近気になっていたけど2010年の4月からNewsのページが更新されてなっかたのでエンジンも円熟して枯れたものになってんのかなーと思ってたんだけど、6月以降、更新頻度が高くなってるみたい。

作者のLordHavoc'sさんは家庭用ゲーム機版のNexuizの開発にも参加しているのでそちらも気になるな。この辺は詳しくないけど、Nexuizは元々DarkPlacesエンジンで作られたものだけど今回の家庭用ゲーム機版ではなんか知らんけど(おい)CryEngine 3に差し替えられた。んでなんかしらんけどフォークしたのがXonotic。

新しくリリースされたDarkPlacesエンジンでは実験的にソフトウェアによるレンダリング(3Dグラフィックスの描画をGPUではなくCPUで計算する)とDirect3D9によるレンダリングが追加されたみたい。どちらも今のところ推奨されていない。

ソフトウェアレンダリングの方はフレームレートが低いが描画自体はとても正確らしい。Direct3D9の方は影の生成処理がOpenGLの場合よりかなり遅くなるっぽい。どちらも今後の最適化に期待。

あと、6時間毎に自動ビルドされた開発版のダウンロードが可能になり、LinuxとOS X版を排除してその分サイズが小さいWindows 32bit版と 64bit版のビルドも新たに追加されている。

以下は用意されたバイナリではなく自分でビルドしたい場合のメモ。

DarkPlacesの配布物にはソースコードも同梱されているがWindowsでビルドする場合、visual studioのプロジェクトしか同梱されていないっぽいのでMinGWでビルドしたい場合は(つーか他の*nix系OSも含む)SVNリポジトリから直接開発版のソースをダウンロードしないとだめかも。いやWindowsバイナリオンリーのやつダウンロードしたからかもしんないけど。とにかくmakefileがあればいい。

ビルドには事前にDarkPlacesのlibjpegやogg等、依存ライブラリがインストールされている必要がある。

自分の環境ではmingw32-make 3.82とmake 3.81があってなぜかmingw32-makeだとダメでmakeだとコンパイルできた。

そのままmake releaseと打つとlinux版のビルドはじめちゃうのでこういったことを回避するためにmake時にmakefileで定義された変数の値を上書きする必要がある。

make release DP_MAKE_TARGET=mingwだけだとccがないと怒られたのでCC=gccも追加する。

make release DP_MAKE_TARGET=mingw CC=gcc

これでコンパイルが通るはずだけどインストールされているSDLのバージョンが1.3だとvid_sdl.cで使われているSDL_SysWMInfoがSDL 1.2と定義が違うので途中でコケる。
のでvid_sdl.cのコンパイルエラーで指摘された箇所のinfo.windowをinfo.info.win.windowに書き換える。

まぁdarkplaces-sdl.exeなくてもdarkplaces.exeだけでよければSDL版はビルドしなくても大丈夫だけど。

makeの変数って-eオプションで上書きするんだとおもってたけど、makeの内側に書けばかってに上書きされるのね。

DP_MAKE_TARGET=mingw CC=gcc make release -e

make release DP_MAKE_TARGET=mingw CC=gcc

どっちでもOK。

http://icculus.org/twilight/darkplaces/index.html

0 件のコメント:

コメントを投稿