ゲームエンジン、グラフィクスエンジンの調査
グラフィクスエンジンを設計、実装しようと思っているので、ゲームエンジン、グラフィクスエンジンの調査をした。
調べてみて気になった物をメモしておく。
主にこれからの開発の参考になりそうなフリーで、オープンソースな物を選んだ。
・Panda3D (https://www.panda3d.org)
引用元:https://www.panda3d.org/showss.php?shot=ssg-colossus/colossus2
対応OS:Win, Mac, Linux
言語:Python, C++
対応モデル形式:EGG/BAM, collada, x, low, obj, dxf, wrl, flt
(EGG というのは独自形式?で Maya, Blender, 3ds Max 用のコンバータや各形式からの変換も可能。)
ライセンス:商用含めフリー
特徴:
・オープンソース
・マニュアルやサンプルは Python で書かれている。
・シェーダは Cg/GLSL 。
・色々なエフェクトが実装されている。(HDR、シャドウマップなどなど)
・OpenAL/FMOD/Miles のオーディオエンジンもサポート。
・物理エンジンは、シンプルな組み込みの物と、Bullet/ODE/PhysX 対応。
・独自のパーティクルシステムを持っている。
・GUI システムあり。
・PandaAI という AI、何かを探したり、パス探索などが実装されている。
・CPU/GPU パフォーマンスモニタあり。
・デバッグツールあり。
・Irrlicht Engine (http://irrlicht.sourceforge.net)
引用元:http://sourceforge.net/apps/gallery/irrlicht/index.php?g2_itemId=2093
対応OS:プラットフォーム非依存(Windows, Linux, Mac)
言語:C++
シェーダ:
対応モデル形式:OBJ,3DS,DAE,B3D,MS3d,BSP,MD2,X,...
ライセンス:zlib
特徴:
・オープンソース
・DirectX/OpenGLに加え独自レンダラがある。
・いろんなマテリアルライブラリが組み込み。
・アニメーション対応
・環境マップ、ステンシルシャドウ、パーティクル、ビルボード、ライトマップ、他いろんなエフェクトあり。
・動的なライト、水、動的な影、などなど
・2D GUI システムあり。
・オブジェクト指向な設計。
・各種テクスチャ読み込みも対応。
・高速で簡単なコリジョン判定とコリジョン反応あり。
・高速な数学ライブラリあり。
・XML パーサあり。
・Unicode 対応。
・サンプル、ドキュメント豊富。
・ShiVa3D (http://www.stonetrip.com)
対応OS:Win,Mac,Linux,iPohone,Android,BlackBerry,Palm,Wii,PS3,PSP,XNA,Flash,iPad
言語:ゲームエディタ上での開発と Lua/C/C++/Objective-C。専用のエディタ付き。
ライセンス:非商用 Web 書き出し対応のみフリー。料金は教育向け $200、Basic $200(50% OFF)、Advanced $1000(50% OFF)。ロイヤリティはフリー。
特徴:
・ゲームエンジンUnity っぽい感じ?
・WYSIWYG な 3Dエディタ
・MMO サーバー開発対応
・LUA による AI
・メッシュモディフィケーションAPI
・Web へのエクスポート。(Flash で動作)
・物理エンジン
・ポイントライトとシャドウ
・プラグインやエクステンション可能。
・地形生成
・組み込みで各種シェーダ
・パーティクルシステム
・ポストレンダーエフェクト
・独自の2Dグラフィクス(GUI)
・ネットワーク対応
・2D/3D サウンド
簡単に言えば Unity みたいな感じ。
統合型のゲームエンジン。
この中では異質な物を調べてしまった。
・jMonkeyEngine (http://jmonkeyengine.org)
サーバ落ちてる?
サイトにアクセスできないので保留。
・Ogre3d(http://www.ogre3d.org)
対応OS:Win,Linux,Mac
言語:C++(Python,Java,NET 用のラッパを開発中)
シェーダ:Cg,HLSL,GLSL に加えマテリアル定義言語があるっぽい。
ライセンス:商用/非商用問わず完全にフリー。改変、コピーなども可能。ソース公開の義務も無い
特徴:
・オープンソース
・OO なインターフェース
・Direct3D/OpenGL 対応
・マルチパスエフェクト、複数ライト対応
・マテリアル LOD
・テクスチャの読み込み(PNG,JPEG,TGA,BMP,DDS)
・テクスチャはプラグインでリアルタイムに差し替えれる
・プロジェクティブテクスチャのサポート
・Progressive Mesh も自動/手動で生成可能
・スケルトンアニメーション対応
・フレキシブルなシェイプのアニメーションも対応(モーフ、ブレンドなど)
・シーングラフ形式
・ポストエフェクト対応
・パーティクルシステム対応
・天球対応
・ビルボード対応
・リソース(メモリ)マネージャと圧縮ファイルの読み込み対応
・プラグイン対応
・メモリのデバッグ(リークなど)対応
・XML のコンバータあり。
・Ogre Wiki:http://www.ogre3d.org/tikiwiki/tiki-index.php
・"グラフィクスエンジン"であり、サウンド、ネットワーク、物理エンジンなどは今は非対応。
以下有名すぎるので省略
・Unity (https://unity3d.com)
・Unreal Engine UDK (https://www.unrealengine.com)
・Blender(http://www.blender.org)
・XNA(http://msdn.microsoft.com/ja-jp/library/bb200104(v=xnagamestudio.40).aspx)
・Cocos2d-x (http://www.cocos2d-x.org)
参考にした一覧系のページ
・Free, cross-platform game engines
http://freegamedev.net/wiki/index.php/Free,_cross-platform_game_engines
・ModDB
http://www.moddb.com/engines/
・The top 14 game engines
http://www.develop-online.net/news/the-top-14-game-engines-the-list-in-full/0114330
・HTML5 Game Engines
http://html5gameengine.com
ちょっと意識して調べてみると、グラフィクスエンジンに必要な物が見えてきた気がする。
設計に詰まったらまた参考にさせてもらおう。