Video summary

GameMaker Studio 2: Complete Platformer Tutorial (Part 10: Menu screen)

Main summary

Key takeaways

Gaming

GameMaker Studio 2: Complete platformer tutorial (Part 10: menu screen) - Summary

This tutorial covers creating a basic but functional menu screen in GameMaker Studio 2, focusing on setting up the menu room, drawing the menu options, and handling user input to navigate and select options.

Storyline / Context

  • This is part 10 of a platformer tutorial series.
  • The focus is on implementing a simple menu system before the game starts.
  • The menu includes options like "New Game," "Continue," and "Quit."

Gameplay Highlights

  • The menu is designed to appear as a separate room with a scrolling background for visual interest.
  • The menu options are displayed in the bottom right corner.
  • The menu smoothly slides in from the right side of the screen.
  • User can navigate the menu using keyboard arrow keys and select options with the Enter key.
  • Selecting an option triggers corresponding actions:
    • New Game: starts the game.
    • Continue: currently acts like New Game (no save/load implemented yet).
    • Quit: closes the game.
  • A subtle screen shake effect is added when selecting an option for polish.

Key Steps & Implementation Details

1. Setting up the menu room

  • Create a new room dedicated to the menu.
  • Use multiple background layers with different horizontal scroll speeds to create a parallax effect.
  • Place persistent objects like transition and camera in this room (with adjustments to avoid unwanted interactions).
  • Position the menu object on an instances layer.

2. menu object Creation & Variables

  • Create a menu object.
  • In the Create event, initialize variables:
    • GUI_width and GUI_height for screen size.
    • GUI_margin for padding from screen edges.
    • menu_x, menu_y for menu position.
    • menu_x_target for smooth movement target.
    • menu_speed for easing speed.
    • menu_cursor to track currently selected option.
    • menu_committed to track the selected option after confirmation.
    • menu_control boolean to enable/disable input.
    • menu_items array containing menu option strings ("New Game", "Continue", "Quit").
    • menu_items_count dynamically calculated from array length.
    • Font setup for menu text.

3. Drawing the Menu (Draw GUI Event)

  • Set font and text alignment (right and bottom aligned).
  • Use a for-loop to iterate through menu items from bottom to top.
  • Highlight the selected menu item with a right arrow and white color; others are gray.
  • Draw text with a simple black outline by drawing the text four times offset by 2 pixels in each direction, then draw the main text on top.

4. Menu Controls (Step Event)

  • Ease the menu sliding in from off-screen to its target position.
  • Handle keyboard input:
    • Up arrow: move selection up (wraps around).
    • Down arrow: move selection down (wraps around).
    • Enter: commit selection, slide menu off-screen, disable input, trigger screen shake.
  • After menu slides off-screen and a selection is committed, perform actions using a switch statement:
    • Case 2 ("New Game") and default: transition to the game room.
    • Case 0 ("Quit"): close the game.
    • Case 1 ("Continue"): currently treated same as "New Game."

Strategies and Tips

  • Use arrays to store menu options for easy scalability.
  • Use dynamic GUI size variables to make the menu resolution-independent.
  • Use easing formulas for smooth UI animations.
  • Draw text outlines by layering multiple offset draws for pixel fonts.
  • Always set font and alignment before drawing text to avoid inconsistent rendering.
  • Use a boolean to disable input during menu animations or transitions.
  • Use switch statements for clean handling of menu actions.
  • Rename layers if camera objects interfere with parallax scrolling in the menu.

Potential Extensions Mentioned

  • Adding mouse control support.
  • Expanding menu options.
  • Adding save/load functionality for "Continue."

Credits / Sources

  • Tutorial by the GameMaker developer featured in the video.
  • Patreon supporters thanked: Dan in a Mule, Knicks Lavish, Stephen Hagen, John Grimshaw, Nathaniel Walsh, Bowels of the Dog, Louis R Pereira, Charles Montgomery, Harold Guidry, Jason Macmillan, Owen Morgan.

This tutorial provides a foundational menu system that can be expanded with additional features and polish, ideal for beginners working with GameMaker Studio 2.

Rate this summary

Your feedback will help improve summaries.

Improve this summary

Reprocess with a stronger model when the summary feels incomplete or inaccurate.

Pro

Translate summary in another language

Pro

Ask questions to this video

Chat for follow-up questions, clarifications, and source-backed answers.

Coming soon

Share this summary

Original video