このプロジェクトについて

Permafrost Engineは、C言語で書かれたOpenGL 3.3のリアルタイムストラテジーゲームエンジンです。古典的なRTSゲームをエミュレートしつつ、現代的なアイデアを取り入れることを目的としています。このエンジンは、Steamで配信されている旗艦RTSゲームEVERGLORYの基盤であり、無料デモには学習や改変のためのすべてのゲームプレイスクリプトが含まれています。 主な機能は以下の通りです: - OpenGL 3.3のプログラマブルパイプライン(利用可能な場合は最新の拡張機能も使用) - ツール間の相互運用のための独自テキストモデル形式と、実行時の高速読み込みのためのバイナリ形式 - GPUスキニングによるスケルタルアニメーション。アニメーションポーズデータをテクスチャにバッチ処理し、多数のアニメーションエンティティを効率的にレンダリング - マテリアルを用いたPhong反射モデル、ディレクショナルライトのシャドウマッピング、バンプ/ノーマル/パララックスマッピング - 地形テクスチャスプラッティング、スカイボックス、距離ベースのメッシュLODレンダリング、動的バッチによるバッチレンダリング、リングバッファベースのGPUストリーミング - RTSおよびFPSカメラ、独自ファイル形式によるタイルベースのマップレンダリング - 反射、屈折、ソフトエッジ効果を備えた水面レンダリング - Image Quiltingを用いたプログラムによるテクスチャ合成、Wang Tilingを用いた非周期的タイリング - Python 2.7に公開されたエンジン内部、組み込みの対話型Pythonコンソール、イベントシステム、NuklearベースのUIフレームワーク - 効率的なレイキャスティング、マップ/シーンエディタ、一時停止/再開システム、巨大マップの高速レンダリング - マップナビゲーショングラフ/グリッド生成、ボイドのステアリング/フロッキング、階層的フローフィールド経路探索、動的障害物処理 - Hybrid Reciprocal Velocity ObstaclesとClearPathアルゴリズムを用いた動的な衝突回避、フォーメーションベースのユニット移動、ハンガリアンアルゴリズムを用いた最適なフォーメーション再編成 - ナビゲーションレイヤーを用いた異なるユニットタイプ/サイズの経路探索、陸/水/空ユニット、並列化された移動と経路探索計算 - コンピュートシェーダーによるGPUベースの群衆シミュレーション、SIMD加速されたビットマップグリッド空間インデックス、動的な空間領域へのエンティティ所属のリアルタイム追跡 - 位置効果と複数のグローバルエフェクトチャンネルを備えたオーディオシステム - RTS機能:ミニマップ、ユニット選択、戦闘、フォグオブウォー、基地建設、ワーカー/生産の自動化、資源採集/輸送、駐屯/輸送メカニクス、投射物物理シミュレーションを伴う遠距離戦闘 - 異なる解像度とアスペクト比のサポート、設定可能なグラフィックス設定 - Pythonインタプリタ状態全体のシリアライズ/デシリアライズ、Pythonで定義された状態を含む任意のエンジンセッションの保存/復元 - 2段階パイプラインでのマルチスレッドシミュレーションとレンダリング、高度なデバッグ可視化とプロファイリング計測、軽量なメモリ会計 - ユーザー空間でスケジュールされる軽量タスク用のファイバーシステム、協調的マルチタスクのためのファイバーベースのPythonタスク、ページレベルのCopy-on-Writeセマンティクスを用いたゼロコピーフォーク - クロスプラットフォーム(LinuxおよびWindows)、エラー時に自動でミニダンプとログを取得するWindowsランチャー 依存関係にはSDL2、GLEW、Python 2.7、OpenAL Soft、mi-malloc、stb_image、khash、nuklearが含まれます。これらはすべてソースからビルドし、ゲームバイナリと共に配布できます。 ビルド手順はLinuxおよびWindows(mingw-w64またはMSYS2を使用、Visual Studio 2022ソリューションも利用可能)向けに提供されています。エンジンは特別なリンク例外付きのGPLv3でライセンスされており、代替ライセンスがケースバイケースで付与される場合があります。 開発は、Pythonインタプリタの保存、グループ経路探索、フォグオブウォー、パフォーマンス最適化、ファイバー、基地建設などを扱う一連のYouTube開発ログで文書化されています。このプロジェクトには議論用の活発なDiscordコミュニティがあります。