Amethystは開発終了?Rust製ゲームエンジンと役立つフレームワークまとめ

Amethystは、ゲーム開発者に革新的なアプローチを提供するRust製のゲームエンジンです。そのコアコンセプトであるECSアーキテクチャは、ゲームオブジェクトを柔軟かつ効率的に管理することを可能にします。また、2Dと3Dの両方に対応しているため、幅広いゲームジャンルに適用可能です。

残念ながら、2021年9月にAmethystの開発中止が宣言されました。とはいえ、Amethystが示した設計思想は、Rustゲーム開発において重要な指針となるでしょう。

この記事では、Amethystの特長や現在の状況を詳しく解説するとともに、Rustでゲームを作る際に有用な代替エンジンやフレームワークについても網羅的に紹介します。

Nao Yanagisawa
監修者 Jitera代表取締役 柳澤 直

2014年 大学在学中にソフトウェア開発企業を設立

2016年 新卒でリクルートに入社 SUUMOの開発担当

2017年 開発会社Jiteraを設立
開発AIエージェント「JITERA」を開発

2024年 「Forbes 30 Under 30 Asia 2024」に選出

執筆者 Shiho Maejima

COBOL→Java経験ありの元エンジニアです。システム開発に携わった経験から、皆さまにわかりやすいITの情報をお伝えします。

\エキスパートが回答!/
この記事に関する質問はこちら
記事に関するご質問以外にも、システム開発の依頼やAIの導入相談なども受け付けております。

    会社名必須
    必須
    必須
    Eメール必須
    電話番号必須
    ご依頼内容必須

    Amethystとは

    Amethystは、Rustで開発されたオープンソースのゲームエンジンです。データ指向設計とエンティティ・コンポーネント・システム(ECS)アーキテクチャを採用しており、効率的なゲーム開発を支援します。

    ECSアーキテクチャにより、ゲーム内の各オブジェクト(エンティティ)に対して個別のコンポーネントを付加し、それらをシステムで操作することで、柔軟かつ高性能なゲームロジックを実現可能です。

    Amethystは、ゲーム開発に必要な多くの機能を提供しています。レンダリング、入力処理、物理エンジン、サウンドエンジン、ネットワーク機能などが統合されており、柔軟なゲーム開発が可能です。例えば、2Dおよび3Dのレンダリングには「Vulkan」や「Metal」などのグラフィックスAPIを使用し、高速かつ高品質な描画を実現します​。

    Amethystの特徴

    ここからはAmethystの以下の3つの特徴について、詳しく解説します。

    • 2D/3Dの両方で開発できる
    • ホットリロードに対応している
    • ECSを採用している

    2D/3Dの両方で開発できる

    Amethystは、2Dと3Dの両方のゲーム開発に対応したゲームエンジンです。

    2Dゲーム開発では、Amethystは高品質なスプライトレンダリングとアニメーション機能を提供します。例えば、2Dプラットフォームゲームやパズルゲームなど、スムーズな動作と美しいビジュアルが求められるゲームに最適です。フラットシェーディングやタイルマッピングなどの機能も備えています​。

    3Dゲーム開発にも対応しており、VulkanやMetalなどの最新のグラフィックスAPIをサポートしています。複雑な3Dモデルやシーンの描画が可能です。リアルタイムでレンダリングされるオープンワールドゲームや、詳細なキャラクターモデリングが求められるアクションゲームなど、多岐にわたるゲームジャンルに対応できます。

    ホットリロードに対応している

    Amethystは、ホットリロード機能に対応しています。ホットリロード機能とは、開発中にコードを変更した際にゲームを再起動することなく、リアルタイムでその変更を適用できる機能です。ホットリロードは、ゲーム開発の効率を飛躍的に向上させます。

    ホットリロードにより、ゲームを実行中にコードの変更を即座に反映させることができます。コードの変更がゲームにどのような影響を与えるかを即座に確認でき、デバッグや調整が迅速に行えるのです。特に、ゲームプレイの微調整やビジュアルエフェクトの調整など、頻繁に変更が必要な作業において非常に有効です。

    さらに、ホットリロードは開発サイクルの短縮にも貢献します。通常、コードの変更をテストするためには、ゲームを停止して再コンパイルし、再度実行する必要がありますが、ホットリロードを使用することでこの手間が省けます。これにより、開発者は多くの時間を節約し、より多くのリソースをクリエイティブな部分に集中可能です。

    ECSを採用している

    ECSを採用している

    Amethystは、Entity Component System(ECS)アーキテクチャを採用しています。ECSとは、ゲーム開発において効率的かつ柔軟な設計を可能にする仕組みのことです。

    ECSは、エンティティ、コンポーネント、およびシステムの3つで構成されています。ゲーム内のすべてのオブジェクトを表したり、位置情報や速度を保持したりするほか、ゲームの動作を定義する役目も持ちます。

    AmethystがECSを採用することで得られる主なメリットの一つは、パフォーマンスの向上です。ECSアーキテクチャは並列処理を前提として設計されており、複数のシステムが同時に動作することが可能です。これにより、現代のマルチコアプロセッサの性能を最大限に活用でき、ゲームの実行速度が大幅に向上します​。

    データ(コンポーネント)とロジック(システム)が明確に分離されているため、コードの再利用性と保守性に優れ、コンポーネントを簡単に他のプロジェクトで再利用できます。

    Amethystは開発を終了している

    https://twitter.com/AmethystEngine/status/1444671106389057536

    Amethystは2024年現在、開発を終了しています。開発リソースの分散や他の営利的な活動へのシフトが背景にあるとされ、2021年に開発が停止されています​。

    公式の発表では、開発リソースを新しいプロジェクトである「Bevy」に集中させる方針が示されています。BevyもRustを使用したゲームエンジンであり、ECSアーキテクチャを採用するツールです。AmethystユーザーはBevyへの移行が推奨されています​。

    Amethystの開発が終了したため、将来のアップデートや新機能の追加は期待できません。オープンソースプロジェクトとしてGitHubに公開されており、コミュニティによるメンテナンスや改良が行われる可能性は残っているものの、将来性を考えると移行を検討すべきでしょう​。

    今後はAmethystに代わる他のRust製ゲームエンジンを考える必要があります。特にBevyは、Amethystの後継としてふさわしいツールの一つです。

    関連記事
    【入門者必見】Rustで使うRocketとは?難易度や使い方、メリット・デメリットなどわかりやすく解説!
    【入門者必見】Rustで使うRocketとは?難易度や使い方、メリット・デメリットなどわかりやすく解説!

    Amethyst以外でRustが使えるゲームエンジン・フレームワーク8選

    Amethystの開発は2021年に終了しているため、ゲームエンジンとしての新たな展開は望めません。そのため、ここでは、Amethyst以外でRustが使用できる以下8つのゲームエンジン・フレームワークを紹介します。

    • Piston
    • Fyrox
    • Bevy
    • goku
    • Arete Engine
    • Rust-SDL2
    • Tauri
    • Nannou

    Piston


    引用:Piston

    Pistonは、Rustで書かれたモジュラー型のゲームエンジンです。Pistonの主な特徴は、その柔軟性とモジュール性にあります。これにより、開発者は必要な機能のみを選択し、独自のニーズに合わせたカスタマイズが可能です​。

    Pistonは、Model-View-Controller(MVC)パターンを採用しています。MVCにより、コードの分離と再利用が促進され、保守性が向上します。Pistonの主な特徴や機能、対応OS、公式サイトまたはgithubのページは以下です。

    概要
    主な機能 2Dおよび3Dグラフィックスレンダリング。
    DyonというRustで作られた動的型付けスクリプト言語を使用可能。
    画像の読み込み、加工、保存などをサポート。
    対応OS クロスプラットフォーム対応
    公式サイトまたはgithubのページ Piston

    Fyrox


    引用:Fyrox

    Fyroxは、Rustで書かれた高機能なゲームエンジンであり、2Dおよび3Dの両方のゲーム開発をサポートしています。もともと「rg3d」として知られており、ゲーム開発の効率を向上させるために様々なツールと機能を持つエンジンです。

    Fyroxは統合開発環境(IDE)として、独自のエディター「Fyroxed」を備えています。このエディターは、シーンの編集、アニメーションの作成、エンティティの管理など、ゲーム開発に必要なすべての機能を一つのインターフェースで操作できるように設計されているのです。

    優れた設計によって直感的な操作が可能となり、開発のスピードと効率が大幅に向上させられます。

    概要
    主な機能 2Dおよび3Dグラフィックスレンダリング。
    洗練されたアニメーションシステム。
    ゲーム内での臨場感ある音声表現が可能。
    対応OS クロスプラットフォーム対応(Windows、Linux、macOS、WebAssembly、Androidサポートなど)
    公式サイトまたはgithubのページ Fyrox

    Bevy


    引用:Bevy

    BevyはRustで開発されたデータ駆動型のゲームエンジンで、簡単かつ柔軟性に富んだ設計が特徴です。無料かつオープンソースであり、初心者から上級者まで幅広いユーザーに対応しています。

    BevyはEntity Component System (ECS)を採用しており、ゲームロジックを効率的に管理できます。ECSの特長は、並列処理が可能でキャッシュフレンドリーな点です。コンポーネントはRustの構造体、システムはRustの関数として実装され、これにより高速かつモジュール性の高い設計が実現しています。

    概要
    主な機能 2Dおよび3Dグラフィックスレンダリング。
    ECSベースのジョイントAPIによる骨格アニメーションをECS駆動のカスタムUIフレームワーク内蔵。
    ホットリロード可。
    対応OS クロスプラットフォーム対応(Windows、macOS、Linux、Web、iOS、Androidなど)
    公式サイトまたはgithubのページ Bevy

    goku


    引用:goku

    gokuはRustとSDL2を基盤とした新しいゲームエンジンです。Rustのメモリ安全性とSDL2のクロスプラットフォーム対応の強みを活かして、パフォーマンスと使いやすさを両立しています。

    初心者からプロフェッショナルまで幅広いユーザーに向いており、特にパフォーマンスを重視するゲーム開発に適しています。簡単なインストール手順で利用可能で、PythonとPyTorchを用いた新しいピクセルキャラクタージェネレーターも搭載しているため、AIを利用したゲーム開発が可能です。

    概要
    主な機能 2Dおよび3Dグラフィックス、オーディオ制御、物理アニメーション、GUI開発インターフェースなどをサポート。
    ECSベースのジョイントAPIによる骨格アニメーションをサポート。
    対応OS クロスプラットフォーム対応(Windows、macOS、Linux、Web、iOS、Androidなど)
    公式サイトまたはgithubのページ goku

    Arete Engine


    引用:Arete Engine

    Arete Engineは、Rustベースで開発された新しいタイプのゲームエンジンです。特にユニファイドメモリを活用した設計が特徴で、性能と最適化に重きを置いています。ECSアーキテクチャを採用しており、データ指向の設計により、多くのオブジェクトが存在するシーンでも高速に動作します。

    またArete Engineはまだ開発途中であり、新機能の追加や既存機能の改善が進められている点も特徴です。

    公式サイトやGitHubリポジトリでは、エンジンのインストール手順や使用方法、デモプロジェクトなどが提供されており、コミュニティフォーラムやDiscordチャンネルを通じて開発者と直接交流することも可能です。Arete Engineは将来的により多くの機能を提供する予定であり、ゲーム開発者にとって有力な選択肢となることが期待されています​。

    概要
    主な機能 エンティティのスポーン、トランスフォーム、メッシュの管理、カメラの設定。
    対応OS クロスプラットフォーム対応(Windows、macOS、Linux、Web、iOS、Androidなど)
    公式サイトまたはgithubのページ Arete Engine

    Rust-SDL2


    引用:Rust-SDL2

    Rust-SDL2は、Rust言語でSDL2ライブラリを使用するためのバインディングです。SDL2(Simple DirectMedia Layer)とは、クロスプラットフォームのマルチメディアライブラリで、グラフィックス・サウンド・入力処理など、ゲーム開発における基本的な機能を備えています。

    Rust-SDL2を使用することで、Rustの持つメモリ安全性や並行処理の強みを活かしつつ、SDL2の強力なマルチメディア機能を活用できるため、高品質なゲーム開発が可能です。ゲームエンジンやフレームワークとしての柔軟性が高く、幅広いゲームジャンルに対応できます。

    概要
    主な機能 2Dグラフィックスの描画、オーディオ再生、ユーザー入力の処理、ウィンドウ管理。
    対応OS クロスプラットフォーム対応(Windows、macOS、Linux、Web、iOS、Androidなど)
    公式サイトまたはgithubのページ Rust-SDL2

    Tauri


    引用:Tauri

    Tauriは、Rustで構築されたオープンソースのフレームワークで、軽量かつセキュアなデスクトップアプリケーションの作成に役立ちます。従来のElectronに似ていますが、リソースの効率性とセキュリティに重点を置いています。

    TauriはRustの安全性とパフォーマンスを活かし、軽量でセキュアなデスクトップアプリケーションを提供するための強力なツールです。Web開発者にとっては、既存のスキルを活用しつつ、ネイティブアプリケーションの開発が可能になる魅力的な選択肢となります。

    概要
    主な機能 コマンドラインツール使用可。
    モジュールアーキテクチャ。
    厳格な権限管理と安全なエンドポイントを提供。
    カスタマイズ可能なテンプレート作成可。
    対応OS クロスプラットフォーム対応(Windows、macOS、Linux、Web、iOS、Androidなど)
    公式サイトまたはgithubのページ Tauri
    関連記事
    【入門】Tauriとは?RustのフレームワークTauriでios/Androidのアプリを作る方法
    【入門】Tauriとは?RustのフレームワークTauriでios/Androidのアプリを作る方法

    Nannou


    引用:Nannou

    Nannouは、クリエイティブコーディングのために設計されたRust製のフレームワークです。特にビジュアルアートやインタラクティブなインスタレーションの制作に向いています

    Nannouは、Rustの安全性とパフォーマンスを活かしながら、使いやすいAPIを提供しています。そのため、アーティストやデザイナーが技術的な壁に阻まれることなく、自分のビジョンを実現できるのが特徴です。

    概要
    主な機能 2Dおよび3Dのグラフィックスを簡単に描画できるライブラリ搭載。
    リアルタイムのオーディオ入力と出力を処理する機能。
    ユーザー入力(マウス、キーボード、タッチ)の処理も簡単。
    対応OS クロスプラットフォーム対応(Windows、macOS、Linux、Web、iOS、Androidなど)
    公式サイトまたはgithubのページ Nannou

    Amethystは開発終了している!ほかのRust製ゲームエンジンを検討しよう

    Amethystは、Rust言語で書かれたオープンソースのゲームエンジンです。ECSアーキテクチャの採用により、高いモジュール性とパフォーマンスを備えています。2Dおよび3Dのゲーム開発が可能であり、多くの開発者に愛用されてきました。しかし2021年10月に公式Twitterアカウントで開発終了が発表され、その理由として開発リソースの不足や他のプロジェクトへのシフトが挙げられました。

    Amethystの開発が終了した今、Rustでゲームを開発するための他のゲームエンジンを検討する必要があります。この記事で紹介したゲームエンジンやフレームワークを代替手段として効率的にゲーム開発を進めてみてはいかがでしょうか。

    Amethystや他のRust製ゲームエンジンについての詳細な情報や相談が必要な場合は、株式会社Jiteraにお問い合わせください。専門のエンジニアが適切なサポートを提供します。

    コスト削減も課題解決も同時に実現

    「JITERA」で迅速
    ソフトウェア開発

    開発を相談する
    おすすめの記事

    その他のカテゴリー

    email-img
    メルマガ登録
    JITERA社内で話題になった生成AIトレンドをいち早くお届けします。
    Thank you!

    Jiteraのメールマガジン登録が完了しました。