Beginning C# Programming with MonoGame Review

Coursera course – The original Coursera MonoGame course has been replaced with a Unity Specialization

 

Earlier this year, I finished my first game with the GameMaker engine. While I was reasonably happy with my progress I wanted to explore other options and level-up my game dev skills. I decided on MonoGame as there was an online course that was aimed at complete beginners. The instructor also wrote a book to accompany the course: Beginning C# Programming with MonoGame, which is where I learned everything I know about proper coding in C#. You can find the book in several different versions; however, I will only be speaking for the version I read (MonoGame).

The book comes in 3 versions: MonoGame (left), and Unity (with choice of IDE)

This Is How I Learned C#

It might surprise you to learn that before I did Unity stuff I used MonoGame. In fact, I would attribute that experience as to how I had such an easy time getting to learn Unity. MonoGame and Unity both use C# so it isn’t too difficult to switch over.

Who Is This Book For?

I recommend this book for people serious about learning to code the right way. That means either a beginner or someone who gets nervous whenever they think about coding. If reading overwhelms you there is also an online course that will walk you through the book as if you are a beginner. In fact when I was just getting started I took the course. Sometimes it can be difficult to read something when I’m unfamiliar with the terminology so watching a few videos can really help.

Most Unity books tend to advertise that they teach C#. This is usually not the case as they barely do C# justice and I truly believe everyone should read one code-focused book before attempting anything else.

If you want to learn how to make games you really need one code-focused resource and one engine-focused. This is what I used to learn coding (C#).

What Is MonoGame?

MonoGame is the spiritual successor to XNA, a freeware set of game development tools that Microsoft pulled the plug on around 2013. MonoGame seeks to extend the life of XNA by building on top of the language. It has seen action from such games as Fez and Bastion. Overall, MonoGame takes a lot more work to build a game than Unity as it doesn’t have all of those great tools (e.g, no drag and drop, instead use the Pipeline).

When I switched over from MonoGame to Unity everything felt so much smoother. There are countless things that Unity does for you behind the scenes. I mean you can make a loading bar in Unity in like 30 seconds with all the UI stuff. Using MonoGame really gave me an appreciation for what Unity brings to the table.

Indie games Bastion (left) and Fez (right) both were developed under MonoGame.

Emphasis On Coding The Right Way

Most of us are aware of just how fast you can make a game when ignoring proper coding practices. We are also aware of how hard it is to un-break our game when it hits that one error. You know the one. You comment out the line in question and then something else breaks. Re-factoring code is something we all have to do eventually, but you really have to write things proper from day 1 or you’re setting yourself up for a world of pain.

This book got me started on the path of righteous code. To give you an idea on the amount of material here: this book is about 4x longer than the average book I review by my estimate. Though the book has a beginner approach it does demand that the reader put in a lot of effort. I had to write a ton of code and learned the pain that comes with a strongly typed language.

“This book assumes that you’ve never programmed before, so all the material starts at the most basic level. That means that anyone should be able to pick up the book and work their way through it without any prior knowledge. That’s the good news.

The bad news is that programming is hard work, especially at first. If you truly want to learn how to program, you’ll need to write programs yourself and struggle through some rough spots before some topics really click for you.” – author

Summary


Pros

  • beginner-friendly
  • same language as Unity
  • order of chapters feels natural
  • informal approach keeps things interesting (commentary, jokes)
  • high coding standards
  • thorough syntax (common issue in books I read)
  • emphasis on file structure
  • teaches proper commenting
  • master that tricky Content Pipeline (MonoGame)
  • equivocal to taking year one university course
  • learn how to search documentation well

Cons

  • heavy focus on proper coding = less time actually making games
  • occasionally exposes a concept before teaching it

Final Rating – 8.5/10


Links

Coursera link – Beginning Game Programming with C# (discontinued)

Coursera link – Unity Specialization

Books –
Beginning C Programming with MonoGame

Beginning C Programming with Unity: Visual Studio Edition

Beginning C Programming with Unity: MonoDevelop Edition