0
\$\begingroup\$

Since development on XNA has long since stopped, it is unlikely that it will ever be updated to be in line with modern graphics technology, however aside from the obvious fact that it's Windows-only - what are the practical limitations of using XNA?

The obvious ones are:

  1. It uses DirectX 9.0 - which means no compute or geometry shaders.
  2. It's Windows-only (Excluding Monogame/FNA)
  3. It requires the installation of .NET and XNA on a client's computer.

#2 and #3 are obvious limitations, but can be considered acceptable. #1 on the other hand, is a bit more complicated. In practical terms what does being limited to DirectX 9.0 mean in terms of game development and graphical capability? No geometry or compute shaders means having to do more heavy lifting on the CPU, but is there any other limitations that an end user would notice? Ideally beyond a generic term such as "graphical fidelity".

\$\endgroup\$
  • \$\begingroup\$ #1. It's a dead project; discontinued by Microsoft. \$\endgroup\$ – Krythic Nov 8 '16 at 1:12
  • \$\begingroup\$ Try OpenTK instead. The support for it has waned a little over the last few years, but it's 100% open source so you can always update it yourself. \$\endgroup\$ – Krythic Nov 8 '16 at 1:16
2
\$\begingroup\$

Graphical fidelity is a funny one, because directX 11 doesn't look any better strait up it lets you write more complex shaders so at the end of the day stuff ends up looking better.

I worked with XNA for a long time and while I love it I can not recommend it because its slow(high cpu overhead), can have support dropped from windows at any time, holds your hand to much, no direct unmanged memory access and no VS graphics debugging tools.

Here is a list of some stuff you missout on with XNA:

  • UAV's
  • StructuredBuffers(good for moving data from cpu to gpu)
  • AppendBuffers(really nice for particle systems)
  • ConsumeBuffers(really nice for particle systems)
  • Hardware Tessellation
  • More shader instructions
  • Writing to a UAV from any shader stage
  • Direct access to the depthbuffer
  • Can mix pixel bit depth when using MRT's
  • Multithreading
  • TextureArrays

The user will not notice much of that but you will, in short XNA is old and should not be used its now 2016 and its time to let the past go and embrace new technologys :)

\$\endgroup\$
  • \$\begingroup\$ Define "new technologies". Vulkan? \$\endgroup\$ – Krythic Nov 8 '16 at 1:18
  • \$\begingroup\$ I'm talking anything that isn't 8 years old. Vulkan and DX12 are hardcore low level api's and while you can do really cool stuff with them for now they are more for experts. DirectX 11 and OpenGL work fine for 95% of the games we have. \$\endgroup\$ – Justin William Stanley Bryant Nov 8 '16 at 1:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.