XNA for C ++のようなものはありますか?[閉まっている]


18

XNAの機能は気に入っていますが、C ++ゲーム開発に興味があります。問題は、PNGファイルの読み込みからウィンドウを開くまでのすべてを心配する必要があることです。これは少し面倒です。

これらの問題を解決するために、XNAのc ++バージョンが本当に欲しいです。


DirectX Tool Kitをまだお読みになっていない場合は、ぜひご覧ください。DirectXTool Kitは、XNA Game Studioクラスデザインから明示的に借用するDirect3D 11プログラミング用のC ++ライブラリです。
チャックウォルボーン14

回答:


16

SFMLPolycodeご覧になることをお勧めします。

ここでの答えは、ポイントを逃しているように思います。基本的なXNA機能を取得するために、Freetype、libpng、tinyxml、Ogg、Vorbisなどの10種類のライブラリにリンクする必要があるのは面倒です。


SFML

http://www.sfml-dev.org/features.php

SFMLは無料のマルチメディアC ++ APIであり、グラフィック、入力、オーディオなどへの低レベルおよび高レベルのアクセスを提供します。ある意味では、XNAに似ていますが、あまり手に負えません。たとえば、SFMLにはModelクラスがありません。


ゲームでモデルの使用を計画している場合は、Assimpの使用を検討する必要があります。

Assimpは、次の形式のインポートのサポートを追加します。

Collada ( .dae )
Blender 3D ( .blend )
3ds Max 3DS ( .3ds )
3ds Max ASE ( .ase )
Wavefront Object ( .obj )
Stanford Polygon Library ( .ply )
AutoCAD DXF ( .dxf )
LightWave ( .lwo )
Modo ( .lxo )
Stereolithography ( .stl )
AC3D ( .ac )
Milkshape 3D ( .ms3d )
Quake I Mesh ( .mdl )
Quake II Mesh ( .md2 )
Quake III Mesh ( .md3 )
Quake III BSP ( .pk3 )
Biovision BVH ( .bvh )
DirectX X ( .x )
BlitzBasic 3D ( .b3d )
Quick3D ( .q3d,.q3s )
Ogre XML ( .mesh.xml )
Irrlicht Mesh ( .irrmesh )
Neutral File Format ( .nff )
Sense8 WorldToolKit ( .nff )
Object File Format ( .off )
PovRAY Raw ( .raw )
Terragen Terrain ( .ter )
3D GameStudio ( .mdl )
3D GameStudio Terrain ( .hmp )
Izware Nendo ( .ndo )

ポリコード

http://polycode.org/features/

Polycodeは、クリエイティブコード用の無料のオープンソースのクロスプラットフォームフレームワークです。C ++ APIまたはスタンドアロンスクリプト言語として使用して、高速化された2Dおよび3Dグラフィックス、ハードウェアシェーダー、サウンドおよびネットワークプログラミング、物理エンジンなどに簡単にアクセスできます。

コアPolycode APIはC ++で記述されており、ポータブルネイティブアプリケーションの作成に使用できます。

Polycodeは、コアC ++ APIに加えて、独自のコンパイルツールセットを備えたLuaベースのスクリプトシステムを提供します。Lua APIはC ++ APIをミラーリングしており、プロトタイプを簡単に作成したり、C ++をコンパイルせずに複数のプラットフォームに完全なアプリケーションを公開したりするために使用できます。

Polycodeはオープンソースです。つまり、舞台裏で物事がどのように行われるかから学ぶことができます。また、Assimpを使用してモデルをロードするため、Assimpへの手動リンクを心配する必要はありません。


軽微な説明:Polycodeは、モデルをロードするためにassimpを使用せず、モデルをロード可能な形式に変換するためのassimpベースのツールを備えています。
cib

4

文字通り数百のライブラリがあり、ゲーム開発のあらゆる側面を処理します。画像の読み込みから、ウィンドウのオープンと管理、レンダリング、サウンド、物理学などまで。

ないものは、非常に多くの「ワンストップショップ」ソリューションで、すべてを一度に入手できます。これは、XNAの利点の1つです。通常、エンジンを構築するには多くのライブラリをまとめる必要があります。これにより、1つのコンポーネントが不足している場合でも(比較的)簡単に別のコンポーネントと交換できるため、柔軟性が高くなります。しかし同時に、より多くの作業が必要です。

本当に、なぜあなたはあなたがどんなプログラミング言語を使いたいかということに夢中になっているのですか?あなたは本当にXNAが好きで、ゲーム開発にXNAを使用したいと思うようです。だからそれを行ってください。


3

最初はD3DXとDXUTを使用できます。これらはXNAのようなものではありませんが、少なくともウィンドウの作成、メインループの実行など、環境の設定に役立ちます。D3DX11CreateTextureFromFile()-あなたはしかし、ポインタを管理する必要がありますが、そうではありませんことを困難。C ++で使用できるライブラリは多数あり、パフォーマンスを改善したい場合や変更したい場合は、独自のライブラリに置き換えることができます。

D3DXライブラリとDXUTはD3D9と10に最適で、DXUTにはソースコードが付属しています。DX11の場合、それらのライブラリからいくつかの関数を抜粋しましたが、それらがまだ最も便利なものであることを願っています。覚えている場合は、ソースコード形式でエフェクトフレームワークを提供します(探索する忍耐がある場合)。

フレームワークのピラミッドよりも低いレベルで作業するとき、私は多くを学んだので、XNAを使用することはできませんが、それは主に目標に依存します。


D3DXのすべてのバージョンは非推奨です。「最新」のDirect3D 11.xユーティリティライブラリは、DirectXTexDirectXTK、およびDirectXMeshに加えて、Windows 8.x SDKのDirectXMathです。Effects 11DXUT11の最新バージョンは、古いコードベースを移植し、Win32デスクトップアプリのみに満足している人向けのCodePlexにあります。
チャックウォルボーン14

1

C ++言語に慣れたばかりの場合は、SDLのようなシンプルなライブラリを使用してゲーム開発の経験を積み、次にopenGLを使用してプログラミングすることをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.