Are there famous games written in .Net and/or XNA?
-
\$\begingroup\$ Another, rather recent one: Dust: An Elysian Tail. I think it's probably the best XNA game I've ever played. \$\endgroup\$– BlueRaja - Danny PflughoeftJul 15, 2013 at 5:52
-
\$\begingroup\$ Another one that was just released and is doing very well: Rogue Legacy \$\endgroup\$– BlueRaja - Danny PflughoeftJul 23, 2013 at 3:34
-
\$\begingroup\$ Rimworld is in C# with Unity. \$\endgroup\$– jdevlinFeb 4, 2015 at 17:22
-
\$\begingroup\$ Stardew Valley was developed (by a single developer) in XNA, released in early 2016, and has sold nearly 600,000 copies on Steam alone. \$\endgroup\$– KyralessaMar 20, 2016 at 0:32
16 Answers
Schizoid is a pretty successful XBLA game. Does that count? (not really, but its the best I could find)
I think what you mean is are there any AAA-scale games made using XNA and/or XNA GS. To that, the answer is no. The games industry has been very slow move past C/C++ as the gold standard. This isn't for no reason, most AAA games would rather trade all the nice syntax and runtime support for an extra 5FPS and 50MB less RAM usage since both of those directly translate to units sold. Granted there is argument for lower development costs and faster cycles, but thats a hard calculus to use in this industry.
-
12\$\begingroup\$ Of course there's also the issue of lack of C# compilers for consoles and the memory protection model preventing JIT. Having said that, I'd indeed really not want to give up the control C/C++ gives me over threading, memory management/access and optimization. Lastly, 5fps on a 60 fps game is a lot, not to mention 50 meg on a 256 mb machines. \$\endgroup\$– KajJul 27, 2010 at 7:19
-
7\$\begingroup\$ It will be interesting to see whether Windows Phone 7 changes the game here any. You have to use XNA if you want to develop 3D games for WP7, which means it's profile within AAA studios may raise. \$\endgroup\$– dwynneAug 20, 2010 at 18:47
-
10\$\begingroup\$ Given how unlikely it is that Windows phones will hit any useful market penetration, probably not so much. \$\endgroup\$ Aug 20, 2010 at 18:52
-
2\$\begingroup\$ and of course, there's a lot of existing code ready for reuse out there. You get to start from scratch if you migrate away from what works for you. If C/C++ ever stops providing you with the ability to make those games, then I'd see change - not until then. \$\endgroup\$– gbjbaanbNov 8, 2010 at 18:26
-
1\$\begingroup\$ @heishe That would be because all information about it is under NDA. \$\endgroup\$ Jun 22, 2011 at 6:58
Terraria. It sold 200,000 copies in the first week of release on Steam. It's been in the Steam top 10 sellers list since. I'd say that makes it a popular XNA game.
-
2\$\begingroup\$ Super Meat Boy and FEZ are good examples too. \$\endgroup\$– EdgarTSep 7, 2013 at 22:55
-
2\$\begingroup\$ @EdgarT, Super Meat Boy engine is C++, not C#. \$\endgroup\$– x-xJul 28, 2014 at 7:22
Magicka is a new one. I played a bit of the demo and it seems pretty good.
-
\$\begingroup\$ Just played it the other day. Way more fun with a few friends than it has any right to be. \$\endgroup\$– JamesFeb 24, 2011 at 16:07
-
\$\begingroup\$ This is probably the most well-known as of 5/2011 \$\endgroup\$ May 27, 2011 at 19:40
-
-
\$\begingroup\$ +2 :) It's also borderline AAA - as in: it's quite mainstream. \$\endgroup\$ Oct 21, 2011 at 12:19
It depends on your definition of "famous" :)
- Sol Survivor is a very well polished XNA game, which appears on the Xbox and PC.
- AI War is written on .NET and while not very widely known, is groundbreaking for the scale of gameply it holds.
-
\$\begingroup\$ I'm hoping to get Chris Park over here. I left him a comment on Stack Overflow but he hasn't visited in a couple of weeks. \$\endgroup\$– mmyersJul 28, 2010 at 0:58
-
\$\begingroup\$ @mmyers: I'm gonna go PM him on his forums, thanks for the idea! \$\endgroup\$– RCIXJul 28, 2010 at 2:05
-
\$\begingroup\$ I did not realize AI War was written in .NET. That's really cool, especially as its an inspiration for an XNA game I'm working on and I was thinking of how great it would be to make a game at that scale. \$\endgroup\$ Oct 15, 2010 at 17:34
-
\$\begingroup\$ @Codex: well, it's switching to Unity (though it still uses Mono). Quite impressive though! \$\endgroup\$– RCIXOct 17, 2010 at 7:05
Bastion. It just won 3 Spike Video Game Awards a couple days ago (not to mention all the other ones it already had - check link).
-
\$\begingroup\$ Bastion used XNA and MonoGame on consoles. Here are some Showcase videos. 2014 - youtube.com/watch?v=mx4B8XFtnZo . 2015 - youtube.com/watch?v=i8h5u5BgoJY !! These could technically be classified as XNA as MonoGame is API compatible with XNA, but takes it to tonnes of other platforms. \$\endgroup\$ Sep 15, 2016 at 13:23
This thread on the XNA forum has a list of commercial games:
List Of Commercial Games Made With XNA
I'm not sure how many games are 'famous' but it includes some arcade titles like:
- Blazing Birds (4000 units)
- Rocket Riot (20,000 units)
Lucidity by Lucas Arts was also written in XNA. Blueberry Garden on Steam, while an indie title, was also written using XNA.
Also, take into account that while not full games, parts of important AAA games have been written in .NET. Supreme Commander used it for it's multiplayer part and Neverwinter Nights Aurora editor was written in .NET.
-
\$\begingroup\$ Indeed. AFAIK, the popup dialogue boxes in Fable III were written with XNA. \$\endgroup\$– kymullyNov 21, 2010 at 4:02
-
\$\begingroup\$ Yeah - I've heard about a number of engines and games that use it as their scripting language. \$\endgroup\$– LeniencyFeb 21, 2011 at 22:27
-
\$\begingroup\$ With the C/C++ CLR Hositng API, You can load the .Net Framework in a native c/c++ program. As such it's incredibly easy to design plugin/scripting frameworks in .Net and load them into games, and is becomming more common place to do so. Also with Mono-Project pretty mature it's astronomically easier to port games built on .Net now. And MonoGame picked up XNA where microsoft dropped it and is continuing it's development. \$\endgroup\$ Sep 8, 2014 at 18:38
Received a ton of media buzz, including
-
\$\begingroup\$ Also, the similar games "Cthulu Saves the World" and "Penny Arcade: Precipice of Darkness, Episode 3" by the same developer, running on the same engine. \$\endgroup\$ Jun 30, 2012 at 7:05
Funcom's (of Age of Conan/Anarchy Online fame) new game Bloodline Champions is written in XNA. It's currently in closed beta, but they have been quite generous with the beta keys.
What about Infiniminer ?
Infiniminer is a voxel based construction sandbox game written in C# using XNA.
It is officially recognised as the ancestor of Minecraft.
Weapon of Choice
Weapon of Choice is an Indie game from Mommy's Best Games. The game is written in C#/XNA. Gamasutra has a great post-mortem where the developer discusses using C# to write a game (he had been using C/C++ prior to going independent).
I don't know if it's considered famous but it did win some awards.
Plain Site had a lot of buzz when it first appeared:
One of my favorite simulators, Auran's Trainz is written primarily in .NET.
While not technically .Net, many games made with Unity3D. EA has recently decided to use Unity3D for many of thier new games. The Unity3D engine uses Mono (an open source implementation of .Net) as it's scripting engine. Due to runtime optimizations, script performance as high as 120% native code speeds can be achieved.
For lower end platforms such as consoles (which IMHO makes them unsuitable for hardcore gamers), Mono and by extension Unity supports FULL AOT compilation. This allows games made in a Managed language to run on platforms that do not allow JIT.
As Unity's rendering engine and core components are programmed in C++, you easily break the 60FPS mark as long as you don't do stupid stuff that would ruin the FPS in C++ games as well. Don't iterate through a huge list every frame. Avoid using division, multiplying by 0.5 is 10 times faster than dividing by 2. Don't read from files every frame, cache the data as you need it. Don't run any more code every frame then you need, stick much of your code in methods that are only called when they are needed.