Skip to content

Loss & Win In Game Menus

default-jamc edited this page Aug 30, 2021 · 17 revisions

Purpose

In-Game loss & win menus allow for the player to control the behaviour of the game when they lose or clear a level, giving the player a sense of direction in the game.

Menu Format

Both menus will appear on the screen as floating boxes or 'pop-ups' such that the rest of the game screen will still be visible behind them. Menus will feature buttons which allow the player to choose whether to continue, retry or return to the main menu.

Loss menu

Buttons & Interaction: The Loss menu will feature 2 buttons, 'Replay' and 'Return to Main Menu'.

Structure & Design: The menu colour is a 'cold' blue with 'hot' (orange, yellow, pink) embellishments, the specific colours chosen was based on the colour palette of the game. (See Design Guide)

Activation: The loss menu will appear when the player's health drops to 0.

Level Cleared / Win menu

Buttons & Interaction: The Level Cleared / Win menu will feature 3 buttons, 'Continue', 'Return to Main Menu' and 'Replay'.

Structure & Design: The menu colour is a 'cold' blue with 'hot' (orange, yellow, pink) embellishments, the specific colours chosen were based on the colour palette of the game. (See Design Guide)

Activation: The win menu will appear when the player clears the level by reaching the right-most edge of the screen.

Implementation

Key Components

  • PlayerWinDisplay & PlayerLossDisplay Creates the visualisation of the pop up menus.
  • PlayerWinActions & PlayerLossActions Handles the actions taken when the buttons on the menus are pressed.
  • PopupMenuActions Handles actions after pressing buttons that are common across all pop up menus
  • PlayerWinPopup & PlayerLossPopup Triggers the pop up menus based on the status of the game
  • ForestGameArea Used to keep track of the player e.g. health status, position on the map

Currently, the menus are UIComponent's of the MainGameScreen, which are passed a reference to the player (Entity), game (GdxGame) and currentMap (GameArea) so that they can keep track of the player state in the game, make changes to the game accordingly (eg, set the new screen) and be aware of their location in the currentMap.

In the MainGameScreen's createUI method:

Entity ui = new Entity(); 
ui.addComponent(new ...)
.addComponent(new PlayerLossPopup(game, currentMap.getPlayer()))
.addComponent(new PlayerWinPopup(game, currentMap));

The MainGameScreen's constructor was changed to retrieve a reference to the ForestGameArea object, so that it's player Entity can be retrieved:

public MainGameScreen(GdxGame game) {
    ...
    this.currentMap = forestGameArea;
    createUI();
}

And hence a getPlayer method was added to the ForestGameArea class:

public Entity getplayer() {
    return player;
}

Usage

Add a win or loss menu to a player by adding it to the MainGameScreen UI. Inside the MainGameScreen createUI method:

Entity ui = new Entity(); 
ui.addComponent(new ...) // Other entities for the UI
.addComponent(new PlayerLossPopup(game, currentMap.getPlayer()))
.addComponent(new PlayerWinPopup(game, currentMap));

The LossPopup only requires the player as it does not need to know where the player is in the currentMap. The WinPopup is passed the currentMap object so that it may have access to the currentMap information (when the player has cleared the currentMap) and the player, (from ForestGameArea's getPlayer method).

Menu Designs

The final designs proposed for the menus are below.

Loss Menu

Win Menu

Table of Contents

Home

Introduction

Main Menu

Main Game Screen

Gameplay

Player Movement

Character Animations

Enemy Monster Design and Animations

Game basic functionalities

User Testing

GitHub Wiki Tutorial

Game Engine

Getting Started

Documentation

Entities and Components

Service Locator

Loading Resources

Logging

Unit Testing

Debug Terminal

Input Handling

UI

Animations

Audio

AI

Physics

Game Screens and Areas

Terrain

Concurrency & Threading

Settings

Troubleshooting

MacOS Setup Guide

Clone this wiki locally