.Net Core: One GUI across platforms


I am interested in the power of .Net Core.
Will it be enough to create cross platform games?
Can i write a 3d game once and run across platforms supported by .Net Core?

I mean sometimes “cross platform” means a small set of functions and no GUI.


Unity3D is your answer.


You didn’t understand anything, i know about it.
You can read the question again - it is about .Net Core, not game engines.
I am talking about .Net Core like Java to write a simple game once and run across supported platforms.
Will it be possible in .Net Core?
Or cross platform means only logic behind and no GUI?


You need to do a little research on what .NET Core is. Unity is based on Mono which will use .NET Core (at least partially) in the future. And to write a game … you need a game engine.

Will it be enough to create cross platform games?


Can i write a 3d game once and run across platforms supported by .Net Core?

Yes, if you have the resources.

Will it be possible in .Net Core?

Sure, if you have the resources.

Or cross platform means only logic behind and no GUI?

I will answer this with great dose of simplification: logic behind. Again, do a little research.

.NET Core should be enough to write text-based game. If you want to add graphics (ex: OpenGL support) you probably need to do some extra coding. Check out http://sourceforge.net/projects/taoframework/

In summary, economically it doesn’t make sense to use anything other than Unity3D at this point of time. Maybe you have few million € and want to compete with Unity, it is your call.


You say no and then yes 2 times.

  1. Developers create cross platform games on Java.
  2. I made a game using Windows Forms.

I can’t really get you, i don’t make big super games to need Unity3D.
Let me know how can i ask a question)
Will .Net Core have libraries to create 3d models and GUI?

  1. WPF can create 3d models.
  2. Java has Swing and Swing3D and it is cross platform.

I ask a simple question, if you don’t know will .Net Core support GUI like Java does, so it is a bit different story.

I would prefer WPF in compare to Unity3D, i don’t use 3d modelling software to create 3d models, i don’t use design software to create photos - i just make a simple Tic Tac Toe.
I ask a specific question.

I have no idea how to correct the question more deeply than that.

So it has no GUI, only logic, i need to port my code out .Net Core to get GUI, ok!


.NET Core will not have any GUI/graphics libraries with it. That means WPF too.

There is a high chance similar libraries and frameworks will be released for .NET Core, but it will be third party and I doubt Microsoft will be developing it themselves.

I am trying to develop a basic 2D game engine on .NET Core for my own needs and not having any GUI libraries can be difficult. You have to manually P/Invoke on the supported platforms to get even a basic window showing.

OpenTK (used for making OpenGL games) will probably eventually support .NET Core (see https://github.com/opentk/opentk/issues/245).


Ok, i got it.

What? I have not got it, WPF has GUI.


If you need multiplatform WPF, optimized for real-time and also available in Unity, please, have a look at NoesisGUI:



For game development I might suggest MonoGame http://www.monogame.net/


MonoGame does not support .NET Core currently. It uses OpenTK, which must be updated to support .NET Core first before MonoGame will.


That is true. To my knowledge (please prove me wrong, always happy to learn) no game frame currently supports core. MonoGame does support most if not all platforms one could want so it’s a good place to start I think.


SharpDX recently added support for .NET Core, though it’s limited to Windows OS’s only obviously (since it uses Direct3D). However SharpDX supprting .NET Core can be beneficial for creating a cross platform engine (option to use Direct3D when running on Windows).

I expect a lot of third-party cross-platform libraries such as OpenTK to support .NET Core when it comes available/releases.


This is a terrible, systemic problem with MSFT and has been a thorn in the side of MSFT developers for many years. There simply isn’t a great answer here, and an effective build-once-run-everywhere paradigm continues to be elusive.

What has been encouraging is that MSFT finally has shown some “gets it” with Windows Universal Platform. One codebase works on any Windows 10 device. It is even built on .NET Core. Unfortunately, as you can probably guess, it is the same old problem of only working on Windows OS’s. So, at the end of the day, MSFT developers are still burdened with the unpleasant prospect of building more than one code base (each with their own risks and bugs) to satisfy a market-majority presence.

This is inconsistent with the operations and philosophy of .NET Core, which runs on Linux and Mac (and…? going into the future). MSFT should really take a hard look at this and ultimately provide consistency and uniformity across their entire ecosystem.

I have an open vote for this very idea. Please take a second and let MSFT hear your thoughts towards this:

Make Universal Windows Platform Open Source and Cross-Platform

Thank you for any consideration and interest.

.NET Foundation Website | Blog | Projects | Code of Conduct