Video games are on our computers, our consoles and our phones. Lots of people play them and every year more people are making them. If you have ever played a computer game and thought, “I wonder how they do that?” or, better yet, “I want to make something like that,” then this course will get you started. Game development is what got many developers into programming. But how many of us actually ever learned how to create games? Creating games can be challenging, but it doesn’t have to be that way.
Video games are on our computers, our consoles and our phones. Lots of people play them and every year more people are making them. If you have ever played a computer game and thought, “I wonder how they do that?” or, better yet, “I want to make something like that,” then this course will get you started. Game development is what got many developers into programming. But how many of us actually ever learned how to create games? Creating games can be challenging, but it doesn’t have to be that way.
MonoGame is a cross platform gaming framework based on Microsoft’s XNA framework that’s extremely easy to learn. MonoGame is a simple and powerful framework for creating games for desktop PCs, video game consoles, and mobile devices using the C# programming language. Best of all, games you build with MonoGame will run on iOS, Android, Mac OS X, tvOS, Windows, Linux, PlayStation 4, and more—write once, play anywhere. It has been succesfully used to create games such as Streets of Rage 4, Carrion, Celeste, Stardew Valley, and many other.
It is a re-implementation of the discontinued Microsoft's XNA Framework, and it provides the following features:
Game framework
2D and 3D rendering
Sound effect and music playback
Keyboard, mouse, touch, and controller inputs
Content building and optimization
Math library optimized for games
There’s no shortage of options when it comes to game development environments. From full-featured engines like Unity to comprehensive and complex multimedia APIs like DirectX, it can be hard to know where to start. MonoGame is a set of tools, with a level of complexity falling somewhere between a game engine and a grittier API like DirectX. It provides an easy-to-use content pipeline, and all the functionality required to create lightweight games that run on a wide variety of platforms.
MonoGame is a "bring your own tools" kind of framework, which means that it provides the building blocks to build your own engine and tools, but it isn't quite an engine itself.
If you are expecting a scene editor (like Unity or Unreal), MonoGame is not that.
If you love coding and understanding how things work under the hood, MonoGame might be what you are looking for. And fear not, getting a game running with MonoGame only takes a few minutes.
Best of all, MonoGame apps are written in pure C#, and you can distribute them quickly via the Microsoft Store or other similar distribution platforms.
Our focus will be working with Visual Studio Community (Compatible with Versions 2019/2022) on Windows machines
Update 2023 All MonoGame Demos have now been updated to Version 3.8 (released late 2022) Previously MonoGame installed on your machine through an installer, but from 3.8 onwards everything is installed through NuGet packages and Visual Studio Extensions. The most notable change for existing users is that MonoGame will only support .NET 6 and Visual Studio 2022 moving forward.
Note:MonoGame 3.8 project templates are not compatible with earlier versions of MonoGame. If you wish to work on or build older MonoGame projects, then you will still need to install MonoGame 3.7.1 or earlier to open them. WindowsDX and DesktopGL templates now use SDK-style projects in MonoGame 3.8 The 3.7.1 demos are still maintained in the course.
This course assumes that you’ve done a little bit of programming in C# but all the material starts at the most basic level. That means that anyone should be able to join in and work their way through the material. 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. Just as you can’t learn how to ride a bicycle by reading about it – you have to actually do it, probably with some spills along the way – you can’t learn to program just by reading about it or watching a video. If you were hoping to watch and learn how to program without doing any programming yourself, it’s not going to happen... But having said that don't feel you are alone, I will be available daily for extra help should you need it.
This course is project-based, so you will not just be learning dry programming concepts, but applying them immediately to real games as you go. All the project files will be included, as well as additional references and resources
Here's how I will help you to succeed:
o Each lecture starts with a list of objectives/speaking notes
o Every example covered in the lecture is available for download in the resources section … including the objectives/speaking notes
o Almost every lecture has a set of Practice problems with full solutions provided
o My style of writing and teaching follows the KISS principle : Keep It Super Simple. I try to stay away from fancy computer terminology and try to teach like am speaking to a brand new user with little to no previous knowledge on the subject matter.... and I am always available for help … replying most times within a day.
.... And finally please do not judge a book by it's cover ... don't judge the course by the title or this small description section, if you want to know exactly all the topics covered please go to:
.. This will open up literally thousands of lines of very detailed lecture descriptions leaving no doubt what is and what is not covered.
... So are you ready to start making your first games ? Lets get started .
In this Lecture we will
In this Lecture we will
In this Lecture we will
Highlight the software you need to participate in the course
Visual Studio 2015 2017 2019 2022 Express or Community
MonoGame Version 3.6 or 3.71
7zip
*** Update ***
Migrating from 3.7
Previously MonoGame installed on your machine through an installer, but from 3.8 onwards everything is installed through NuGet packages and Visual Studio Extensions.
Note MonoGame 3.8 project templates are not compatible with earlier versions of MonoGame. If you wish to work on or build older MonoGame projects, then you will still need to install MonoGame 3.7.1 or earlier to open them.
In this Lecture we will
Learn about some of the concepts and applications we will create .. here is a sampling
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In the Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture you will
Learn to use the MonoGame Windows Project Template
Run your first MonoGame program
Understanding the underlying Template code
Directives (using)
Game1 Class
Instance Variables (SpriteBatch)
The Constructor ... Game1()
The Initialize Method
The LoadContent Method
The Update Method
The Draw Method
public Game1() The constructor. We aren’t going to change this method at all for this tutorial.
protected override void Initialize() Here we initialize any class variables that are used. This method is called once at the start of the game.
protected override void LoadContent() This method loads content (eg. textures, audio, fonts) into memory before the game starts. Like Initialize, it’s called once when the app starts.
protected override void UnloadContent() This method is used to unload non content-manager content. We don’t use this one at all.
protected override void Update(GameTime gameTIme) This method is called once for every cycle of the game loop. Here we update the states of any object or variable used in the game. This includes things like an object’s position, speed, or color. This is also where use input is handled. In short, this method handles every part of the game logic except drawing objects on screen.
protected override void Draw(GameTime gameTime) This is where objects are drawn on the screen, using the positions given by the Update method.
Update!
Migrating from 3.7
Previously MonoGame installed on your machine through an installer, but from 3.8 onwards everything is installed through NuGet packages and Visual Studio Extensions. The most notable change for existing users is that MonoGame will only support .NET 6 or greater and Visual Studio 2022 moving forward.
Note MonoGame 3.8 project templates are not compatible with earlier versions of MonoGame. If you wish to work on or build older MonoGame projects, then you will still need to install MonoGame 3.7.1 or earlier to open them.
WindowsDX and DesktopGL templates now use SDK-style projects.
MonoGame tools (MGCB, 2MGFX, and the Pipeline Tool) are now distributed as .NET Tools automatically when using any of the MonoGame 3.8.1 templates.
The Pipeline Tool has been renamed MonoGame Content Builder Editor (MGCB Editor) and does not require an installation anymore (providing that you are using the MonoGame 3.8.1 templates). The Visual Studio 2022 extensions make .mgcb files within your solution clickable and will open the MGCB Editor on them.
Choose:
MonoGame Windows Desktop Application (uses DirectX)
MonoGame Cross-Platform Desktop Application (uses OpenGL)
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
A recap of the concepts learned in this section
In this Lecture we/you will
In this Lecture we/you will
In this Lecture we/you will
In this Lecture we will
In this Lecture we/you will
In this Lecture we/you will
In this Lecture we will
In this Lecture we will
In this Lecture we/you will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
An overview of Keyboard, Mouse input and Collision Detection
In this Lecture you will
In this Lecture we will
In the Lecture we will
In this Lecture we will
Recap of the Next Step in Game Development
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
In this Lecture we will
discuss future options for students interested in game development
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.