.Net Core and MonoGame?

I don’t think so, yet.

Imagine if there was an Xbox Two announcement, you could then ask is there a possibility for MonoGame to support it? Yes, there is, but it’s not even out yet…

I don’t think you quite understand what .Net core is… .Net Core is a C# compiler/runtime + a set of basic C# libs (like mono or .Net).

Now C# UWP apps are using it, there are MonoGame UWP apps that are using it, but that code won’t be useful since .Net core is just that, a runtime, it’s not a GUI library, it doesn’t allow you to access window/sound/input etc., it’s just a runtime. For you to access all those native stuff you need to call platform specific APIs and play by the rules of the platform itself.

1 Like

I dont want to sound like a dick, but your plan is to wait for it to be released to start the work on it?

This is a stupid way of thinking

A good a developper is a dev who can embrace new tech as soon as possible to provide to his customers the best product as early as possible (Day D)

“September 2018 - No MonoGame based games for the launch of the XBOX One 2, because we just started to work on .NET Core, wich was released back in 2016, i know we had time, but we wanted to wait for the XBOX One 2 to be released before starting any work”

.NET Core is a rewrite of .NET Framework, it is set to replace it completely, working on .NET Core today is important and makes lot of sense

.NET Core is a subset of the .NET Framework and it will not replace it. The reason advertised mostly to port to .NET Core is cross-platformness. But since MonoGame needs to use device specific backends for graphics and audio there is not as much benefit in porting. Why do you think MG should be ported to .NET Core and for what platforms?

Wrong and allow me to articulate the reasons… [Elon Musk]

https://www.microsoft.com/net/core#windowsvs2015

Personally I think Microsoft should have kept .NET Core internally for their cross platform apps and much prefer that they got DirectX easily usable within C#.NET instead of having to use P/Invoke etc. … But that does get me wondering as I have seen code doing this…

Some juicy links, warning: contains C# PrOn :stuck_out_tongue:

I mean, look at it this way, I do not know how MonoGame does it, but it is likely wrapping C++ code that invokes DirectX calls which means it either uses P/Invoke already or it wraps some other way, let us not forget that MonoGame is wrapping around one of two projects that enable the access to DirectX calls so… there is a lot of digging to be done if you want to go it your own way…

Personally I want to use MonoGame for the foreseeable future, at least another 5+ years as the core of my game engine framework…

But having said that, who knows, there has been talk of Microsoft making DirectX available for C#.NET secretly, there is even a project over on the NVidia dev portals making something of it…

Personally I will focus on MonoGame for now and as .NET will be here for some time and will still be usable for Windows Store apps, I am happy… it is when this breaks that I will be concerned…

So your only issue is what do you want to do, and why is .NET Core so important to you that you need a 20%~ reduction in API calls?

Also, please do your research before coming to a conclusion that has no foundation… it reflects badly on you… just some friendly advice.

I say this because I get tired of hearing people talking about DirectX9.0C as if it was ancient history without fully understanding what DirectX actually is…

Right, my two pennies laid to rest…

1 Like

Look at the date of my comment, the Tizen C# was literally just announced that day, you couldn’t even download Tizen C# stuff at that moment.

We use SharpDX, which has implemented an IL code generator to create the fastest bindings possible. It’s not a simple P/Invoke or wrapping of C++.

Microsoft already went down the .NET wrapper route with Managed DirectX, but it was no good. Just a simple wrapper and not performant enough. There is no faster or more complete interface to DirectX than SharpDX provides, and Microsoft even use it themselves like they also use MonoGame for some projects.

There features that MonoGame uses that .NET Core does not yet provide. A large chunk of MonoGame could likely use it, but not all.

A good developer also knows how to manage time and resources. We work on MonoGame voluntarily in our spare time and get no remuneration for it. MonoGame covers many platforms and architectures. Jumping onto new platforms as early as possible is not always possible. It’s nice to do it when we can, but something else has to lose out to make way.

3 Likes

more logs to stoke the fire :smiley:

1 Like

Just note that dotnet core runtime does not run on all of the platforms that mono’s runtime can currently run on. Even if MonoGame could port itself to run on the dotnet core runtime, they would not be able to run on as many platforms as they can under Mono, until dotnet core has runtimes published for PS4/Vita/iOS/Android etc. Currently, Core only runs on MacOS, Windows and one or two flavors of Linux. There is an experimental runtime running on Arm, but it is not officially supported by Microsoft nor does that Arm build run on iOS/Android.

PS4 and Vita don’t run any .NET runtime Tom (MonoGame lead) has a C# -> C++ transpiler to run on
some console platforms.
But yeah, it makes sense to wait until at least all Linux distros and Xamarin support .NET Core before switching MonoGame to it.

The .dot net core sprung out of the compact framework which was used on the xbox 360.
Which of course in turn was just a subset of dot net.
That was the (core dot net stuff) compacted to fit on things like phones and the xbox.

here’s a article that breaks it down.
http://www.dotnetcurry.com/dotnet/1308/dotnet-core-future-of-dotnet-framework

1 Like

Oh, I totally forgot to mention it here, anyway I got MG with .net core working on Linux: https://github.com/MonoGame/MonoGame/issues/5339#issuecomment-285405829

Xamarin did make a Mono runtime for the PS4, which is what MonoGame on PS4 uses. On the Vita we use the C++ transpiler tool.

1 Like
1 Like

Any updates? Figured I would ask. Since the original post we’ve seen a few things happen (not comprehensive obviously):

Please excuse my ignorance on the specifics. Just seeing if any decisions have been made around .Net Core support.

I’m all for progress, but the timing was the worst for me. I’m using portable class libraries for the bulk of my code so I can share it across all platforms without having to use any compiler directives. It’s actually working really well and there’s a portable MonoGame library on NuGet.

Unfortunately, with this .NET Core release, they’ve deprecated Portable Class Libraries… so I’m going to have to update all those libraries I wrote. That’s later me’s problem though until there’s a MonoGame PCL replacement using .NET Core I guess.

1 Like