Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've been doing C# with XNA for a year or so now, and I'm pretty comfortable with 2D games. But after some reading, I'm worried about XNA's future since it isn't supported in Windows 8 and stuff like that.
So I've been considering switching to Unity 3D? What are the benefits of Unity over XNA/C# and it is worth the move? if not, why?
I'm also open to suggestions of other languages and engines.
I'm currently going through school and considering game development as a career, so I would like something which won't die in a year or so (as far as we can tell) and will give me skills I need. Also consider that I have previous programming knowledge with C#.
Thanks, David.
XNA
XNA still works on Windows 8. The issue is that they are not supporting XNA based games in Windows 8 Modern UI. XNA still works for Windows 8 desktop games. The terminology is extremely confusing.
XNA will either get a serious overhaul when the new XBox console is released or something brand new will be designed.
Language
If you want to create games for Windows 8 Modern UI, such as Cut The Rope, etc, you'll need to use C++. The last time I saw C++ was the only supported language that could interop with DirectX and Windows 8 mode. All the other features of Windows 8 are available with C#.
Unity3d
If you want to make video games you should pick Unity3d, or an equivalent gaming engine and framework. The problem a lot of video games creators get into is trying to design yet another game engine. This has been done to the point of them becoming commodities. Focus on the game, not the engine.
Unity3d knowledge will be far more value than creating simple games with XNA. You should still understand 3D theory though.
MonoGame is a free XNA-compatible library that allows you to make games in C# for WinRT, Windows Store apps and Windows Phone 8, and on top of the Xamarin tools also for iOS and Android. This works on top of SharpDX, the optimized managed wrapper for DirectX, so your game runs pretty much at the same speed as with XNA.
Since MonoGame is open source, actively developed and targets all the current platforms, you probably need not worry about it being obsolete soon. It gives you a great way to keep your C#, XNA-based codebase to target Windows RT and the Windows Store now, and potentially extend to the other mobile platforms if you buy the Xamarin tools.
So no reason to move your C# stuff to C++.
Unity3D on the other hand is a totally different game framework, and would not be an easy port. But you can then target many more platforms (particularly consoles, and now Flash too), and still script most of the game in C#. But it's quite a different tool to learn.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Firstly, I have never worked in XNA. I was learning C# recently but I don't why I liked it over other languages learnt so far. Then I stepped over to Monogame and tried learning it. It is also fun. I even came to know that Monogame is a great choice for XNA developers as XNA is being deprecated. I don't know if I should continue learning Monogame or not as I don't know anything about XNA although I know that most of the things in Monogame are same. So shall I continue with Monogame or first learn XNA and then move on to Monogame or should I leave both and look for something else? And does Monogame have something to do with Xamarin?
Also XNA is not supported on WIndows 8 and Windows Phone 8. So will there be updates in XNA for these platforms or earlier platforms like Windows Phone 7, Xbox etc.?
Monogame and XNA have a great deal in common, because Monogame is essentially an open source version of XNA.
As you hinted, you can use Xamarin to make your games cross-platform quite easily. This means you can reuse loads of your code and have iOS and Android versions of your game. This is a great advantage of Monogame if that's what you want to do.
With XNA there are quite a few libraries built for it which might make building your game easier e.g. Mercury paricle effects engine
In my opinion, it might be easier to get started with XNA. There are loads of great resources out there to get you off the ground. The last thing you want to be doing first off is faffing around with dlls trying to get the damn thing to compile.
Good luck!
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I'm not sure If this is the place to ask this but here it goes.
I've been doing game programming in XNA since XNA 2.0, I can also program in C++, C#, Java, and C. I enjoy making games with it and its a great sdk but the problem is the xbox360 is pretty much done.
From what I've read, It seems that XNA is now obsolete and now I'm not sure what sdk to program games in. Now of course I know "you could make your own engine since you know OpenGL/Direct X" yea but that's a shit ton of work.
My Question is what is going to be the next game engine or are there other game engines that you would recommend? I know I used DarkGDK ages ago but I have no idea whats going on with that.
Simply put, for an xna fan, look at MonoGame. It is an open source implementation of xna and is now the recommended, by Microsoft, game engine for the xna community.
This topic seems to be coming up over and over again. XNA is not obsolete, it is no longer being actively developed. XNA will still be used by many developers for at least a couple more years, but it is definitely not 'obsolete' at this point.
XBox360 is not done. There are still over 40 million Live subscribers and even after the next generation systems are launched, there will still be a sizable market. I am still working on games for XBox360, at least for the next 6 months or so.
As far as game engines, there are quite a few options
Monogame
Unity
JMonkey Engine
LibGDX
Just because XNA is effectively at the end of it's life, that doesn't mean you can't use it. You can still make games for all the existing platforms it supported and it will continue to be useful for that purpose for some time. It isn't so highly-specialized a toolchain that your experience will not be useful as education, either.
For an alternative, check out MonoGame. Microsoft recently announced a partnership with Unity3D as well.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to use 3D for two purposes. One is to display statistics in a fancy way for my app and another is to make a simple 3D game.
What I'm looking for is an library that is preferably open source, so I can include it in my C# project, without using any dlls, but if there's no other option, it's no big deal. I sell my apps, so I need to be able to use the library for commercial purposes. It would be perfect if I could create models in Blender 3D and import them into the library easily.
Have you considered using MOGRE, which is a .NET wrapper for OGRE? OGRE is MIT licensed, so fine for commercial use, and MOGRE seems to be LGPL licensed so also fine for commercial use (and you don't have to release source if you dynamically link with it).
A quick search will turn up plugins for Blender to export to OGRE's model format, so you should be fine there.
You can also use XNA, which is a managed library written by Microsoft for game development. However, recently (Jan 2013) it seems like Microsoft is pushing people away from XNA for Windows development, and back to native code.
For example, in the last link, they pitch XNA as being for Xbox Live Indie Games and Windows Phone games, and DirectX as being for Windows. Similarly, the Microsoft Create site, which (if I recall correctly) used to have resources for Windows XNA development, now has 2 big tiles for Windows Phone and XBox, and no mention of Windows development. Finally, there's (currently) no sign of XNA support being added to Visual Studio 2012 (but that may be because a new version of XNA is being developed for the new Xbox which is presumably coming soon).
MonoGame is an open source implementation of XNA (much as Mono is an open source implementation of .NET), but I'm not sure about its 3D capabilities.
If this hasn't helped, there are plenty of other questions and answers about this topic:
https://stackoverflow.com/questions/271138/best-3d-graphics-engine-for-net
Which API to use to draw 3D objects in C#?
etc etc...
C# by itself is only a language, it doesn't have the concept of rendering on its own. "Including 3D in your project" would mean that the library would have to be adapted to your rendering engine, and that's different if, for example, you have a WPF project or a Windows Forms one. There may be libraries (especially for Windows Presentation Foundation) but why not using Microsoft XNA? It runs in a managed environment and it lets you to build your game/viewer/general project entirely in C#, or any other CLR language.
Unity is made to empower you to create the best interactive entertainment or multimedia experience that you can.
http://unity3d.com/promo/unity4/?gclid=CMOSnf281bQCFUbf4AodohUAQQ
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I have a little experience in making small time game applets in Java, and A LOT of experience in making games with Python/Pygame. I also know a like of SFML (C++) and SDL (C). I usually develop games in Pygame but its SLOW... performance is a constant nag. So I was looking for some good game library when I noticed the growing number of games developed in C#. I know a little of Windows Forms, and I know that It has a good Graphics API which wraps GDI. But which library is SERIOUSLY recommended? I know about SFML .NET and TAO SDL , should I use one of those? Or is Windows Forms alright? I was thinking of XNA but I have heard it needs a license and you need to BUY the XNA Game Studio. So which library should I use?
XNA is free for PC development; it only costs money to develop for the Windows Phone and XBox (and use their marketplace) -- PC games are still free (source):
The App Hub website is exclusively for Windows Phone and Xbox LIVE Indie Games developers.
It's an extremely good framework, and I'd suggest going through their tutorial, and then checking out some of the samples in their education catalog.
Nope!
XNA is free :)
http://www.microsoft.com/download/en/details.aspx?id=23714
My understanding is that the XNA tools are free downloads, but that you have to have an App Hub membership if you want to sell XBox or Windows Phone games through the network. See here for more info.
XNA is good but it might be better to stick to core technologies (DirectX) by using a dot net wrapper such as Managed DirectX (from Microsoft, deprecated but usable) or SlimDX (SlimDX.org)
(Learning XNA might prove to be a waste of time and energy, as it is not a core MS product - it also changes drastically every time it is released and it hides much of DirectX so you don't have anything to put on your CV/resume)
You can try XNA Framework. You can develop for PC, XBOX, and Windows Phone. If you're a student, you can get it from www.dreamspark.com for free.
If you interested in C# game programming best choice (imho) is Unity (http://unity3d.com/). Because its free (not Pro), powerfull, level editor included , based on Mono etc
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I want to write simple application with some 3D objects for Windows OS.
The application is very simple, like a gallery where we can move and see some pictures. When users go to the some picture and click on it a window will open and show picture with some information.
Which is the best framework for this task WPF, XNA, or something else? Application will be written in C#.
I can not say which is best, but I have done a while ago some things with the WPF 3D API and I liked it.
It was IMO very simple to use and the rendering seemed to be relatively fast. A really nice thing I found, was that it has an object-model that contains high-level-events such as mouse-down and click. Therefore you don't have to do much math. However, maybe provide also other APIs such high-level services, I don't know.
I would not try to create an action-game with it, but for a small app as you have described, I think it is worth a try.
Unity has been used for similar stuff. It can work on browsers (via a plug-in) or as a program, has a lot of documentation and most of the work involved in creating a 3D environment and interface is already done. Code can be written in Mono (open source C# implementation), JavaScript or a Boo, a modified Python scripting language.
It works in Windows, MacOS, iPhone, iPad and Android. And it is free in the standard version, or really cheap.
XNA is a little lower level, so it will require more work to get things started. It supports Windows, WP7 and Xbox 360.
See this discussion : WPF VS XNA