OpenSiv3D 開発ロードマップ

4 min read読了の目安(約4300字 7

OpenSiv3D v0.6.0

リリース予定時期: 2021 年前半。開発・調査中で未記載の新機能もあります。

主要な新機能

全体

  • Web 版の追加 (experimental)
  • ユーザアドオンの追加機能

グラフィックス

オーディオ

  • テンポとピッチの変更
  • macOS / Linux 版でのフェードイン・フェードアウトサポート
  • Opus サポート
  • Ogg Vorbis のループタグ取得

その他

  • C++20 対応
  • 図形の計算・操作の拡充
  • 統計計算ライブラリ: Statistics::
  • 正規表現
  • ScopeGuard
  • UniqueResource
  • 環境変数読み取り: EnvironmentVariable::Get(StringView)
  • コマンドライン引数の取得: System::GetCommandLineArgs()
  • デマングル
  • シリアル通信での DTR, RTS 対応
  • JSON の読み書きクラス統合
  • Lua 対応
  • レーベンシュタイン距離
  • HTTP クライアント
  • 凹包 (Concave hull)
  • 長方形詰め込みで回転を許可するオプション
  • 暗号化
  • Math::Map()
  • 128-bit 整数型: int128, uint128
  • 絵文字データセットの更新
  • Image の最大サイズを 1 辺 8192px → 16384px に拡張
  • 画像ファイルの情報を表現する ImageInfo クラス
  • 柔軟な画像デコーダ、エンコーダ
  • プラットフォームごとの乱数の再現性の改善
  • 閉 / 開区間を指定した乱数生成
  • RandomVec2(Line), RandomVec2(Quad)
  • Stopwatch, Timer にカスタム基準時刻を提供可能に
  • ConstantBuffer サイズ 16 × N バイト制約の撤廃
  • Linux 版と Windows / macOS 版の機能ギャップの縮小
  • Linux 版のビルドの簡易化 / 依存ライブラリの整理
  • NavMesh の改善
  • YesNo クラス
  • 入力されているキーやマウスのボタンの一覧取得
  • CursorStyle に ResizeNWSE, ResizeNESW, ResizeAll を追加
  • SIV3D_SET() によるエンジン設定

パフォーマンス向上

  • 画像、音楽ファイルの読み込み高速化
  • Windows 版、v0.4.3 比で 1 フレーム分遅延が少なく描画されるように
  • Parse / ParseOpt / ParseOr の速度改善
  • ハッシュテーブルの Heterogeneous lookup サポート
  • 精度を落とした高速な数学関数の利用

ドキュメント

  • ライブラリのファイル構成を hpp / cpp から hpp / ipp / cpp に変更し、ヘッダファイルを簡素に
  • ヘッダのドキュメントを整備

バグの修正

  • v0.3 ~ v0.4 時代に報告されたバグの解決
  • Optional をより標準に準拠
  • QR コード生成の不具合の修正

機能の削除

  • Unicode 形式以外のテキストファイルのサポートの削除

バージョン移行時の注意

  • Math::SmoothDamp() の引数が、通常の用途で短く書けるよう変更されました(必ず修正が必要です)
  • ConcurrentTaskAsyncTask に名前が変更されました
  • マルチスレッド関連 API の使用に SIV3D_CONCURRENT マクロの定義は不要になりました
  • Vec2::setLength(double) は自身を変更せず、変更後の値を返すようになりました。従来の使い方は Vec2::setlengthSelf(double) を使います
  • 乱数の分布クラスの仕様変更により、乱数の結果が旧バージョンと異なります
  • High DPI ウィンドウがデフォルトになり、SIV3D_WINDOWS_HIGH_DPI マクロは廃止されました
  • Stopwatch のコンストラクタなど、一部の API の bool 型の引数は、より説明的な YesNo 型に変更されました
  • 2D 図形のインデックス配列は Array<uint16> ではなく Array<TriangleIndex> で表現するようになりました。1 つの TriangleIndex は 3 つのインデックス情報を持つので、配列の要素数は 3 分の 1 になります
  • Key クラスは Input クラスに名前が変更されました

OpenSiv3D v0.6.1 ~ v0.6.2

リリース予定時期: 2021 年後半

主要な新機能

  • 数式のレンダリング
  • UDP 通信対応
  • OSC 対応
  • マルチタッチ対応
  • ペンタブのサポート
  • 高度な 3D 表現の追加
  • テキストの縦書き描画の改善
  • glTF サポート
  • 3D 物理演算
  • Apple Silicon 対応
  • ゲーム開発を補助するライブラリ

ドキュメント

  • API リファレンスの完成

OpenSiv3D v0.7.0

リリース予定時期: 2021 年末

主要な新機能

  • 流体シミュレーション
  • 3D 地形の構築、レンダリング
  • Effekseer との連携
  • Sprite Studio との連携
  • Azure Kinect との連携
  • Leap Motion との連携
  • Photon との連携
  • MIDI ファイルのレンダリング
  • PSD ファイル読み込み
  • 3D アニメーション

OS サポートの終了

  • Windows 7 SP1 のサポートを終了
  • macOS 10.14 Mojave のサポートを終了

OpenSiv3D v0.8.0

リリース予定時期 2022 年 夏

主要な新機能

  • 複雑な GUI のサポート
  • C++23 対応

OpenSiv3D v0.8.x

リリース予定時期 2022 年 秋

  • v1.0 リリースに向けた API の調整、ドキュメントの整備

OpenSiv3D v1.0

リリース予定時期 2022 年 秋

OpenSiv3D の v1.0 の大まかな条件としては

  • 旧 Siv3D の機能を完全にカバー (v0.7.x で達成予定)
  • 十分に整備された 3D 描画 API (v0.6.0 で初実装、1 年以上かけて安定化)
  • 全 API のドキュメント整備(v0.6.2 で達成予定)
  • 以降の破壊的変更の抑制(v0.8.x で達成予定)

を考えています。したがって、早ければ 2022 年秋頃の v0.8.x がほぼそのまま v1.0 になる見込みです。