0

The goal of my personal experiment is to create a 3D engine in C#.

I have read a little about XNA and SlimDX. I'm not sure about XNA, because it's basically a complete engine already and so there won't be much for me to do. SlimDX looks closer to my assumptions, but I would appreciate any other recommendations.

I have some experience using OpenGL and writing a simple engine for Android games, and for the PC using jogl.

I am interested in hearing about something similar to the level of abstraction available through Java / OpenGL, but this time with DirectX.

tshepang
  • 12,111
  • 21
  • 91
  • 136
grachol
  • 82
  • 1
  • 7

2 Answers2

2

You can download the old DirectX SDK from here which will give you C# wrappers for Direct3D.

However... if you did want to give XNA a shot, this is probably one of the best tutorials out there to get started with (and by started I mean enough to implement your own game, but it will take a lot of work).

http://www.riemers.net/

You can get the current version of the XNA SDK here

Matt Klein
  • 7,856
  • 6
  • 45
  • 46
  • I already downloaded DirectX SDK, but i heard a lot of bad opinions about it (like its waste of time using it, its dead, better find XYZ). Maybe i just met wrong people before. That's why im asking for best recommendations. – grachol Oct 04 '12 at 09:32
  • Gotcha, but this is the answer to your asked question =/ The reason it is dead is because XNA took over. If you don't want the "more complete" solution that XNA offers, then you'll have to go to the last version that was released (which is the link I gave) – Matt Klein Oct 04 '12 at 09:34
  • Ok, thanks for advice. I understand. Reason I said that XNA "was to much" is because I don't know how big this project is (i dont have experience using it). I would like to know how big influence will have using XNA in "my own" engine. Will it be still "my own" engine or just program using only XNA functions. – grachol Oct 04 '12 at 09:48
  • Yea, it will still be "your own." It's mostly just an update and a rebranding of all the various Direct_ (_Sound, _3D, _Input, _KitchenSink) items to bring them under one umbrella (oh, and native Xbox 360 support). Don't worry, you'll still have to do all your own calls to place your models, set your lighting, set your camera, render your scene, etc. I've added a great link to an XNA tutorial as well as the download link for the current XNA SDK. – Matt Klein Oct 04 '12 at 09:59
1

As a DirectX c# wrapper, there's also http://sharpdx.org/

Couple of Pros/Cons between Xna/SlimDX

Xna is simple to learn, and you will already have some built in functions to load models, draw text, some built in render state presets, Math classes/structures. On the other hand it's feature set is fairly limited compared to new graphics card capabilities. You will have something up and running quite fast, but on the other hand, you might end up a bit limited for advanced features (tessellation/compute/append buffers/readonly depth to name a few). You will still have quite some work to do of course.

SlimDX/SharpDX are fairly minimal (they mostly wrap around DirectX functions), so If you want to use DirectX11 (if you want to use 9 go for xna :) , you will have a bit of work to do in order to have something running in the first place, but you will have full DX power and complete flexibility over how you want to organize your engine. You will need to have your own model importer, font renderer (DirectWrite), state manager. Most common math part is already there (Matrix/Vectors) so you won't have to worry about this part.

mrvux
  • 8,523
  • 1
  • 27
  • 61