Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

​Starting my Game Dev Journey With C# and MonoGame

I first decided I wanted to be a game developer at 12 years old; it never happened 😔

Now, over 40 years later, I'm finally getting around to it! I've had quite a lot of software development experience but this has been mainly web development. The only real game development I have done in the past was at University where I built the beginnings of a small game engine for an RPG for my final project. I have used C# in the past, but not since 2007 and honestly, I have forgotten most of it.

So I'm starting over. I want to really get back to basics, learn game dev from the ground up and also take a walk down memory lane along the way and indulge in lots of nostalgia as I dig through my old Commodore 64 games and see if I can build versions of them now.

Why MonoGame?

I've never used a visual game engine like Unity or Godot, and because I don't yet know concepts like scenes and nodes and attaching scripts to individual objects in the scene, honestly it's confusing as hell! For somebody like me who is used to building stuff purely with code in an editor, the use of a visual engine is a learning curve in itself. 

Plus, I think it would be useful to learn the basics working on really simple games like Pong, Breakout, Space Invaders etc which can all be easily implemented in a code only framework like MonoGame. There's a lot to learn about very basic game dev concepts such as the game loop, states, sprites, collision and so on which I can practice while building out these very simple games.

When I do decide to move to a visual engine (most likely Godot), I think I'll understand it better having built at least something just in code first. So that's the plan!

My Learning Pathway

I've found a few resources, mostly online, which I plan to use to help me learn so let me share those here:

  • Harvard's CS50 Intro to Game Development Course - This is from 2018 and has now been archived (sadly, it doesn't look like they are creating a newer version). Each week they introduce a classic game like Pong, Flappy Bird, Breakout, Match 3 and so on, introduce game design elements that were used and then implement a version of it using Lua and the LÖVE engine.
  • Kansas University CIS 580 Game Programming Textbook  - this appears to be a reference text for a course they ran though I couldn't find details of the course itself. It is a pretty good tutorial for the key features of MonoGame.
  • Game Programming Patterns by Robert Nystrom - this book has been mentioned so many times as I have started my game dev journey and the author has very kindly posted an entirely free copy of the book for online viewing.
  • Learning C# by Programming Games [2nd Edition] ISBN: 978-3662592519 - I had a look through a ton of books before deciding on which one to work through (I prefer to read than to watch videos), and this one has been highly recommended. It's based on MonoGame and builds out 4 games along the way along with an extended framework to sit on top of MG which could be the starting point for a mini game engine.

You might be wondering why I'm starting with a very long University course? There's two reasons for this. Firstly, maybe I am just long in the tooth but I like the slower pacing and the structure of University based education. There's a trend in recent years towards short-form content and this just doesn't work for me. You can find stuff on YouTube building out game tutorials in mere minutes but what are you really learning? 

Not only does the pace make my head spin but I do want to learn good practices along the way so that I actually have a chance of building something more ambitious later down the line. Sure you can create a simple little game with all the code in the main file but you're not really learning good techniques in game design or structure by doing that. 

I'm Starting With Pong

It feels almost obligatory to start with Pong as it's a very simple game yet still introduces a few mechanics. Plus, it's the first game covered the in the Harvard course above.  

After that I'll probably do Flappy Bird as it's the next game in the Harvard course but there's also quite a few other little games I'd like to build that aren't covered such as Space Invaders, City Blitz, Missile Command, Snake, Frogger, Tetris, etc.

After that, what I'd really like to do is load up some of the old Commodore 64 games I really enjoyed playing as a kid and seeing if I can implement my own versions of those. 

Unlike many other aspiring game devs, I'm not really an ideas person, or at least not yet. I don't yet have the idea of the "dream game" that I want to develop but maybe I'll figure that out along the way. For now, I think I can have a lot of fun and learn a lot just by making all the classics from years gone by.

Support this post

Did you like this post? Tell us

Leave a comment

Log in with your itch.io account to leave a comment.