Advertisement

What XNA really is

Started by March 25, 2012 07:23 PM
14 comments, last by way2lazy2care 12 years, 10 months ago
If you want to use XNA just be aware of it's limited deployment options. It's really designed for windows devices ( be it 360, mobile Win devices, or PC running windows ). The main differences between it and other engines is it uses C#. Most engines are written C++ with wrappers for Obj-C or Java but at it's core still C++. A few well known engines support C#, like Unity 3D. C# being one of the more modern languages have benefits for beginners but for professionals, the tradeoff in terms of performance usually isn't deem acceptable.

Good Luck!

-ddn

If you want to use XNA just be aware of it's limited deployment options. It's really designed for windows devices ( be it 360, mobile Win devices, or PC running windows ). The main differences between it and other engines is it uses C#. Most engines are written C++ with wrappers for Obj-C or Java but at it's core still C++. A few well known engines support C#, like Unity 3D. C# being one of the more modern languages have benefits for beginners but for professionals, the tradeoff in terms of performance usually isn't deem acceptable.

Good Luck!

-ddn


i only want to develop on windows.

i thought the core of XNA is c++,mhhh.. well i just read it in some forums.

how big is the perfomance tradeoff ?

edit:

what alternatives do i have ?

i made a quick google search and found this => http://www.sfml-dev.org/features.php
its written in c++ but usable with c#, dunno how this works out for game dev.

maybe u can give me a better alternative ?
Advertisement
SFML is for 2d.
About the performance.. Imagine you work 8 hours per day, and that it takes you 4 minutes to walk to your job and 4 minutes to walk home. Now, to maximize the time spent home, you decide to take your bike instead of walking, which takes you 2 minutes in each direction. Even though that's twice as fast, it's still gains you next to nothing compared to the time spent at work. If you want to spend more time home, what you should focus on is working less/faster.

Now if XNA is like walking then maybe Direct3D is like riding your bike. There is a difference, but it's not what you should be worried about at this point.
The performance which hobbiest can get out of a device isn't comparable to what professional can squeeze out of the device. The difference between a novice working on a problem for a week vs a professional dedicated to the problem for over 6 weeks is considerable, either way your not gonna need to go down to the metal so go ahead use C#, like I said it has benefits for novices like memory management, good native interfaces API, etc.. It's not a bad language..

Also note that XNA doesn't allow linking with un-managed code like C++ libraries on some platforms. So if you want full compatibility (ie deploy on Xbox 360 / Win Mobiles) you need to stick to managed code (all C# librares). I suggest just getting Unity 3D, XNA is nice but Unity 3D does everything it does and more. XNA itself doesn't provide you the needed tool chains and asset import backends without additional work, which you get with Unity 3D. Also Unity 3D has better support and more active community imo.

Good Luck!

-ddn
Unity 3D does everything it does and more.

Unity doesn't support windows mobile yet. Not that it's a huge deal, but MonoTouch works on all 3 and I believe it's fairly easy to port between mono/monotouch.

Unity does give huge advantages in resource pipeline and other development bonuses though. I do wish Unity would break into the 2d space a bit more. I'd be much more interested in a Unity2D than I am in Unity3D.

This topic is closed to new replies.

Advertisement