DotFeather Versions Save

A closs-platform generic gameengine built on C#/.NET 6

3.2.0

2 years ago

3.2.0

追加

  • DF.Run<T> メソッドを追加
    • 指定したシーンを起動時に自動的に読み込みます。

3.1.0

2 years ago

3.1.0

本バージョンから .NET 6 が必須となります。

追加

  • DFMouse にイベントを追加
    • Click - クリックした
    • ButtonDown - ボタンを押した
    • ButtonUp - ボタンを離した
    • Move - カーソルが移動した
    • Enter - カーソルがウィンドウに入った
    • Leave - カーソルがウィンドウから離れた
  • Vector型に、指定した矩形領域に接しているかを計算する In() メソッドを追加

変更

  • バックエンドをOpenTK/OpenGL 1ベースからSilk.NET/OpenGL 3に変更
    • ⚠ DotFeatherだけでなくOpenTKのAPIも併用していた場合、ソースコード互換性は失われます。
  • Disposeされたテクスチャを描画しようと試みた場合、警告を発生させるように
  • DF.Window.FollowsDpi プロパティを非推奨に
  • DF.Window.ActualSize, ActualWidth, ActualHeight プロパティへの設定を非推奨に
  • Ellipse および Polygon の描画(Graphic, Shape) を非推奨に
    • 既に動作しなくなっています

不具合修正

  • Windows 11およびmacOS Montereyで動作しない問題を修正
  • コンソールが見切れる不具合を修正

既知の不具合

  • Texture: 特定の状況で大量のテクスチャを読み込んだ際に、途中でテクスチャを正常に読み込めなくなる
  • Audio: 停止にラグがある
  • Input: macOSで日本語入力をすると、入力文字列よりも前に改行が挿入される

3.0.0

3 years ago

3.0.0 Most Revolutionary Update

新機能

  • ElementBase 抽象クラスを追加しました
    • ElementBase を継承するクラスを Element と呼び、DotFeather v3 における描画の基本単位とします
  • Texture9Sliced 構造体を追加しました
  • Component 抽象クラスを追加しました
    • Component クラスを継承したコンポーネントを Element にアタッチすることで、新しいクラスを作ることなくElementを拡張できます
  • Shape Elementを追加しました
  • IWindow インターフェイス を追加
    • ゲームのレンダリングを行う画面周りの機能を提供します
    • GameBase の持っていたメンバーの多くが提供されます
  • IConsole インターフェイスを追加
    • GamebasePrint Cls ConsoleCursor など、コンソール系の API はこちらです
  • DF 静的クラスを追加
    • Run Exit NextFrame メソッド、Root プロパティなどを含みます
  • 図形描画用の低レベル API を追加
    • IPrimitiveDrawer インターフェイスを追加
      • Shape エレメントはこの API を使うように
  • Tilemap#RenderingMode プロパティ(TilemapRenderingMode 型)を追加しました
    • TilemapRenderingMode.RenderAll
      • 全タイルのうち、画面に存在するものを毎回描画します(従来方式)
    • TilemapRenderingMode.Scan
      • 画面の左上から右下まで走査し、存在するタイルを描画します(新アルゴリズム)
    • TilemapRenderingMode.Auto
      • 画面に存在可能なタイル数よりも実際のタイル数が多い場合はScan, 少ない場合はRenderAllを意味します
      • 標準はこれ
      • どちらが最適なアルゴリズムかわかりきっている場合や、新方式で問題が発生する場合などは手動で設定してください

改善

  • Vector クラスと (float, float) タプル間で暗黙的型変換されるように
    • 例えば Location = (16, 48) というシンプルな書き方ができます
  • VectorInt クラスと (int, int) タプル間で暗黙的型変換されるように

破壊的変更

本アップデートは、非常に多くの破壊的変更を含みます。v2からのマイグレーションガイドを参照し、お使いのプロジェクトを更新してください。

なお、近日中にv2との互換性をある程度向上するためのプラグインを公開予定です。

バグ修正

  • テキストの描画がおかしい問題を修正

その他

  • 依存関係を更新

3.0.0-rc.2

3 years ago

DotFeather v3 RC2

RC1 からのチェンジログ

バグ修正

  • NuGetでインストールしたときに正しいバージョンのNVorbisがインストールされない問題を修正

3.0.0-rc.1

3 years ago

DotFeather v3 RC1

このバージョンは、DotFeather v3の最初のリリース候補版です。実際の製品開発にご利用頂けます。

DotFeather v3では、v2に比べて多くのAPIの廃止・作り直しが行われています。その数は非常に多いため、v2からの移行ガイドを近日中に用意します。

3.0.0 Public Beta 5 からのチェンジログ

バグ修正

  • テキストの描画がおかしい問題を修正

2.9.2 からのチェンジログ

描画機能

  • ElementBase 抽象クラスを追加しました
    • ElementBase を継承するクラスを Element と呼び、DotFeather v3 における描画の基本単位とします
  • Texture9Sliced 構造体を追加しました
  • Component 抽象クラスを追加しました
    • Component クラスを継承したコンポーネントを Element にアタッチすることで、新しいクラスを作ることなくElementを拡張できます
  • 描画可能オブジェクト(IDrawable インターフェイスを実装するクラス)を全て Element として再実装しました
  • NineSliceSplite クラスは Texture2D 配列の代わりに Texture9Sliced 構造体を使うようになりました
  • Shape Elementを追加しました
    • 従来 Graphic オブジェクトが描画する図形を表現していたクラスのリメイクです
    • Shape Elementを単独で生成することで、Graphic Element無しに図形描画ができるように
  • Container クラスのインデクサは読み取り専用になりました
  • 以下のインターフェイスを廃止しました。ElementBase 抽象クラスに置き換えてください
    • IDrawable
    • ISizedDrawable
    • IContainable
    • IUpdatable
  • TextureDrawableBase 抽象クラスを廃止しました
  • Sprite.LoadFrom メソッドを廃止しました。代わりにコンストラクタを用いてください
  • NineSliceSplite.LoadFrom メソッドを廃止しました。代わりにコンストラクタを用いてください
  • ITile インターフェイスの定義が変更されました。カスタムタイルを定義している場合はご注意ください
  • Tilemap.CurrentDrawingPosition プロパティを廃止しました
  • AnimatingSprite クラスは廃止しました。代わりに SpriteAnimator コンポーネントを Sprite クラスにアタッチしてください
  • IDrawable インターフェイスに存在した Angle プロパティを廃止しました。もともと角度の設定機能は未実装のまま放置されていたので、角度を設定できるようになってから再実装します
  • IDrawable インターフェイスに存在した ZOrder プロパティを廃止しました。使用していた場合、手動で並び替えるようにしてください

Singleton Game API

  • GameBase 抽象クラスを廃止しました
    • GameBase にあった API の多くは、新しいAPIを使うことで引き続きアクセスできます
  • IWindow インターフェイス を追加
    • ゲームのレンダリングを行う画面周りの機能を提供します
    • GameBase の持っていたメンバーの多くが提供されます
  • IConsole インターフェイスを追加
    • GamebasePrint Cls ConsoleCursor など、コンソール系の API はこちらです
  • Run Exit NextFrame メソッド、Root プロパティは DF クラスからアクセスできます
  • DF.Window で取得できる IWindow インターフェイスのインスタンスは、GameBase のインスタンスメンバーの多くを用意していますが、例外もあります
    • On から始まるイベント系の仮想メソッドは、例外を除き全て IWindow インターフェイスのイベントとして再実装されています
      • イベントハンドラーを使う形に書き換えてください
    • Visible プロパティの名前を IsVisible に変更
    • Random プロパティ、Randomize メソッドは廃止しました。System.Random をそのまま使用してください
    • StartCoroutine StopCoroutine メソッドは廃止しました。 CoroutineRunner.Start CoroutineRunner.Stop を使用してください
    • Dispose メソッドは廃止しました
    • KeyDown KeyUp KeyPress イベントは廃止しました。DFKeyboard クラスに新設された同名のイベントハンドラーを使用してください
    • 次のメンバーは DF.Console にあるのでそちらを使用してください
      • ConsoleCursor プロパティ
      • ConsoleSize プロパティ
      • Print メソッド
      • Cls メソッド
  • SceneOnStart OnUpdate OnDestroy メソッドから、 Router router GameBase game の引数を廃止

その他

  • Vector クラスと (float, float) タプル間で暗黙的型変換されるように
    • 例えば Location = (16, 48) というシンプルな書き方ができます
  • VectorInt クラスと (int, int) タプル間で暗黙的型変換されるように
  • System.Drawing 名前空間とのクラス名の衝突を防ぐため、Font FontStyle クラスをそれぞれ DFFont DFFontStyle クラスに名称変更
  • Scene.Random プロパティおよび Scene.Randomize メソッドを廃止
  • IWindow.Dpi プロパティの名称を IWindow.PixelRatio に変更
  • テクスチャ描画用低レベル API を、クロスプラットフォーム対応を視野に入れ仕様変更
    • TextureDrawer 静的クラスを廃止
    • ITextureDrawer インターフェイスを追加
    • DF.TextureDrawer 読み取り専用プロパティを追加
      • テクスチャを扱う標準のエレメントはこれを使うように
      • テクスチャ描画プラグイン開発者はこちらに置き換えるようにしてください
  • 図形描画用の低レベル API を追加
    • IPrimitiveDrawer インターフェイスを追加
    • DF.PrimitiveDrawer 読み取り専用プロパティを追加
      • Shape エレメントはこの API を使うように
  • Tilemap のレンダリング パフォーマンスを向上しました
  • Tilemap#RenderingMode プロパティ(TilemapRenderingMode 型)を追加しました
    • TilemapRenderingMode.RenderAll
      • 全タイルのうち、画面に存在するものを毎回描画します(従来方式)
    • TilemapRenderingMode.Scan
      • 画面の左上から右下まで走査し、存在するタイルを描画します(新アルゴリズム)
    • TilemapRenderingMode.Auto
      • 画面に存在可能なタイル数よりも実際のタイル数が多い場合はScan, 少ない場合はRenderAllを意味します
      • 標準はこれ
      • どちらが最適なアルゴリズムかわかりきっている場合や、新方式で問題が発生する場合などは手動で設定してください
  • テキストの描画がおかしい問題を修正
  • 依存関係を更新

2.9.2

3 years ago

2.9.2

バグ修正

  • ; キーを押すと画面が暗くなる不具合を修正しました

Bug fixes

  • Fixed a bug the screen goes dark when the ";" key was pressed.

3.0.0-beta.5

3 years ago

DotFeather v3 Public Beta 5

新機能・改善

  • Tilemap のレンダリング パフォーマンスを向上しました
  • Tilemap#RenderingMode プロパティ(TilemapRenderingMode 型)を追加しました
    • TilemapRenderingMode.RenderAll
      • 全タイルのうち、画面に存在するものを毎回描画します(従来方式)
    • TilemapRenderingMode.Scan
      • 画面の左上から右下まで走査し、存在するタイルを描画します(新アルゴリズム)
    • TilemapRenderingMode.Auto
      • 画面に存在可能なタイル数よりも実際のタイル数が多い場合はScan, 少ない場合はRenderAllを意味します
      • 標準はこれ
      • どちらが最適なアルゴリズムかわかりきっている場合や、新方式で問題が発生する場合などは手動で設定してください

バグ修正

  • ; キーを押すと画面が暗くなる不具合を修正しました

3.0.0-beta.4

3 years ago

DotFeather v3 Public Beta 4

仕様変更

  • IWindow.Dpi プロパティの名称を IWindow.PixelRatio に変更
  • テクスチャ描画用低レベル API を、クロスプラットフォーム対応を視野に入れ仕様変更
    • TextureDrawer 静的クラスを廃止
    • ITextureDrawer インターフェイスを追加
    • DF.TextureDrawer 読み取り専用プロパティを追加
      • テクスチャを扱う標準のエレメントはこれを使うように
      • テクスチャ描画プラグイン開発者はこちらに置き換えるようにしてください
  • 図形描画用の低レベル API を追加
    • IPrimitiveDrawer インターフェイスを追加
    • DF.PrimitiveDrawer 読み取り専用プロパティを追加
      • Shape エレメントはこの API を使うように

バグ修正

  • NineSliceSprite エレメントが描画されない不具合を修正

3.0.0-beta.3.3

3 years ago

DotFeather v3 Public Beta 3.3

  • Container をスケーリングした場合の挙動をもう一度修正

3.0.0-beta.3.2

3 years ago

DotFeather v3 Public Beta 3.2

  • Container をスケーリングした場合の挙動をもう一度修正
  • Scene.Random プロパティおよび Scene.Randomize メソッドを廃止