Monogame

Monogame is a framework based on XNA that can be used to create games using the C# programming language.  

Here is the official Monogame website:

https://www.monogame.net/

Here is the Monogame API

https://docs.monogame.net/api/Microsoft.Xna.Framework.html

Monogame

There are many tutorials out there for Monogame of varying quality.  Since Monogame is based off XNA you may also use older resources from the internet that are based off of XNA.  Just beware that they might be buggy.

Monogame by default doesn't have any basic methods to draw basic shapes like lines, rectangles, ellipses etc.  All drawing is based off of using image files such as PNG, JPG, BMP etc. for everything.  You can find methods online that people have made to make drawing basic shapes easy if you like and just add them to your program.

Installing Monogame and the Content BuilderTool

Monogame is an extension that can be added to Visual Studio using the Extension Manager.  Here are instructions:

https://docs.monogame.net/articles/getting_started/1_setting_up_your_development_environment_windows.html


If you are using VS Code you will have to manually set up Monogame using the CLI.

Setting up MGCB Editor (MonoGame Content Builder Tool)

Creating your First Monogame Project

Here are instructions for creating your first Monogame Project:

https://docs.monogame.net/articles/getting_started/2_creating_a_new_project_vs.html

Remember to go to File->Add to Source Control to create a Git repo.

Understanding the Code

Here is a good description of what the various parts of the template are for.  It is important for you to read and understand this:

https://docs.monogame.net/articles/getting_started/3_understanding_the_code.html

Here are some important take aways:

Adding Content

In order to add any textures, sounds, etc. to your Monogame project, you will need to use the MGCB tool.   This process will be referred to throughout various tutorials, so you will need to get used to using it.  The tool will create the necessary entry in your projects Content.MGCB file with instructions on how to process whatever content you are loading.

Here is an explanation on how to do this:

https://docs.monogame.net/articles/getting_started/4_adding_content.html

These are the steps you will need to follow to use something like a texture (image file) in your project:

1 - Load the image file into your project using the MGCB tool.

2 - Create a variable to store the texture in your project. (Typically done in the global space of your Game.cs file)

3 - Initialize the variable by loading the content in the LoadContent() method.

4 - Draw the texture in the Draw() method.

You may apply logic in your Update() method that will affect how your texture will be drawn.


Good Basic Monogame Tutorials

I have some tutorials and example programs that I have made, but I am not going to repeat the basics that you can easily find.  I will assume in any tutorial that I provide that you are able to add content, load it and draw it on your own.

RB Whitaker's Tutorials

This first set of tutorials does a good job of providing the basics.  I would recommend starting with his 2D Tutorial and Input Tutorial.  

http://rbwhitaker.wikidot.com/monogame-tutorials

Games From Scratch

These are a bit older, but there is some good stuff here that you may wish to look at.

https://gamefromscratch.com/monogame-tutorial-series/