Play Siv3D!

ゲームとメディアアートのための C++ ライブラリ「Siv3D」

ゲームとメディアアートのための C++ ライブラリ「Siv3D」 (2014年版)

ゲームとメディアアートのための C++ ライブラリ「Siv3D」

C++ Advent Calendar 2014, 12 日目 の記事です。

Siv3D は C++ で楽しく簡単にゲームやメディアアートを作れるライブラリです。Kinect や Leap Motion, カメラやマイクといった多くのデバイスに対応し、複雑なインタラクションを短いコードで書くことができます。2008 年から開発を始め、2012 年に α 版を公開、2013 年 9 月には IPA 未踏事業に採択 、2014 年 9 月に CEDEC に出展、2014 年 11 月に最新版 Siv3D November 2014 をリリースしました。これまで 様々なゲームやアプリケーション が Siv3D で開発されています。

▼ グラフィカルでインタラクティブなアプリケーションを数行のコードで作れる

# include <Siv3D.hpp>

void Main()
{
	const Font font(30);

	while (System::Update())
	{
		Circle(Mouse::Pos(), 100).draw();

		font(Mouse::Pos()).draw(50, 200, Palette::Orange);
	}
}

Siv3D が目指していること

音や画像、いろいろなデバイスを使うアイデアの実現を助け、ゲームやメディアアートのプログラミングを楽しく簡単にします。短いコードで視覚的・聴覚的フィードバックを得られる特長を活かし、プログラミングの学習や教育での活用にも取り組んでいます。将来的に Processing や openFrameworks に並ぶツールとして、世界中のプログラミング学習者やクリエイターに使ってもらうことを目指しています。

特長

短いコード


8 行で 地球儀、10 行で お絵かきソフト、19 行で Kinect の情報の表示、26 行で Twitter クライアント、32 行で ブロック崩し、58 行で シューティングゲーム といったように、C++ とは思えないほど簡単なコードで本格的なゲームやアプリケーションを開発できます。コードはコピー&ペーストで手軽に共有できるので、開発者同士の情報交換が促進されます。

音や画像で遊べる多くの機能


録音FFT, 曲のテンポやピッチの変更画像の加工顔の検出、AR マーカーの検出など、様々な音声・画像処理を 1 行で実現できます。音声波形はサンプル単位、画像はピクセル単位でアクセスできるので、低レイヤの処理も書くことができます。豊富な機能を組み合わせて、これまでなかったようなアイデアを生み出しましょう。

13 種類の入力デバイスをサポート


マウスキーボードペンタブレットWeb カメラマイクゲームパッドXbox 360 コントローラマルチタッチLeap Motion V2, Kinect v1, Kinect v2, Arduino, シリアルデバイスなど 13 種類の入力デバイスを標準サポートします。特別なアドオンをインストールしなくても、数行のコードを追加するだけで、これらのデバイスをプログラムの中で活用できます。

ゲーム開発に便利な機能


様々な図形同士の交差・包含判定 があらかじめ用意されているので、あたり判定に悩む必要はありません。標準 GUI を使えば、ボタンやスライダー、チェックボックスの作成は関数 1 つで済みます。画像からのポリゴン作成メッシュ作成 など、ゲームのデータやアセットの作成を支援する機能も多く用意されています。

ハイパフォーマンス


Direct3D 11 のインスタンス描画を使った パーティクル、Deferred Rendering による 最大 128 光源の表現、SIMD を活用した画像処理、FFT など、あらゆる機能がパフォーマンスを重視して設計されています。

最新の C++ の規格で書かれている

ライブラリやサンプルはすべて最新の C++11/14 規格で書かれているので、Siv3D を使うことで新しい C++ の書き方を学習できます。Visual Studio に先駆けて実装された std::optional は、Siv3D API には欠かせない機能になっています。

すぐに開発を始められる

Siv3D をインストールすると Visual Studio のプロジェクト作成メニューに Siv3D の項目が追加されます。導入手順は簡単で、ダウンロードから 30 秒もあればサンプルのビルド・実行を試せます。

2015 年に予定している新機能

コンパイル時間を 0 秒に

アプリケーションを再起動させることなく、インタラクティブにコーディングの結果を反映させる機能を開発しています。

▼ デモ: プログラムの変更が即座に反映される(早送りなし)

ビジュアルやゲームバランスの調整をさくさく試せます。

▼ デモ: ビルドで待たされないゲーム開発(2 . 5倍速)


クロスプラットフォーム対応

Mac OS X / Android 版の開発を進めています。

物理演算との連動

Box2D や Bullet と連動して、シーン上の図形やオブジェクトにリアルな挙動を与える仕組みを準備しています。

3D グラフィックスの強化

SSAO, シャドウ、水面、地形など、リアリティのあるシーンのレンダリングを実現する機能を開発しています。

新しいデバイスへの対応

視線検出デバイスや、筋電から手の動きを取得するデバイスなど、昨今登場した新しいデバイスに対応していきます。

Siv3D を始めよう

インストール

最新の Visual Studio 2013 がインストールされていれば、Siv3D のインストール の手順を踏むだけで、30 秒もかからずにセットアップが完了します。Play Siv3D! に掲載されているサンプルコードをコピー&ペーストして、いろいろな音や画像の処理、インタラクションを試してみてください。

開発に協力したい!

バグの報告や新機能の提案を ユーザ助け合い所 で受け付けています。Siv3D を使った開発実績(複数のアプリケーションの公開)があり、アドオンやコア機能の開発に興味のある方は、メールか Twitter で 連絡 を頂ければ開発グループに招待しています。将来的にはオープンソース化を予定しています。




C++ Advent Calendar 2014, 明日の担当は @regenschauer490 さんです。よろしくお願いします。