小さな部品。
可能性が動き出す。
Awesome Engine はシーンで構成された 2D エンジンです。共有コンテキストにより、入力から最終フレームまで各ゲームが利用するシステムをまとめています。
確認済みのコードを見る ↗仕組みを
理解できる基盤。
Carlos Cortina が開発した Awesome Engine は、C++ のゲームロジックと SFML 上の再利用可能なサービスを組み合わせています。付属の 7 つのシーンは、小さく完結したゲームでグラフィックス、入力、音声、UI をつなぐ方法を示します。
設計はコンポジションを重視しています。シーンは EngineContext を受け取り、責務の明確なマネージャーを利用します。MIT ライセンスのコードなので、この基盤を学び、変更し、拡張できます。
リポジトリでは、制作の経緯や正式な目標はまだ公開されていません。ここではコードから読み取れる設計と確認済みの機能を説明します。
今すぐ探索できるもの。
描画とビュー
sf::RenderTexture 上のスプライト、図形、テキスト。sf::View によるビューと Bloom + Monitor のポストプロセス。
実装済み02シーンとライフサイクル
Start、Update、Render、OnEvent、OnPause、OnCleanup。遅延シーン切り替えと再開始。
実装済み03リソースとメモリ
テクスチャ、音声、フォントのキャッシュ。RAII、標準コンテナー、unique_ptr による所有権。
実装済み04入力と音声
複数の入力を割り当てられるアクション。キーボード、マウス、ゲームパッド、音楽、効果音、全体音量。
実装済み05インターフェースとツール
TGUI、一時停止オーバーレイ、カスタムカーソル、F12 の PNG 撮影、spdlog による診断。
実装済み06設定と保存
ウィンドウ、時間、音声を JSON で設定。スコアと状態をローカルに保存。
実装済み1 つのコンテキスト。
つながるシステム。
マネージャーは EngineContext の値メンバーです。SceneFactory は unique_ptr でシーンを構築し、所有します。
EngineContext
SceneFactory → Scene
Bounce · Clicker · MemoryCard · TicTacToe · MineSweeper · Runner · Tetris
1 フレームの旅
インターフェースとカーソルはシーンのポストプロセス後に描画されます。Glitch と色反転のコードは存在しますが、確認済みのチェーンでは無効です。
具体的なツール。
明確なバージョン。
大切なのは
限界も知ること。
確認された開発設定は Windows、MinGW、Ninja、GDB です。Linux と macOS は未検証で、確認が必要なパスの大文字・小文字の差異があります。
エンジンにはビジュアルエディター、ECS、汎用物理エンジン、スクリプティング、Web・モバイル出力はありません。ゲームの衝突や物理処理は各シーン固有です。