Over the past several years, game development has grown into something that anyone can do. The barrier to entry is continually getting lower, and with so many tools to make the process easier, there’s nothing stopping you from getting started! In this course, we will learn the basics of creating games using MonoGame, a game framework with a rich history rooted in indie development. Hundreds of successful titles have been published that utilize this software, including Stardew Valley, Celeste, Fez, Axiom Verge, and Bastion, each of which has well above one million sales on Steam. The programming language we will be using is C#, one of the most widely used languages in the industry. The combination of a solid game engine and a well-documented programming language will provide everything you need to create any game you can imagine.
This is a project-based course: we will apply the programming and game development fundamentals that we discuss to create our own MonoGame projects. The lectures assume no prior technical knowledge, and whether or not you have programmed before, there is content in this course that can be utilized by anyone. After the introductory section, the course will be divided into three sections discussing C# programming, and three sections that go through the process of developing with MonoGame. We will alternate between programming sections and game development sections in order to get started making games as quickly as possible.
We will develop three games from scratch using MonoGame within this course, starting with a Shooting Gallery game where you click on targets that appear on the screen. Then we’ll create a Spaceship game where you move around the screen using the arrow keys to avoid incoming asteroids, and then we’ll round off the course by creating a top-down action RPG, where we control a player that can walk around and shoot projectiles at enemies. Each new game that we develop will build on what was learned in the previous one, and in the end, you will have a great understanding of what you will need to develop games of your own, which includes:
- Creating a playable character
- Keyboard and mouse input
- Displaying images to the screen
- Detecting collisions
- Shooting projectiles
- Player score and health
In order to successfully implement these aspects of our games, we will need a solid understanding of several C# concepts. Throughout all three programming sections, we will cover a wide variety of topics, including:
- Variables and Data Types
- Conditional Statements
- Classes and Inheritance
- Switch Statements
- Data Structures
Although these concepts will be explained in the context of C#, they are common throughout most programming languages and can be applied to topics beyond the scope of the course. That being said, if you already have a background in programming, there is a “syntax review” lecture, where we’ll do a quick walkthrough of how to do these simple programming tasks in C# specifically. So, if you already know what these are, you can quickly get up to speed on its use in this context.
With all the skills acquired from this course, you will have everything you need in order to get started with projects of your own using MonoGame. By coding along with the lectures, the information will stick with you as we go through the material, and you will have the projects we complete available on your computer that you can look back on and reference. With a solid understanding of C# and MonoGame, there will be nothing stopping you from developing anything you can think of!
Who this course is for:
- Anyone who wants to learn game development
- Anyone who wants to learn programming fundamentals
- Anyone interested in picking up C# as a new language