大人になりたくない

プログラミング系。最近は主に vvvv 。

ゲームエンジン、グラフィクスエンジンの調査

グラフィクスエンジンを設計、実装しようと思っているので、ゲームエンジン、グラフィクスエンジンの調査をした。

調べてみて気になった物をメモしておく。
主にこれからの開発の参考になりそうなフリーで、オープンソースな物を選んだ。

・Panda3D (https://www.panda3d.org)

f:id:yhy:20060628160909j:plain
引用元: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)

f:id:yhy:20140210162342j:plain
引用元: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)

f:id:yhy:20140323113520p:plain
引用元:http://www.stonetrip.com/what-is-shiva-3d.html

対応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

f:id:yhy:20140323112948j:plain
引用元:http://www.ogre3d.org/gallery

対応OS:Win,Linux,Mac
言語:C++Python,Java,NET 用のラッパを開発中)
シェーダ:Cg,HLSL,GLSL に加えマテリアル定義言語があるっぽい。
ライセンス:商用/非商用問わず完全にフリー。改変、コピーなども可能。ソース公開の義務も無い
特徴:
オープンソース
・OO なインターフェース
Direct3D/OpenGL 対応
・マルチパスエフェクト、複数ライト対応
・マテリアル LOD
・テクスチャの読み込み(PNG,JPEG,TGA,BMP,DDS)
・テクスチャはプラグインでリアルタイムに差し替えれる
・プロジェクティブテクスチャのサポート
・Progressive Mesh も自動/手動で生成可能
・スケルトンアニメーション対応
・フレキシブルなシェイプのアニメーションも対応(モーフ、ブレンドなど)
・シーングラフ形式
・ポストエフェクト対応
・パーティクルシステム対応
・天球対応
ビルボード対応
・リソース(メモリ)マネージャと圧縮ファイルの読み込み対応
プラグイン対応
・メモリのデバッグ(リークなど)対応
XML のコンバータあり。
・Ogre Wikihttp://www.ogre3d.org/tikiwiki/tiki-index.php
・"グラフィクスエンジン"であり、サウンド、ネットワーク、物理エンジンなどは今は非対応。


以下有名すぎるので省略
・Unity (https://unity3d.com
Unreal Engine UDK (https://www.unrealengine.com
Blenderhttp://www.blender.org
XNAhttp://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


ちょっと意識して調べてみると、グラフィクスエンジンに必要な物が見えてきた気がする。
設計に詰まったらまた参考にさせてもらおう。