MonoGame: Introduction to C# Game Programming
What you'll learn
- Make games using MonoGame
- Write code using C#
- Understand common programming fundamentals
- Design software using Object-Oriented Design
- Utilize open-source software in your projects
- Finish 3 complete projects from scratch
- Understand the basics of using a computer
- Must be able to download and install software from the internet (like Visual Studio, MonoGame, etc.)
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
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
Classes and Inheritance
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
My name is Kyle Schaub, and I'm a full-time software engineer in the cloud computing industry with a Bachelor's in Computer Science.
I spend the vast majority of my spare time developing games, and after years of practice, I decided to begin sharing everything I've learned through Udemy. This hobby began at a very young age when I started off learning with Game Maker, and it grew from there, extending into various other languages and technologies. After solidifying my programming skills at a college level, I entered the workforce as a software engineer, but continued developing games on my own time.
I have been an instructor on Udemy since July of 2017. Since then, I have helped thousands of students develop their coding skills. I am constantly looking for new ways I can help teach students around the world.