INDIE INDEX

レベル:開発者向け

SFML とは|窓・描画・音・通信をまとめた C++ の無料のライブラリ

公開 2026-09-12更新 2026-10-18SFML

SFML は、窓の表示・描画・音・ネットワーク通信をまとめて扱える C++ のマルチメディアのライブラリです。zlib/libpng ライセンスで公開されていて、商用でも個人でも無料で使えます。SFML を使っていると書かなくてもかまいません。

分類
ゲームエンジン・フレームワーク
日本語対応
日本語非対応
費用
無料
公式サイト
https://www.sfml-dev.org/
このページの目次
  1. SFML の概要
  2. SFML の特徴
  3. SFML の費用とライセンス
  4. 情報源

SFML の概要

SFML(エスエフエムエル、Simple and Fast Multimedia Library)は、環境をまたいで使える、オブジェクト指向のマルチメディアの API です。窓の表示、描画、音、ネットワーク通信への入り口を用意します。

書かれている言語は C++ です。C・.NET・Ruby・Python など他の言語からも使えるように接続部(バインディング)が用意されています。

開発は master の枝にある版3に集まっていて、2.x の系列にはこれ以上の機能の追加は予定されていません。

SFML の特徴

SFML が持っている5つのモジュール

SFML は、パソコンのさまざまな部分を単純な形で呼び出せるようにして、ゲームとマルチメディアのアプリケーションを作りやすくします。system・window・graphics・audio・network の5つのモジュールでできています。

モジュール 扱うもの
system SFML の土台のモジュールで、さまざまなユーティリティを定めます
window OpenGL を使った窓と、イベントと入力の扱い
graphics 2Dの描画(スプライト・文字・図形など)
audio 音・ストリーミング(音楽か自前の音源)・録音・音の空間での配置
network ソケットを使った通信・ユーティリティ・上位のネットワークプロトコル(HTTP・FTP)

APIとは

プログラムから別のプログラムの機能を呼び出すための決まりごとのことです。ここでは、SFML が用意している関数やクラスの並びを指します。

graphics のモジュールが扱うのは2Dです。sf::RenderWindow は、2Dの描画の対象にできる窓です。

公式の API の資料に載っている短い例では、窓を作り、テクスチャからスプライトを作り、フォントから文字を作り、音楽を読み込んで再生し、イベントを拾いながら画面を消して描いて表示する、という流れが1つの main に収まっています。

SFML の使用言語

本体は C++ です。公式の接続部(バインディング)は、C と .NET の言語向けのものです。

そのほかにも、コミュニティの手で、Java・Ruby・Python・Go など多くの言語から使えるようになっています。それぞれの接続部は、公式サイトの接続部(Bindings)のページから探せます。

SFML の対応プラットフォーム

SFML で作ったアプリケーションは、次の主な OS で、そのままコンパイルして動かせます(Android と iOS は制限つき)。

OS 対応
Windows そのままコンパイルして動かせます
Linux そのままコンパイルして動かせます
macOS そのままコンパイルして動かせます
Android と iOS 制限つきで対応します

主な OS 向けには、コンパイル済みの SDK が配布のページに置かれています。

SFML の動作環境

SFML 3.0.2 の配布のファイルは、OS ごとに分かれています。Windows 向けのファイルでは、コンパイラの版が完全に一致していなければなりません。

OS 配布されているもの
Windows Visual C++ 17(2022)の32ビットと64ビット/GCC 14.2.0 MinGW(UCRT)の32ビットと64ビット
Linux GCC の64ビット
macOS Clang の64ビット(macOS 14.2 以降)/Clang の ARM64(macOS 15.5 以降)
どの OS でも ソースコードと HTML の資料

Windows では、32ビットと64ビットのどちらのライブラリを選ぶかは、手元の OS ではなく、どちらの環境に向けてコンパイルするかで決めるべきものです。MinGW のパッケージを使うときは、GCC の版が見かけ上そろっているだけでは足りず、WinLibs UCRT 14.2.0(32ビット・DW2)または WinLibs UCRT 14.2.0(64ビット・SEH)のどちらかのコンパイラを使う必要があります。

Linux では、パッケージマネージャーにある SFML(十分に新しい版のとき)を使うか、ソースから組み立てることもできます。32ビット向けの SFML が要る場合は、自分で組み立てることになります。macOS では Homebrew からも入れられます。

CMake を使ったプロジェクトの雛形も用意されています。この雛形は、自分のアプリケーションと一緒に SFML を自動で取ってきて組み立てます。

SFML が読み込める形式

SFML は外部のライブラリとして、stb_image・stb_image_write(パブリックドメイン)、freetype、libogg、libvorbis、libflac、dr_mp3、miniaudio、cpp-unicodelib、HarfBuzz、SheenBidi、qoi、Mbed TLS、wepoll、libssh2 を使っています。これらはそれぞれのライセンスで配られています。

公式の API の資料の短い例では、画像に .jpg、フォントに .ttf、音楽に .ogg のファイルが読み込まれています。

SFML の資料

SFML を学ぶ場には、公式のチュートリアル、オンラインの API の資料、コミュニティの Wiki があります。導入の手引きは、対応する環境とコンパイラごとに用意されています。

API の資料は、SFML 3.1.0 から 1.6 までの版ごとに分かれています。公式サイトの Learn のページには、SFML の書籍の一覧もあります。

SFML の費用とライセンス

無料です。SFML のライブラリとソースコードは、zlib/libpng ライセンスで配られています。

SFML は、どんな用途にも無料で使えます。商用でも個人でも、ソースを公開しない作りでも公開する作りでも構わず、自分のプロジェクトに入れられます。ただし、元のソフトウェアの由来を偽ってはならず、元のソフトウェアを自分が書いたと言ってはいけません。改変したソースの版はそうと分かるようにはっきり示し、元のソフトウェアと偽ってはいけません。ソースの配布物から、このライセンスの表示を消したり変えたりしてはいけません。SFML を使っていると書くことは省いてもかまいませんが、書くことは歓迎されます。

項目 内容
費用 無料です
ライセンス zlib/libpng ライセンスです
商用の利用 できます
ソースを公開しない作り できます
表記の義務 ありません(書くことは歓迎されます)
外部のライブラリ それぞれのライセンスで配られています
著作権の表示 Laurent Gomila

最新の正式な版は公式サイト sfml-dev.org から入手します。開発中の版は Git の置き場から、最新の断面は成果物の置き場からダウンロードできます。

ソースコードは GitHub の SFML/SFML にあります。作者は、Laurent Gomila をはじめとする開発者と、SFML のコミュニティの多くの参加者です。

情報源

SFML のページに出た言葉

SFML と同じ分類のほかのツールゲームエンジン・フレームワーク 全62件

ゲームエンジン・フレームワークの一覧を見る

このページの内容の誤りは、問い合わせの窓口で受け付けています。