We’ve launched a new Game Development with .NET section on our site. It’s designed for current .NET developers to explore all the choices available to them when developing games. It’s also designed for new developers trying to learn how to use .NET by making games. We’ve also launched a new game development Learn portal for .NET filled with tutorials, videos, and documentation provided by Microsoft and others in the .NET game development community. Finally, we launched a step-by-step Unity get-started tutorial that will get you started with Unity and writing C# scripts for it in no time. We are excited to show you what .NET has to offer to you when making games. .NET is also part of Microsoft Game Stack, a comprehensive suite of tools and services just for game development.
.NET for game developers
.NET is cross-platform. With .NET you can target over 25+ different platforms with a single code base. You can make games for, but not limited to, Windows, macOS, Linux, Android, iOS, Xbox, PlayStation, Nintendo, and mixed reality devices.
C# is the most popular programming language in game development. The wider .NET community is also big. There is no lack of expertise and support you can find from individuals and user groups, locally or online.
.NET does not just cover building your game. You can also use it to build your game’s website with ASP.NET, your mobile app using Xamarin, and even do remote rendering with Microsoft Azure. Your skills will transfer across the entire game development pipeline.
Available game engines
The first step to developing games in .NET is to choose a game engine. You can think of engines as the frameworks and tools you use for developing your game. There are many game engines that use .NET and they differ widely. Some of the engines are commercial and some are completely royalty free and open source. I am excited to see some of them planning to adopt .NET 5 soon. Just choose the engine that better works for you and your game. Would you like to read a blog post to help you learn about .NET game engines, and which one would be best for you?
Online services for your game
If you’re building your game with .NET, then you have many choices on how to build your online game services. You can use ready-to-use services like Microsoft Azure PlayFab. You can also build from scratch on Microsoft Azure. .NET also runs on multiple operating systems, clouds, and services, it doesn’t limit you to use Microsoft’s platforms.
.NET has a rich set of tools
All the .NET tools you are used to also work when making games. Visual Studio is a great IDE that works with all .NET game engines on Windows and macOS. It provides word-class debugging, AI-assisted code completion, code refactoring, and cleanup. In addition, it provides real-time collaboration and productivity tools for remote work. GitHub also provides all your DevOps needs. Host and review code, manage projects, and build software alongside 50 million developers with GitHub.
The ecosystem
The .NET game development ecosystem is rich. Some of the .NET game engines depend on foundational work done by the open-source community to create managed graphics APIs like SharpDX, SharpVulkan, Vulkan.NET, and Veldrid. Xamarin also enables using platform native features on iOS and Android. Beyond the .NET community, each game engine also has their own community and user groups you can join and interact with. .NET is an open-source platform with over 60,000+ contributors. It’s free and a solid stable base for all your current and future game development needs.
Learn more and start developing
Head to our new Game Development with .NET site to get an overview of what .NET provides for you when making games. If you never used Unity, get started with our step-by-step Unity get-started tutorial and script with C# as quick as possible. If you’re looking for tutorials, videos, and documentations to get your started, head to our new game development Learn portal for .NET for more resources.
Show us the work you do for .NET game development
We’d love to see the work you do for the .NET game developer. Please reach out to us if you’d like us to talk about the games you’re making, the APIs you’re developing, the plug-ins you’re distributing, or any .NET project remotely related to game development. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new .NET game development contribution or a useful plug-in or tool? Do you have an analysis of game development pipeline using .NET?
We’d love to hear from you, and feature your contributions on future posts:
- Leave us a message in the comments section below
- Send Abdullah (@indiesaudi) tips on Twitter about .NET game development.
I can recommend online slots, which I myself play at https://jackmobilecasinos.com/mobile-slot/choco-reels/ Bets you these slots are really cool and they are cool to play in, and it pays too, so it is a reliable service. Going to the site, read the reviews below – what real people write, then I recommend to try to play.
I vote for Stride
While this software definitely fits into the “niche” category, I will mention a system I’ve been building since mid-2015. The Eamon CS game engine is a C# port of the Wonderful World of Eamon that debuted on the Apple II many years ago. This is a text-based roleplaying game masquerading as an Interactive Fiction platform written for .NET Core with ports to Windows/Unix and Android. I have done some cursory testing with .NET 5 and it appears to work perfectly there too. It has 11 highly polished adventures built for it, and I’m always happy to assist anyone who wants to try their hand at building a new game.
Repository: https://github.com/TheRealEamonCS/Eamon-CS
Thanks,
Michael Penner
Hello!
C# and .NET are a cornerstone of my game developer career since 2009. I’ve started as a C#/ASP.NET/WPF programmer but quickly became an indie game developer as it was my passion since early childhood. Now I have several successful titles shipped and looking in awe at the direction Microsoft has taken in the past few years by going open source with .NET—it was just a dream coming true!
I’m a full-stack developer working on everything—from small bits of XAML UI elements and HLSL shaders up to the web sites and services, cloud deployment tools to manage our swarm of game servers, and everything between. I’ve created a custom game engine and made the first-ever game to feature .NET Roslyn compiler powering it to provide incredible modding capabilities and make our work much easier by quick iteration speed. Needless to say, it would require way more hands (and so, way higher budget) to achieve the same results over the years if my indie company was not using .NET!
Since 2015 I’m working on CryoFall. It’s an online multiplayer survival game built on a custom game engine with a great number of C#/.NET-powered technologies:
— .NET Core for game server runtime (and since 3.0, for game client runtime as well). It’s an incredible bit of technology providing a fast and robust framework for our needs, and most importantly—it runs flawlessly on Linux! One of our game servers hosted over 350 players online on a single CPU core in its peak—and it’s a fast-paced open-world game running on rock-stable 40 frames per second on the server side for weeks without maintenance reboots while simulating a massive world. The game server is also available as a Docker image based on an Alpine .NET Core image provided by Microsoft, making deployment it as easy as pulling and running the image! You can try it https://hub.docker.com/r/atomictorch/cryofall-server
— Roslyn/.NET Compiler Platform for an unprecedented level of scripting and modding support. It’s a pillar of our in-house RENKEI Engine (https://wiki.atomictorch.com/RENKEI_Engine) as we required an engine that allows us (and modders) to iterate very quickly while working with the game. The game is shipped with the completely open source game code and the game engine compiles it automatically. This way the engine offers live C# editing (in addition to live reloading of textures, sounds, music, XAML UI markup, HLSL shaders, etc). As far as I know, CryoFall is the only game that is brave and crazy enough to ship with the embedded Roslyn compiler! (At least at the time when the first public alpha utilizing this engine was shipped in March 2018)
— NoesisGUI—a cross-platform middleware for vector UI in videogames and other applications. It’s 99.9% compatible with WPF/UWP API and XAML and using the same familiar tooling (Visual Studio and Blend) while providing support for all the major game engines. So an experienced WPF programmer could start building the game UI very quickly. Unlike WPF, it’s completely cross-platform (including consoles and mobiles) and has impressive performance and rendering quality that makes it a perfect choice for modern UI development in both C++ and C#. We’re using this tech since 2013 when it was just an obscure library, but now even major AAA games like Baldur’s Gate 3 from Larian Studios are created with this middleware! It’s especially important to mention that the previous popular UI vector library—Scaleform—was discontinued many years ago…the industry went through dark times. Surprisingly, it’s Microsoft-created XAML and WPF API that are getting recognition in gamedev now!
— MonoGame. It’s a pity it was not mentioned in the article as it’s an opensource legacy of XNA—a powerful yet small game framework that was discontinued by Microsoft only to be reborn thanks to the massive community of indie developers. It’s ideal for making small 2D games where you know exactly what you may need (as we do, for our client part of the game engine) and don’t wish to get distracted by bloated complex engines. However, if you need an Editor to preview/edit scenes, want to manage hundreds of assets and prefabs, looking for visual scripting, or want to make a great 3D game with complex animations, you may want to try a real game engine—such as Stride (formerly Xenko)—a full-featured 100% open source C#/.NET game engine similar to Unity. I also had a fine experience with Unity (proprietary engine with great C# scripting), and heard good things about UE4 and CryEngine with C# bindings—but I often prefer to work from scratch! 🙂 By the way, here is my MonoGame NoesisGUI wrapper https://github.com/AtomicTorchStudio/NoesisGUI.MonoGameWrapper (it requires some updates for compatibility with the latest version that I could provide on the community request)
— AtomicSerializer—custom .NET serialization library that I’m working on since 2016. It’s almost ready for a public open source release. It’s providing fast C# binary serialization with the object graph serialization and data scheme support for (auto-)versioning and minimal network overhead. It’s essential to provide both persistent and network serialization, and also to power sophisticated network state replication technics necessary for any large multiplayer game. As far as I know, there is still no viable alternative to this library (most are not providing object graph serialization, or don’t have support for data scheme saving/loading—that is essential for forward/backward compatibility of the persistent data) so I had to make my own back then and iterate on it over the years to make it full-featured.
CryoFall offering a huge volume of educational material for any game developer, covering technologies like C#, NoesisGUI, XAML, HLSL. All the game source code, including game assets, hundreds of UI controls, dozens of shaders, etc, available in open source on GitHub https://github.com/AtomicTorchStudio/CryoFall/ the same code is included with the game client and there is also CryoFall Editor available for a complete modding experience. Though the API documentation is lacking as it’s limited to IntelliSense and Object Browser in Visual Studio to read the method comments, we did our best to write a clean and well-structured code.
Thanks, Microsoft, and thousands of its employees, for empowering small indies with such incredible and reliable tools, and moving towards the future with the massive open source community! I’m looking forward to reading every “Game Development with .NET” post.
Regards!
Vladimir Kozlov aka ai_enabled
Hello,
I would like to present NeoAxis Engine.
It is C#, .NET Core based integrated development environment with built-in 3D, 2D game engine.
https://www.neoaxis.com/
TerraFX is an ambitious successor to SharpDX.
I find none of the API’s and engine’s listed as useful, versatile and elegant as XNA was for indie game development. It is a shame MS killed it off. It is about time to bring it back, along with some proper .NET DirectX bindings.
As others noted, since Managed Dx, XNA, SharpDX etc. are all dead, there is even no proper .NET DirectX bindings at the moment – and without that, talking about “Game Development with .NET” is counting chickens before they are hatched.
Games published with engines using .NET makes up a majority portion of mobile games. They also make up a significant portion of the desktop console market. So many of your favorite games are already made with MonoGame and Unity. There are always room for improvement in the ecosystem of course.
Thank you for your answer and time I appreciate it.
Excuse me for being old school, but game development for me means DESKTOP(console) game development. Furthermore, as 3D is technology of the day, it means 3D DESKTOP game development. 2D is niche, mobile is mobile. If either was aim of your article, it should be noted.
Now that we cleared that up, let’s see what we’re left with for “proper” 3d desktop game development in .NET:
I invested heavily in XNA back in the day, built engine and tools around it, just to see it dropped by MS like it was a joke. You need to understand that it takes years of time and commitement into any of there frameworks/APIs if you want to make something real out of it. And investing that much effort into something developed for hobby by someone, that might be dropped any day, is just not an option.
So until MS provides at the very least proper DX bindings, and shows some effort and commitement, 3d desktop game development in .NET is a joke.
What issues are you facing using MonoGame in 3D?? We recently released v3.8 with some improvements and the devs are definitely still working on it. It is VERY much alive! It is an open source project and we contribute the little spare time we have to it.
this comment has been deleted.
Hello Abdullah,
please change the title to “Mobile Game Development with .NET” then it would be clear for most of us.
C# is the most popular programming language in [mobile] game development
Corrected. When it comes to “game development” I personally think about desktop technologies like DirectX and C++ programming.
Please differ the both, mobile and desktop.
Thank you!
Hello Ismail,
As you might know, over half of games published currently are made with Unity across all platforms. Sure, most of those might be on mobile, since its the more mainstream option, but there are some great AAA and desktop successes with it. The Ori series from Moon Studios and Fall Guys are just two examples of that. Also, CryEngine does use .NET to enable C# scripting and that engine is mostly used for AAA development.
With fidelity lines being blurred between platforms, and the emergence of cloud gaming, distinguishing between gaming on those platforms doesn’t make sense anymore. For example, the Nintendo Switch consoles uses an ARM processor just like an android device would. Oculus uses an ARM chip with an Android based OS in their only VR headset.
Players want to play everywhere, and developers can reach players where they play with .NET.
Hi, why not considering stride3D, formerly xenko, a MIT licensed game engine using sharpdx as its core rendering. Support all major graphic library DX12 and vulkan is among supported backend.
Its work more “closely” with c# than Unity does.
If by any chance microsoft can be their gold sponsor.
EDIT : Oh shoot stride is already mentioned.
I am glad you saw that.
Stride3D Github
Currently I don’t really know in which technology to rely on. The is SharpDX, there is SlimDX, some Vulkan impementations, some OpenGL wrappers. There was/is Win2D, then there is GDI and some proprietary implementations like VESA, Magick, SkiaSharp and many more… Managed DIrectX was abandoned… XNA was abandoned… SharpDX was also abandoned.
So on what can I rely on?
Currently I don’t really know what to take but at least for my future work there are a few essential requirements (only for short, because I can complain the whole day about the current status quo):
I would really love if some high level/high performance bindings would exist for WPF (but currently it seems way to slow) compared to GDI and it should be independent from DirectX. I hope that at least for WinUI this will be the case.
Still I also want the low-level access but the only access from WPF is going to C++/COM implementations. I assume it’s a lot of work to create DirectX bindings and I don’t know if it worth the work or if it would be better to find something more generic and platform independent,
If you used XNA and enjoyed it, you may want to look at MonoGame (https://monogame.net/showcase) the APIs compatible, cross-platform, spiritual successor to XNA. We have it working on mobiles all the way to current gen consoles. Series X and PS5 support coming very soon. Games like Celeste, Bastion have used MonoGame in the past.
It’s OpenSource (https://github.com/MonoGame/MonoGame) and we accept PRs, if there is something that is wrong or needs adding. We recently released version 3.8.
PS. Even though I work for Microsoft, MonoGame is not directly associated with them, though they do support us by getting the word out.
I’m working on exactly what you’re talking about: https://github.com/reignstudios/Orbital-Framework
Its an extremely cross-platform and agnostic API. Designed for speed, power and simplicity.
Much of the D3D12 layer it working good so far. Multi-GPU support will be added next and later RayTracing.
Will also have a agnostic sprite framework, audio and input frameworks as well. As well as an agnostic physics layer.
GPU accelerated vector support will also be looked into later.
You will also be able to write platform agnostic shaders in C#.
https://twitter.com/zezba9000/status/1313707223898419201
Keep in mind not ready to share this proj in a big way yet but you’re speaking music to my ears.
Thank you for comments. I think they are extremely valuable. I will take all of it into consideration.
The link to Microsoft Game Stack seems to be dead. It hits a 404 page.
I fixed it. Thanks for pointing that out.