この出版物は、ユニティやアンリアルエンジンなどの巨人の影にふさわしくない、有望でかなり若いゲームエンジンに焦点を当てます。
開発者は、Adam's Lairが率いる愛好家の集まりです。
公式ウェブサイトは次のように語っています。「Dualityは、独自のエディターを備えたモジュラー2Dゲームエンジンです。 簡単に拡張可能で、C#で記述され、OpenGLを使用してグラフィックスを表示します。 コンポーネントを作成し、それをゲームオブジェクトにアタッチすると、すべてが機能し、プログラマーを日常から完全に救います。 別の利点は、誰でも作成してプロジェクトに接続できるプラグインのサポートです。
「クラシック」と言うと、あなたは正しいでしょう。 双対性は他のツールほど悪くはありません。リソース管理の面倒を見て、入出力サブシステム、グラフィックス、オーディオ、物理シミュレーションを提供します。 これに便利なエディターDualitorを追加すると、インディーズゲームを開発するための優れた環境を手に入れることができます。
では、Unityのようなより広範なソリューションがあるのに、なぜDualityが必要なのですか?
- 無料(MITライセンス)。 支払い、ソースコードの公開、および創造性を制限するその他のアクションを実行する必要はありません。 二重性のソースはGitHubでも入手できます。
- 明度。 エディターの重量は約100 mb、完全に機能するゲームの重量は約7 mbです。
- パフォーマンス。 現在の最新バージョンv3では、エンジンの大規模な最適化が行われています。 推定ワークロードに対して実行されたテストでは、最悪の場合のレンダリング時間は6ミリ秒を超えず、ガベージコレクションは毎分約5回実行されました。
- シンプル。 同じUnityまたはUnreal Engineに精通している場合、問題なくDualityを習得できます。 APIは十分に文書化されており、プログラマが低レベルの操作に気を取られないように便利なインターフェイスを提供します。
- コミュニティ。 数千人のユーザーには数えられないかもしれませんが、個人的にエンジンの学習を支援する専任の開発者が含まれています。 とてもフレンドリーでタイムリー。 さらに、さまざまなチュートリアルが作成され、大量の有用な情報を含むフォーラムが開かれました。
たぶんそれは試してみる価値がある
あなたはそれがすべてどのように見えるかを見たいと思います。
エディター。 シンプルだが機能的。 おなじみのシーンビュー、プロジェクトビュー、インスペクター、カメラビューが表示されます。 以下は非表示のログパネルです。
デュアリトール
そして、これは宇宙船の動きを制御するコンポーネントのコードの例です。
コード
using Duality; using Duality.Components.Physics; using Duality.Input; namespace Duality_ { [RequiredComponent(typeof(RigidBody))] public class Player : Component, ICmpUpdatable { public void OnUpdate() { RigidBody rb = GameObj.GetComponent<RigidBody>(); if (DualityApp.Keyboard[Key.Left]) rb.ApplyLocalForce(-0.001f * rb.Inertia); else if (DualityApp.Keyboard[Key.Right]) rb.ApplyLocalForce(0.001f * rb.Inertia); else rb.AngularVelocity -= rb.AngularVelocity * Time.TimeMult * 0.1f; if (DualityApp.Keyboard[Key.Up]) rb.ApplyLocalForce(Vector2.UnitY * rb.Mass * -0.2f); else if (DualityApp.Keyboard[Key.Down]) rb.ApplyLocalForce(Vector2.UnitY * rb.Mass * 0.2f); } } }
あなたのことは知りませんが、このフレームワークのシンプルさに驚きました。 ところで、エンジンの成功の指標は、その上で作られたゲームです。 小さなチームで使用されるため、ゲームはAAAレベルでもリリースされません。 自慢できることはまだありません。 このサイトでは、既製のゲームを見ることができます 。
また、現在開発中で、Steamに投稿されている1つの深刻なプロジェクトを知っていますが、別の機会にそれについて書く方が良いでしょう。
二元性に期待してはならないこと
クロスプラットフォームエンジンは、その弱点の1つです。 OSのWindowsファミリのみが完全にサポートされ、残りはサードパーティの開発者によってサポートされるか、まったくサポートされません。 UIの組み込み実装もありませんが、Dualityはモジュラーエンジンであるため、この欠点を解消するプラグインがあります。
次の大きな欠点は、ネットワークAPIの問題です。 現時点では、マルチプレイヤー機能を実装するプラグインまたはカーネルモジュールはありません。
エンジンが競合他社に負ける主な理由は、小さなコミュニティです。 この優れたツールを開発している人は少なすぎます。
エンジンの主な機能:
- Farseer Physics Engineに基づく2D物理学。 組み込みコンポーネントの中には、物理オブジェクトの基本的な要件をカバーする機能的なリジッドボディがあります。
- AnimSpriteRendererコンポーネントを使用した2Dアニメーション。 シンプルなユーザー入力システムと一緒に、任意のキャラクターを簡単にアニメーション化できます。
- 頂点シェーダーとフラグメントシェーダーのサポート。 これで十分でない場合は、レンダリング用に独自のコンポーネントを実装できます。
- ネストされたものを含むプレハブなので、ゲームオブジェクトの調達に問題はありません。
- 便利なコンテンツマネージャー。 リソースへのリンクは自動的に維持され、コードで簡単に使用できます。
- TileMapsは別個のプラグインとして作成されましたが、エンジンの機能を最大限に活用してパフォーマンスを最大化します。
- エディターの拡張性。 エディターに独自の機能を追加し、タスクに特に必要なコマンドとプラグインを作成できます。
この短いレビューの終わりに、私はこれに劣らないかもしれない他の多くのゲームエンジンがあり、これが良いと言いたいです。 もちろん、既に使用しているすべてのものを放棄することはお勧めしませんが、質の高いプロジェクトをご紹介します。 あなたが孤独な開発者、または十分にシンプルで強力な何かを探している小さなチームであるなら、Dualityを試してください。
公式サイト。