Skip to content

Menu Assets

Gabriela Nathania edited this page Oct 18, 2021 · 26 revisions

Introduction

This is the document detailing the assets added to the game by Team 1, covering the visually style of Runtime's menus and UI assets.

Key Design Considerations

These are the rules Team 1 set out within the Team 1 when designing the assets.

  • The assets, whether buttons or backgrounds, must make sense in the thematic style of the game.
  • The UI assets should have consistency with each other.
  • The navigation should be clear to the user based on simply looking at the menus.
  • Application of visual design elements (scale, balance, visual hierarchy, contrast, Gestalt principles)

Concepts

Sketches

Several rough sketches for the UI elements were necessary for the early stages of designing. These are important to understand how the interface and general task flow would be seen at various points in the game. Below are the rough sketches for each of the relevant screens:

Main Menu

Main menu rough sketch

Level Select Menu

Level Select Menu rough sketch

Death Menu

Death Menu rough sketch

Mock-ups

Following the sketches, an overall theme and style was decided on, and mock-ups were further designed and created using Illustrator.

  • Note, these are not the final designs.

Below, is the mock-up for the In-Game UI a player would see. A block font type was chosen specifically to compelement the design style which is the 'technology' theme. Hence, blocky fonts as well as neon colour palettes were intergrated into the design. The main background also follows the game concept by integrating elements such as computer towers and circuit board design - this helps to emphasise the technology theme as well as to highlight the environment in which the story of the game takes place, which is the computer world. The main colours are shades of blue with a hint of red to emphasise the story of the game (virus vs. anti-virus).

Title screen mock-up Levels screen mock-up Death screen mock-up Success screen mock-up

Below, is the mock-up for general button style a user would interact with throughout the menus in Runtime, as opposed to for a single menu. The buttons adapt a polygonal design to emphasise the blocky and flat design style with highlights of red when hovered to indicate consistency in the color schemes used within the In-Game UI. Additionally, this will help give feedback to the users in terms of the state of the buttons (i.e. default and hovered) as the red highlights around the border of the buttons give contrast to the background. Hence, the buttons are clear and easy for the eyes.

Button unhighlighted Button highlighted

Final Design for Buttons

In sprint 3, Team 1 has decided to enhance the UI of the game by developing a new design that adapts consistency with the pre-determined design style. To recall, the design style has to be 2D flat design in polygonal shape with shades of blue that has neon effects. Therefore, new button designs consisting of a default button and a hovered button were created and implemented. Below are the new designs of the button for main menu and levels page.

Default button and Hovered button

Default button Hovered button

Level 1 default button and Level 1 hovered button

Level 1 default button Level 1 hovered button

Levels page with new level buttons design

Updated levels page

Updated Scores page with new interface and new level button design

Score page

A few updates to the scores page include the re-design of the score box to emphasise the neon and sci-fi effect design style that helps maintain consistency of the game design.

Updated Interface for Main Menu Page

In sprint 3, team 1 has decided to improve the overal UI of the main menu page. First, the purpose of this was to enhance the look and feel of the game. The main page is crucial in delivering first impression of the overall concept of the game to the users - it helps users to grasp the game concept before they get into the gameplay. Given that, a new and enhanced character design (i.e., the head of the virus) was integrated into the design. Second, new layout design was established to aim for a better navigation. A few changes made on the positioning of RUNTIME title and the menu buttons - this helps emphasise the hierarchy of the menus and accentuate 'flat' navigation which is one of the recommended style for modern navigation.

Updated main menu page

Polished UI and Animation

In the final stage of the game development process, the focus was to make minor changes and polish every element within the UI. To enhance the UI to the extent that it allows for a smooth usability and user experience, removal of unnecessary elements which includes eliminating the excess white space around the button design was done. This process was applied for every button in the main menu and levels page since the previous button had more negative space which affected user navigation when hovering over buttons. Furthermore, an animation of the virus head for the main page was created. This prompted for a design that build up the emphasis on the concept of the game - the virus as the main character. Hence, the virus head design for the animation adapts a more enhanced looking as it helps users encapsulate the feel of the game.

Default and on hover 'Start' button (white space around the button was removed)

Start button default Start button on hover

Default and on hover 'Start' button (white space around the button was removed)

Level 2 default button Level 2 on hover button

Virus head (front-facing)

Virus head

The animation occurs when the 'RUNTIME' title is hovered. The title will disappear and change to the virus head which will then increase gradually to fit the screen. Below is what the UI looks like during the animation.

Virus head during animation

Implemented Assets on Main Menu

Method of Implementation

To add the assets to the game, all assets were added to the source\core\assets\images directory. Images were then added with using of the Gdx ImageButton functionality, allowing the images to be made into textures that could be applied to and positioned on any menu. Although all assets were added as ImageButtons, not all acted as buttons, on a functional level. Some ImageButtons, such as the Virus Head that sits on the Main Menu and the title of 'Runtime' that also sits on the same menu have no function besides displaying the image.

Positioning Variables

The following variables were added to move and reposition all the ImageButtons added to the Main Menu.

        /**
         * Creates the button size and position based off
         * of the users computer screen dimensions.
         */
        int centreWidth1 = Gdx.graphics.getWidth()/2;
        int centreHeight1 = Gdx.graphics.getHeight()/2;
        int buttonDimensionsWidth = (int) Math.round(centreWidth1*0.35);
        int buttonDimensionsHeight = (int) Math.round(centreHeight1*0.31);
        int titleHeightDimension = (int) Math.round(centreHeight1*1.3);
        int titleWidthDimension = (int) Math.round(centreWidth1*1.3);
        int centreWidth = centreWidth1 - buttonDimensionsWidth/2; // Moves middle of button to Centre
        int centreHeight = centreWidth1 - buttonDimensionsHeight/2;
        int centreTitleWidth = centreWidth1 - titleWidthDimension/2; // Moves middle of button to Centre
        int centreTitleHeight = centreHeight1 - titleHeightDimension/2;

        int width35Percent = (int) Math.round(centreWidth*0.40);

        int titleHeight = (int) Math.round(centreHeight*0.35);
        int height50Percent = (int) Math.round(centreHeight*0.38);
        int height65Percent = (int) Math.round(centreHeight*0.53);
        int height78Percent = (int) Math.round(centreHeight*0.78);
        int height90Percent = (int) Math.round(centreHeight*0.83);
        int height105Percent = (int) Math.round(centreHeight*0.98);

Title Elements

Below, is the Title asset that has been implemented into 'Runtime'.

Below, is the code for the rendering and positioning of the Title Asset that has been implemented in 'Runtime'.

        table = new Table();
        table.setFillParent(true);
        Sprite sprite = new Sprite(new Texture("images/title_screen_clean.png"));
        table.setBackground(new SpriteDrawable(sprite)); // Set background

Background Elements

Below, is the Background asset that has been implemented into 'Runtime'.

Below, is the code for the rendering and positioning of the Background Asset that has been implemented in 'Runtime'.

Button Elements

Below, is the Start Button asset, as well as Start Button Hovered Variant that have been implemented into 'Runtime'. Other buttons feature the same two assets to make them up.

Below, is the code for the rendering and positioning of both the Start Button Asset and Start Button Hovered Variant that have been implemented in 'Runtime'. This code includes the ImageButton code that allows the buttons to change Texture when hovered over.

        /**
         * Creates the button texture for the Start Button.
         */
        Texture startTexture = new Texture(Gdx.files.internal("images/button_start.png"));
        Texture startHoverTexture = new Texture(Gdx.files.internal("images/button_start_hover.png"));
        Drawable startDrawable = new TextureRegionDrawable(new TextureRegion(startTexture));
        ImageButton startBtn = new ImageButton(startDrawable);
        startBtn.getStyle().imageOver = new TextureRegionDrawable(startHoverTexture);
        /**
         * Sets the size and position of the button after texture applied.
         */
        startBtn.setBounds(centreWidth,centreHeight-height50Percent,
                buttonDimensionsWidth, buttonDimensionsHeight);

Additional Elements

Below, is the Title asset that has been implemented into 'Runtime'.

Runtime title icon

Below, is the code for the rendering and positioning of the Title Asset that has been implemented in 'Runtime'.

Table of Contents

Home


Game Design

Game Design Document

Void/Antivirus

Loading Screen

Game Sound

Menu Assets

Player Design

     Original Design

     Final Design


Gameplay

Movement

Jumping & Sliding

Jump Pads

Portals & Bridges

Buttons

Pick-Ups

Physics

    Momentum & Physics

    Gravity

    Collision


Level Design

Level 1

     Background

     Textures

     Map Design

Level 2

     Background

     Textures

     Map Design

Level 3

     Background

     Textures

     Map Design

Level 4

     Background

     Textures

     Map Design


Sprint Round-Up

Sprint 1 Summary

Sprint 2 Summary

Sprint 3 Summary

Sprint 4 Summary


User Testing

Testing Plans

Sprint 1

     Team 1
     Team 2
     Team 3
     Team 4
     Team 5

Sprint 2

     Team 1
     Team 2
     Team 3
     Team 4
     Team 5

Sprint 3

     Team 1
     Team 2
     Team 3
     Team 4
     Team 5

Sprint 4

     Team 1
     Team 2
     Team 3
     Team 4
     Team 5

User Testing

Sprint 1

     Sprint 1 - Game Audio
     Sprint 1 - Character Design
     Sprint 1 - Menu Assets
     Sprint 1 - Map Design
     Sprint 1 - Void

Sprint 2

     Sprint 2 - Game Audio
     Sprint 2 - Character Design
     Sprint 2 - Menu Assets
     Sprint 2 - Interactable Design Animation
     Sprint 2 - Levels 1 & 4, and Level Editor
     Sprint 2 - Proposed Level 2 & 3 Designs
     Sprint 2 - Current Game State

Sprint 3

     Sprint 3 - Menu Assets
     Sprint 3 - Map Design
     Sprint 3 - Score Display
     Sprint 3 - Player Death and Spawn Animations
     Sprint 3 - Pick Ups and Pause Screen

Sprint 4

     Sprint 4 - Gameplay
     Sprint 4 - Game UI and Animation
     Sprint 4 - Level Background and Music
     Sprint 4 - Game User Testing
     Sprint 4 - Final Game State Testing


Game Engine

Entities and Components

     Status Components
     Event System
     Player Animations Implementation

Level Editor

Level Saving and Loading

Status Effect


Defunct

Development Resources

    Getting Started

Entities and Components

    Level Editor (Saving and Loading
         Multiple Levels)

    Service Locator

    Loading Resources

    Logging

    Unit Testing

    Debug Terminal

Input Handling

    UI

    Level Saving/Loading

    Status Effects

    Animations

    Audio

    AI

    Physics

Game Screens and Areas

    Terrain

    Concurrency & Threading

    Settings


Troubleshooting

MacOS Setup Guide

Clone this wiki locally