OSS探訪GitHubでログイン

XNA4 API互換を重視したC# runtimeで既存XNAゲームをWindows・Linux・macOSなどのdesktopへ移植・保守する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
3,051
主要言語
C#
ライセンス
MS-PL
リポジトリ最終更新
2026/10/02
ページ内ナビ

概要

FNAはMicrosoft XNA 4のruntimeを高い互換性で再実装するC# projectです。Microsoft.Xna.Framework namespaceとXNA4 APIの挙動を再現し、既存XNA titleの移植や保守をdesktop中心のopen platformで行うことを目的としています。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

XNA4 APIとruntime behaviorの互換性を重視する

FNAは新しいgame engineの独自APIではなく、XNA4 runtimeの正確な再実装を目標にしています。Microsoft.Xna.Framework namespaceを維持し、既存XNA codebaseを大きく書き換えずに動かす用途を中心にしています。

出典:[1][2]

graphics・audio・video・inputをnative backendと組み合わせる

repositoryはFNA3D、FAudio、Theorafile、dav1dfile、SDL2/SDL3のsubmoduleを参照し、C#側のXNA APIからgraphics、audio、video、window/input機能へ接続します。

出典:[4][2]

classic projectと.NET Standard向けprojectを用意する

従来形式のFNA.csprojに加えてFNA.NetStandard.csprojなどがあり、NetStandard版はnetstandard2.0をtargetにしています。移植対象のruntimeやbuild環境に応じてprojectを選べます。

出典:[2][3]

向いている用途

XNA4で作られたゲームをdesktopへ移植・維持したい場合に向く

XNA4 APIに依存する既存game codeを活かしながら、Windows以外も含むdesktop platformへ展開したいprojectや、長期保守でXNA互換runtimeが必要なtitleに適します。

出典:[1]

導入前の確認

Editorや新規game制作workflowを提供する総合game engineではない

READMEはFNAをdesktop向けXNA4 runtimeの再実装と位置付けています。scene editorや独自asset authoring environmentを提供するengineではないため、新規制作ではXNA/FNAのcode-driven workflowが前提になります。

出典:[1]

実行にはnative submoduleと複数licenseの確認が必要

source checkoutではFNA3D、FAudio、Theorafileなどのsubmoduleが必要です。FNA本体はMicrosoft Public Licenseですが、LzxDecoderはMS-PL/LGPL 2.1 dual license、Mono.Xna由来codeはMITなど、同梱componentのlicenseも確認してください。

出典:[5][6][7][4]

参考にした公式資料

  1. [1]FNA README snapshot(2026-10-04)
  2. [2]FNA project file snapshot(2026-10-04)
  3. [3]FNA .NET Standard project snapshot(2026-10-04)
  4. [4]FNA native submodules snapshot(2026-10-04)
  5. [5]FNA Microsoft Public License(2026-10-04)
  6. [6]FNA LzxDecoder license(2026-10-04)
  7. [7]FNA Mono.Xna-derived code license(2026-10-04)
編集部からの補足

FNAは新しいeditor型game engineではなく、既存XNA4 codeをできるだけそのまま維持・移植するためのruntimeです。採用判断ではXNA互換性に加え、FNA3D/FAudioなどnative componentの配布と各licenseも一緒に確認してください。

3ステップで試す

  1. 1

    submodule込みで確認済みFNA sourceを取得する

    FNA3D、FAudio、Theorafileなどのnative dependencyも必要なのでsubmodule込みで取得し、2026-10-04に確認したcommitへ固定します。

    git clone --recurse-submodules https://github.com/FNA-XNA/FNA.git && git -C FNA checkout 738c0a64df173c54187e78dde3a75d3d7a3e5c0e && git -C FNA submodule update --init --recursive
  2. 2

    .NET Standard版FNA assemblyをbuildする

    netstandard2.0 targetのmanaged assemblyをbuildします。この段階ではgame実行用のnative library配置までは行いません。

    cd FNA && dotnet build FNA.NetStandard.csproj -c Release
  3. 3

    生成されたFNA.dllを確認する

    managed runtimeのbuild結果を確認します。実際のgame実行では対象OS向けFNA3D/FAudio/SDLなどnative libraryの配布構成も必要です。

    cd FNA && test -f bin/Release/netstandard2.0/FNA.dll && echo 'FNA build OK'
公式READMEで確認

成長

成長の推移 · 直近30日

3,051 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
99
Open PR
33

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • xna
  • fna
  • csharp
  • gamedev
  • windows
  • macos
  • linux
  • steamos
Stars
3,051
Forks
335
Watchers
68
Open Issues
31
Contributors
48
所有者種別
Organization
主要言語
C#
ライセンス
MS-PL
リポジトリ最終更新
2026/10/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?
FNAとは?XNA4互換を重視したC# game runtime | OSS探訪