Skip to content

Commit 02291b7

Browse files
Updating 2D tutorial with video links
1 parent f2d0a2e commit 02291b7

13 files changed

Lines changed: 90 additions & 36 deletions

File tree

articles/getting_started/1_setting_up_your_os_for_development_arch.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: This section provides a step-by-step guide for setting up your deve
66
> [!TIP]
77
> Arch Linux is a rolling release distribution. This guide was tested in October 2025 with kernel `version 6.15.9-arch1-1`.
88
9-
To develop with MonoGame in C#, you will need to install the .NET 9 SDK. As of MonoGame 3.8.4.1 the recommended version is .NET 9.
9+
To develop with MonoGame in C#, you will need to install the .NET 9 SDK. As of MonoGame 3.8.4.1 the recommended version is .NET 9, .NET 10 is also supported.
1010

1111
> [!TIP]
1212
> You can still continue to use .NET 8 if you wish, you will just need to downgrade your client project .NET version in the `csproj` setup for your project (if using the default templates)

articles/getting_started/1_setting_up_your_os_for_development_macos.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Setting up your OS for development on MacOS
33
description: This section provides a step-by-step guide for setting up your development environment on Mac.
44
---
55

6-
To develop with MonoGame in C#, you will need to install the .NET SDK. As of MonoGame 3.8.4.1 the recommended version is .NET 9.
6+
To develop with MonoGame in C#, you will need to install the .NET SDK. As of MonoGame 3.8.4.1 the recommended version is .NET 9, .NET 10 is also supported.
77

88
> [!TIP]
99
> You can still continue to use .NET 8 if you wish, you will just need to downgrade your client project .NET version in the `csproj` setup for your project (if using the default templates)

articles/getting_started/1_setting_up_your_os_for_development_windows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Setting up your OS for development on Windows
33
description: This section provides a step-by-step guide for setting up your development environment on Windows.
44
---
55

6-
To develop with MonoGame in C#, you must install the .NET SDK. As of MonoGame 3.8.4.1 the minimum supported version is .NET 9.
6+
To develop with MonoGame in C#, you must install the .NET SDK. As of MonoGame 3.8.4.1 the minimum supported version is .NET 9, .NET 10 is also supported.
77

88
> [!IMPORTANT]
99
> If your chosen IDE for development is [Visual Studio](https://visualstudio.microsoft.com/) then you can skip this step as .NET 8 is included with the Visual Studio Installer.

articles/tutorials/building_2d_games/02_getting_started/index.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,26 @@ Unlike game engines (such as Unity, Unreal or Godot), MonoGame is a *framework*.
1212

1313
While the environment setup process is similar to the standard setup process for C# development, there are some MonoGame specific steps. These can vary slightly depending on your operating system and the *Integrated Development Environment* (IDE).
1414

15+
## Chapter Video
16+
17+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/Otx-8ON90cc?si=3q9i4vJQGba9UA9B" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
18+
|:-:|
19+
|**Live Recording**|
20+
1521
## Installing the .NET SDK
1622

1723
The first thing we need to do is install the .NET *Software Development Kit* (SDK). To install it, follow the instructions based on your operating system below:
1824

1925
> [!IMPORTANT]
20-
> As of MonoGame 3.8.2, the minimum supported version of the .NET SDK is .NET 8.
26+
> As of MonoGame 3.8.4, the recommended minimum version of the .NET SDK is .NET 9, .NET 10 is also supported.
2127
2228
### [Windows](#tab/windows)
2329

2430
1. Open a web browser and navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download).
2531
2. Choose the version of the .NET SDK to install and click the **Download .NET SDK x64** button to start the download.
2632

2733
> [!NOTE]
28-
> The minimum supported version is .NET 8
34+
> The minimum recommended version is a minimum of .NET 9, .NET 10 is also supported.
2935
3036
3. Once the download finishes, run the installer.
3137

@@ -35,7 +41,7 @@ The first thing we need to do is install the .NET *Software Development Kit* (SD
3541
2. Choose the version of the .NET SDK to install and click the *Download .NET SDK x64 (Intel)* button start the download of the .NET SDK Installer.
3642

3743
> [!NOTE]
38-
> The minimum supported version is .NET 8
44+
> The minimum recommended version is a minimum of .NET 9, .NET 10 is also supported.
3945
4046
3. Once the download finishes, run the installer.
4147

@@ -52,7 +58,7 @@ sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0
5258
```
5359

5460
> [!NOTE]
55-
> The minimum supported version is .NET 8
61+
> The minimum recommended version is a minimum of .NET 9, .NET 10 is also supported.
5662
5763
---
5864

articles/tutorials/building_2d_games/03_the_game1_file/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ description: Explore the contents of the Game1 file generated when creating a ne
55

66
After you created a new MonoGame project using the *MonoGame Cross-Platform Desktop Application* template in [Chapter 02](../02_getting_started/index.md#creating-your-first-monogame-application), you will notice the generated files and project structure that serve as a starting point for your game application. While MonoGame offers different templates based on target platform, all projects will contain the `Game1.cs` file.
77

8+
## Chapter Video
9+
10+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/urrmbSrL3KM?si=vbEtaFXdgbf16Ut5" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
11+
|:-:|
12+
|**Live Recording**|
13+
814
## Exploring the Game1 Class
915

1016
At the core of a MonoGame project is the [**Game**](xref:Microsoft.Xna.Framework.Game) class. This class handles the initialization of graphics services, initialization of the game, loading content, updating, and rendering the game. When you create a new MonoGame project, this [**Game**](xref:Microsoft.Xna.Framework.Game) class is implemented as the `Game1` class that you can customize as needed for your specific game.

articles/tutorials/building_2d_games/04_creating_a_class_library/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ In this chapter you will:
1313
- Structure your library for reusability.
1414
- Set up the foundation for creating shared game components.
1515

16+
## Chapter Video
17+
18+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/HdG-a7OFDeQ?si=i4knFHIw-NRdxuRO" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
19+
|:-:|
20+
|**Live Recording**|
21+
1622
## What Is a Class Library
1723

1824
Think of a class library like a toolbox for your game development. Just as a mechanic keeps their most-used tools in a toolbox they bring to every job, a class library stores code components you will want to use in multiple game projects. Instead of recreating these tools for each new game (or copying and pasting code), you organize them in one place where they are easy to find, use, and improve over time.

articles/tutorials/building_2d_games/05_content_pipeline/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ description: Learn the advantages of using the Content Pipeline to load assets a
55

66
Every game has assets: images to represent the visual graphics to players, audio to provide sound effects and background music, fonts to render text with, and much more. These assets start out as raw files (e.g. *.png* image files or *.mp3* audio files), which you will need to load into the game to use.
77

8+
## Chapter Video
9+
10+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/7Q9xZScrrCg?si=xicd9mSs3d90YzvK" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
11+
|:-:|
12+
|**Live Recording**|
13+
814
## Loading Assets
915

1016
Loading assets can be done during runtime directly from file, or it can be loaded through the **Content Pipeline**. Both of these methods are two sides of the same coin, and there are trade offs to each approach.

articles/tutorials/building_2d_games/06_working_with_textures/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ In this chapter, you will:
1010
- Learn how to render a texture with the [**SpriteBatch**](xref:Microsoft.Xna.Framework.Graphics.SpriteBatch).
1111
- Explore how to manipulate the way the texture is rendered using the parameters of the [**SpriteBatch.Draw**](xref:Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(Microsoft.Xna.Framework.Graphics.Texture2D,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Color)) method.
1212

13+
## Chapter Video
14+
15+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/RESBbDEyduU?si=5l2ABqoOTqu7-y8e" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
16+
|:-:|
17+
|**Live Recording**|
18+
1319
## Drawing a Texture
1420

1521
When rendering in MonoGame, *render states*, properties of the [**GraphicsDevice**](xref:Microsoft.Xna.Framework.Graphics.GraphicsDevice) that affect how rendering is performed, need to be set. When rendering 2D sprites, the [**SpriteBatch**](xref:Microsoft.Xna.Framework.Graphics.SpriteBatch) class simplifies rendering by managing these render states for you.

articles/tutorials/building_2d_games/07_optimizing_texture_rendering/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ In this chapter, you will:
1313

1414
By the end of this chapter, you will understand how to organize your game's textures for optimal performance and have a flexible texture atlas management system for your future game projects.
1515

16+
## Chapter Video
17+
18+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/0O3Su9xMFTA?si=-ANN-zJ-SLi3EATV" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
19+
|:-:|
20+
|**Live Recording**|
21+
1622
## Texture Swapping
1723

1824
Every time the [**SpriteBatch.Draw**](xref:Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(Microsoft.Xna.Framework.Graphics.Texture2D,Microsoft.Xna.Framework.Vector2,System.Nullable{Microsoft.Xna.Framework.Rectangle},Microsoft.Xna.Framework.Color,System.Single,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Graphics.SpriteEffects,System.Single)) method is executed with a different *texture* parameter than the previous [**SpriteBatch.Draw**](xref:Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(Microsoft.Xna.Framework.Graphics.Texture2D,Microsoft.Xna.Framework.Vector2,System.Nullable{Microsoft.Xna.Framework.Rectangle},Microsoft.Xna.Framework.Color,System.Single,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Graphics.SpriteEffects,System.Single)) method call, a *texture swap* occurs, unbinding the current texture on the GPU and binding the new texture.

articles/tutorials/building_2d_games/08_the_sprite_class/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ In [Chapter 07](../07_optimizing_texture_rendering/index.md), you learned how to
1414

1515
Imagine scaling this up to dozens of sprites, each with multiple instances on screen. Tracking all these properties through individual variables quickly becomes unmanageable. In this chapter, we will solve this by creating a class that encapsulates sprite information and handles rendering.
1616

17+
## Chapter Video
18+
19+
|<iframe style="max-width: 50%; aspect-ratio: 16 / 9; width: 100%;" src="https://www.youtube.com/embed/su5w31dkJ0w?si=7zLY221AQirguoBK" title="Live Recording" frameborder="0" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>|
20+
|:-:|
21+
|**Live Recording**|
22+
1723
## The Sprite Class
1824

1925
A sprite in our game represents a visual object created from a texture region, along with its rendering properties. While multiple sprites might use the same texture region (like multiple enemies of the same type), each sprite can have unique properties that control how it appears on screen; its position, rotation, scale, and other visual characteristics.

0 commit comments

Comments
 (0)