2D エンジン · オープンソース

アイデアをコードに。
世界が
動き出す。

何を作れるか探求するための C++ ゲームエンジン。2D 描画、シーン、音声、ツールを、最初から最後まで理解できる構成にまとめています。

>_C++20 / SFML 3.1 / あなたの次のアイデア。
Awesome Engine / Runner2D
Runner の実際のスクリーンショット。光に包まれた街の屋根を、キャラクターが障害物をよけながら走ります。
AWESOME ENGINE で実行↗
支える技術は
確かな基盤。
C++20◈ SFMLTGUI1.13△ CMake技術を見る ↗
01 / エンジンの内部

アイデアに命を与える
部品。

最初のイベントから最後のピクセルまで。実装を公開した具体的なシステムが連携し、その仕組みを探索できます。

そのほか:リソース、パーティクル、UI、JSON 保存、スクリーンショット。エンジンを知る →
02 / 理解できるアーキテクチャ

コードから画面へ。
ブラックボックスなしで。

エンジンが調整し、シーンがゲームを定義します。マネージャーは必要なリソースとシステムを担当します。

01シーンScene::Render()
02RenderTextureオフスクリーン描画
03Bloom + MonitorGLSL ポストプロセス
04ウィンドウGUI + カーソル + display

実装されたパイプラインの概念図: RenderManager.

アーキテクチャを探索 ↗
03 / Awesome Engine で制作

コードが動き出す。

ショーケースを開く ↗
多層の街並み、障害物、距離 HUD を表示した Runner の実際のゲームプレイ。
エンジンのシーン

Runner

止まらない街。
走る、跳ぶ、滑り込む。

パララックススプライトパーティクル音声
ゲームの動きを見る ↗
04 / 基本から始める

コードを読む。
エンジンを理解する。
次の作品を作ろう。

C++20 の基盤、CMake で宣言された依存関係、ソースコードとつながるドキュメント。

ドキュメントを探索 ↗
Engine / Source / Main.cpp
int main() {
  Engine engine;

  while (engine.IsRunning()) {
    engine.ProcessEvent();
    engine.Update();

    if (!engine.HasFocus()) {
      sf::sleep(sf::milliseconds(10));
      continue;
    }

    engine.Render();
  }
}
実際のエンジンループ · ソースを見る ↗
次の一歩はあなたから

コードを開こう。
アイデアに火をともそう。