Skip to content

Tutorials - Building 2D Games - Feedback #228

@AndersPantzar

Description

@AndersPantzar

First of all:
The tutorial is great at explaining how things work.
I also like how it explains common design patterns.

Even though I've used MonoGame for over 10 years, I still learned a thing or two (or got reminded about things I had forgotten)

Here are some minor issues I found while following the tutorial
Do with this information as you will (some of these might be intentional)

1.

https://docs.monogame.net/articles/tutorials/building_2d_games/15_audio_controller/index.html#updating-the-game1-class
and https://docs.monogame.net/articles/tutorials/building_2d_games/17_scenes/index.html#game-scene-methods
Code says to use Keys.OemPlus and Keys.OemMinus to access the + and - keys
That didn't work for me, so I used Keys.Add and Keys.Subtract
(This might be just my Swedish keyboard)

2.

https://docs.monogame.net/articles/tutorials/building_2d_games/17_scenes/index.html#scene-lifecycle
The second point uses the word "screen", everywhere else it's "scene"

3.

https://docs.monogame.net/articles/tutorials/building_2d_games/17_scenes/index.html#scene-management
Tells me to make "the following changes", but nothing in the code is highlighted

4.

https://docs.monogame.net/articles/tutorials/building_2d_games/17_scenes/index.html#game-scene-methods
Sets

Core.ExitOnEscape = false;

While this is correct, in Core.cs we only check if Escape is down (not WasKeyJustPressed)

if (ExitOnEscape && Input.Keyboard.IsKeyDown(Keys.Escape))
{
	Exit();
}

In TitleScreen Core.ExitOnEscape is true,

This makes it so we have to gently tap Escape for a single frame to go back to the TitleScreen, else we will exit the entire game

This was fixed during refactoring later in the tutorial, but never mentioned.

5.

https://docs.monogame.net/articles/tutorials/building_2d_games/18_texture_sampling/index.html#texture-coordinates
Mentions "destination rectangle" which is not something this tutorial has used (yet?)

In https://docs.monogame.net/articles/tutorials/building_2d_games/18_texture_sampling/index.html#updating-the-title-scene
we do use "destination rectangle", still without explanation

6.

https://docs.monogame.net/articles/tutorials/building_2d_games/19_user_interface_fundamentals/index.html#anchoring

"/.../ you element would position /.../", "you" should probably be "your" or "the"

7.

https://docs.monogame.net/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.html?tabs=vs2022#initializing-gum

"/.../ input devices by using th FrameworkElement.KeyboardsForUiControl and /.../", "th" should probably be "the"

8.

https://docs.monogame.net/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.html?tabs=vs2022#creating-the-options-panel

Semicolon in the comment:
"// Set the global sound effect volume to the value of the slider.;"

9.

https://docs.monogame.net/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.html?tabs=vs2022#adding-titlescene-ui

We initialized Gum to use Up/Down arrows for navigation, but the buttons are aligned horizontally. Wouldn't Left/Right be more intuitive?

10.

https://docs.monogame.net/articles/tutorials/building_2d_games/20_implementing_ui_with_gum/index.html?tabs=vs2022#integrating-with-the-game-loop

When Navigating the UI with keyboard, pressing Enter to go to Options menu starts the game.
Clicking with the mouse works fine.
This was -not- fixed during the refactoring.
Is it just me?

11.

https://docs.monogame.net/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.html#animation-chains

This section felt out-of-the-blue and unrelated to what has been talked about previously. It might be relevant later in the article, but right here it felt strange.

12.

https://docs.monogame.net/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.html#the-animatedbutton-class

Up until now we have gotten new classes in pieces, each with explanation of what each piece does
Now we got an entire class in one go.

Also, in this class:

"/.../It can be casted to access/.../", "casted" should probably be "cast"

13.

https://docs.monogame.net/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.html#fill-visualization

Missing the opening "/// <summary>", and has an extra closing "}" at the end

14.

https://docs.monogame.net/articles/tutorials/building_2d_games/21_customizing_gum_ui/index.html

This article is by far the heaviest.
I think it would help to have an image or a video at the top (and before each custom control segment) to show what we are working towards. It helps visualising and understanding why we are doing what we are doing.

15.

https://docs.monogame.net/articles/tutorials/building_2d_games/22_snake_game_mechanics/index.html

Double spaces between sentences.
(Might be in more articles, but this is where I first noticed them)

16.

https://docs.monogame.net/articles/tutorials/building_2d_games/22_snake_game_mechanics/index.html#the-gamecontroller-class

Got the entire class in one go... just as in 12

17.

https://docs.monogame.net/articles/tutorials/building_2d_games/22_snake_game_mechanics/index.html

None of the movement uses delta time, or have I missed something?

18.

https://docs.monogame.net/articles/tutorials/building_2d_games/23_completing_the_game/index.html#gamescene-collisionchecks-method

"/.../ // FIrst perform a /.../" "FIrst" should probably be "First"

19.

https://docs.monogame.net/articles/tutorials/building_2d_games/23_completing_the_game/index.html#gamescene-positionbatawayfromslime-method

"/.../ it could be on top fo the head /.../" "fo" should probably be "of"

20.

https://docs.monogame.net/articles/tutorials/building_2d_games/23_completing_the_game/index.html#implementing-input-buffering-in-the-slime-class

"/.../ This prevents th slime from backing into itself /.../" "th" should probably be "the"

21.

https://docs.monogame.net/articles/tutorials/building_2d_games/24_shaders/index.html#implementing-the-grayscale-shader
Step 6

"// We are in a game over state/.../"
We could also be in a paused state

22.

https://docs.monogame.net/articles/tutorials/building_2d_games/24_shaders/index.html#important-considerations

Comments in this section are very long and should probably be broken into multiple lines for easier reading
(I have to scroll horizontally to read them)

23.

Overall: There's a mix between implicit and explicit types. Maybe pick one and stick to it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions