Why Microsoft doesn't promote MonoGame?

Just wondering.

When you install Visual Studio, they promote Unity, Cocos, CryEngine and Urho3D for game development and offer to install packages along with Visual Studio.
At the Microsoft Virtual Academy they offer courses for Construct, GameMaker Studio and Unity for developing Windows Store and mobile games.

The only place they mention MonoGame is at the .NET page for Game Development.

But I find it interesting for actual development they seem to favour and recommend other tools and frameworks.
It feels like they turned their back on MonoGame.
Why is that? Is it because of complexity of MG and popularity of other tools, marketing to let people know at day1 they can use those popular engines with C# and Visual Studio? Or is it because it still using an old version of DirectX and OpenGL and doesn’t showcase the power of Win10 and the latest DX? I would imagine it can be important for them.

I don’t have doubts regarding if MonoGame worth using, I love the framework for what it is but wondering why Microsoft seem to ignore it.

I don’t know why there is no Monogame options during Visual Studio install, but they do mention Monogame in other places.

If you go to developer.microsoft.com and go to the “Game” section in the Docs they list Monogame as an option:
https://docs.microsoft.com/en-us/windows/uwp/gaming/e2e#bridges-game-engines-and-middleware

If you go to the Xamarin part of the docs Monogame is there as well:

As for other frameworks/engines it can’t be denied that Unity and Gamemaker are very popular so it makes sense if there are more tutorials/resources about them.

Unity and Gamemaker are very popular so it makes sense if there are more tutorials/resources about them.

Yeah it makes sense but what I find weird there is none for MonoGame. MS did have one but they have removed it and replaced with Construct 2.

they do mention Monogame in other places.

Fair enough, I did not find those places.

Only last year MonoGame are on Channel 9 ^_^y

1 Like

We need something to grab attention and so far, NO! not much yet… nothing ground-breaking like Senua’s Sacrifice for example… [Just got it yesterday btw]

like Senua’s Sacrifice for example

I can see that many people complaining about 3D game development and lack of 3D games made in MonoGame, but there are some decent 2D and 2.5D games made in MonoGame/XNA:
http://www.monogame.net/showcase/

Not sure why there is not many 3D games made in MonoGame/XNA. When I discovered XNA many years ago, I’ve seen lot of decent 3D screenshots shared by the community, it even had a pretty good 3D car racing game template included as well.

At the time I was amazed by what XNA is capable of, that car racing game was look something I would play on my Xbox but I did find it way too complicated to code in XNA at the time. Now I’m back, and for 2D games I find MonoGame great, but indeed there are not many decent 3D games. Wondering if Unity got something to do with it. I would imagine many people decided to go with Unity instead…

I have published my personal opinion. I have developed the Unity project for 2 years. From before I graduated to the present, Unity resources are very extensive in Asia. There are Unity teachings everywhere and developers are willing to make plug-ins for Unity.
When I learned Xamarin in the company and wanted to make games, I noticed Monogame, but Monogame has too few resources for beginners, or maybe I am used to Unity’s Engine.
But to be honest, I don’t like Unity’s license terms, but give me a free and resource-rich game engine that might choose Cocos2dx or Corona.
I am used to developing in C#. I hope that more people in this community can provide more tutorials and resources to let more people know about the development of Monogame.

1 Like

I hope that more people in this community can provide more tutorials

Yeah, there are not many good tutorials for complete beginners especially for people who new to C#, OOP or even programming in general.

Would be nice if there would be an article or page with complete beginners in mind.

For example, this is the steps I personally did:
I did take the free C# Programming Course at alison.com
https://alison.com/course/diploma-in-c-sharp-programming

I believe you can find the same or even more up to date version of the same course from the same instructor at Microsoft Virtual Academy, but the reason I decided to go with Alison is because you get a certificate at the end following an assessment. I know it doesn’t worth anything in the professional world, but at least it does show that you did take the effort to complete the assessments and not just watched all the videos. In my opinion…

And then I took two courses at Udemy. It is not free but highly recommended:

It is an extremely well made course, the way the instructor explain the concepts is extremely easy to understand and also useful as an introduction not only to MonoGame but also C# and OOP

The next
https://www.udemy.com/a-gentle-intro-to-game-development-using-c-and-monogame/

I did find this course a little difficult to follow with my limited C# knowledge but I did go through and learned very useful concepts about game programming in general. I can also recommend this but only to those who has some experience with programming, if not C# but any other language.

After and since I search for examples, source codes and learn from them. There is a pretty good collection at github:

Of course there are some free tutorials on MonoGame that I also learn from but the above was my entry point in to C# and MonoGame and it did worked for me. Still there is a lot more to learn but I’m at the point when I’m able to work my way around pretty much any problem, find solutions by reading the dock, searching google and able to implement them.

Free tutorials:
https://www.youtube.com/channel/UCmTQ2wsonxqW0W8cMKE0--Q

It is a pretty good tutorial series, only started not too long ago, but it is not coming up in search (yet).

If you search on Youtube or Google this is one of the first tutorials you find:

The guy do know the staff but the way he present the information is not for everyone, I didn’t mind but he also doesn’t really go in to details and take the time to explain staff. It more a like a dev vlog than tutorial in my opinion, but still can learn some useful info from it regarding how to use MonoGame,

But yeah, when it comes to tutorials and community shared content, Unity is pretty much a winner, not to mention the visual editor that most people do prefer…

I’m one that likes the mostly code-only approach of MonoGame, at least for the simple 2D stuff I am doing. Maybe when I get more experience I’ll try Unity again but Unity was too much for me to handle. I might go with Godot instead as it was a nice experience.

I also just thought of something. Microsoft is the one that gave up on XNA. MonoGame is the unofficial continuation of XNA. Perhaps Microsoft just does not think XNA/MonoGame is the way to go and so do not focus on it as much as other options. I hope that is not the case since I would love to see more MonoGame on Channel9 and other Microsoft dev channels.

Huh? Goto the ms dot net website. Look under game development. Monogame is right below Unity. I would think most companies would kill for that type of exposer.

https://www.microsoft.com/net/learn/apps/gaming

1 Like

Thanks for the mention, @ddabrahim. I’ve never heard somebody compare my stuff to a dev vlog rather than tutorial. That’s interesting to me!

I’m going to take this away and see how I feel :smile:

I’ve never heard somebody compare my stuff to a dev vlog

No offence intended though. I do find your tutorials and the information you share very useful, but yeah, in the videos especially in the first few, you did not take the time to explain certain concepts just told to accept it the way it is and google it if we don’t know the staff. Plus the “open” way you demonstrate the content really made me think at times I am watching a dev vlog kind of thing at Twitch :innocent:
But I did find it useful until the point I really had no clue what you doing and I realized, I’m really need to take some sort of C# course first :sweat_smile:

No offence intended though.

Not offended - don’t worry about that! :slight_smile: I do see what you mean though, and I very much appreciate the comment. I agree with you, too!

I guess I never really explained in my videos (maybe a comment here or there), but my tutorials were based on the assumption that the viewer has a good concept of C#, and are trying to get there head around game dev.

Hopefully I can hit a nice middle ground in the future! :slight_smile:

This is something I hope for too. I’ve started to dabble in 3D development, and a lot of it is me tapping in the dark and guessing how to do certain things. RBWhitaker’s and Riemer’s tutorials helped me up a lot when it comes to shaders and some basics of collision detection, but that’s more or less it.

Well, I might write up a tutorial once I finish my current test project, covering the basics of 3D development. I’m just not sure if it would be useful.

I agree. :slight_smile:

MonoGame is sorely lacking in good tutorial and reference documentation.

Though I have selected a very difficult project to begin game development with, the lack of resources that details how to use the API functions it provides made research extremely difficult. It was only through the kindness and the responsiveness from the people on these forums that made it possible for me to accomplish as much as I did.

To be fair, MonoGame is not alone in this situation. Withe the exception the “The Game Creators’” products, which all have very good documentation, none of the popular game engines provide anything beyond rudimentary API reference material, which for learning to handle such software is almost useless.

A lot of the problem is just that internet rot has lead to a lot of old XNA tutorials disappearing.

There’s also the general breadth of the problem.

What do you want tutorials on?

  • Batching w/ automatic instancing? (order your draw calls around)
    • I can see that being useful, as it’s not very intuitive to do in C# where sorting even as little as 400 structs is not an option to do every frame
  • Asset-pipeline extensions?
    • the glorious land where everything that shouldn’t be internal is internal
  • Implementing PBR and IBL?
  • Writing a lightmapper for your project?
  • Setting up a configurable render-pipeline?
  • Clustered / tiled rendering?
  • Shadowmaps?
  • C/C++ interop?
    • ie. where/how to the get the GL / DX objects you want
  • General game-y stuff?
    • cameras that don’t suck, scene-graphs, etc
    • interop with other libraries, such as SharpNav or Geometry3Sharp?
  • Performance info?
    • how to not murder an IvyBridge? (spoiler: detect it and default to 720p)
  • Parellelizing?
    • frame-behind rendering?

Needs more tutorials is easy, but what tutorials?

There are not many getting started tutorials, it hard to say what tutorials we need until we don’t know what MonoGame/XNA is all about…

How about a complete tutorial series where we are making a complete game, implementing all the common features we can expect in most games today and then make the necessary changes to compile to all popular platforms.

  • displaying sprite
  • playing sprite animation
  • make sprites move to position
  • make sprites move toward angle
  • make sprite move around position
  • rotate sprites
  • scale sprites
  • move sprites with mouse, keyboard, gamepad, touch, sensors
  • create instances of objects
  • check collision between instances
  • delete instances on collision
  • display text
  • change text font
  • change text size
  • update text during runtime
  • create a camera that we cam move, follow an object
  • make a GUI that move along with the camera
  • read and write files make a save/load system (cross platform)
  • implement levels, content management, move between levels
  • show me how to compile all this to Android, iOS, Mac, Linux, Windows, UWP, HTML5(when become available)

And then show me how to use 3rd party libraries and frameworks to implement:

  • physics
  • pathfinding
  • lights
  • particles
  • spine animations
  • spriter animation
  • tiled map
  • multiplayer
  • tween animations
  • show me how to compile all this to Android, iOS, Mac, Linux, Windows, UWP, HTML5(when become available)

And then show me how to add:

  • clickable and reward ads
  • in-app purchase
  • virtual currency
  • how to compile this to Android and iOS

And then show me how publish my game on online stores and how to hook my game up to store features like achievements, rewards, score boards, payment systems, user profiles…etc on:

  • Google Play Store
  • Amazon App Store
  • Steam
  • Apple Store
  • Windows Store
  • Facebook (when HTML5 become an option)

Finally we can get in to some advanced topics and slowly move toward 3D like:

  • shaders
  • displaying 3D meshes
  • textures
  • mixing 3D and 2D (have some 3D objects on top of 2D aka 2.5D game development)
  • 3D camera that move around
  • bone animations
  • manipulating, moving, rotating, scaling 3D meshes
  • manipulating vertices and faces of 3D mesh
  • collision with 3D objects
  • terrain generation from height map
  • vegetation generation
  • 2D to 3D rendering (interaction with a screen in 3D world)
  • VR
  • AR

If I would have the knowledge how to do all the above in MonoGame, that would be a pretty good starting point and motivation because most people when take a look at a new engine, the first thing they want to know, what can be done with the engine and the best way to get the answer by looking at the list of tutorials and examples available and games made by others. MonoGame is lack of all of them. Right now the only tutorials that do demonstrate some of the above topics are the ones I have linked above, but not even those touch all the topics. There are some XNA books too, but to be honest they are not very good. I tried them years ago and most of them are not targeting complete beginners but experienced C# programmers. Maybe I could learn from them now, but since XNA is dead, I’m not that motivated to purchase XNA books. I want books with MonoGame on the cover and up to date content inside.

3 Likes

Microsoft creates wonderful content, but they also send much of it to the graveyard…

MonoGame is basically XNA 4.0 Refresh, dotNET, C# programming language, sprinkled in Visual Studio. In other words there are a lot of tutorials out there, a lot of documentation, plenty of videos. Even engines for 2D/3D that use XNA/MonoGame. However, it’s very time consuming and difficult to get a lot of these concepts into your own projects. And many, if not most, will lose much of their enthusiasm to continue on this path.

If you dig deep enough, you’ll find the success stories and the games using XNA / MonoGame / Other Deviants.

MonoGame’s problem now is that it has fulfilled the destiny of XNA 4.0 Refresh. But what comes next? Is anybody actually going to push it forward?

1 Like