Skip to content

Game Intro

sh4453 edited this page Oct 5, 2021 · 8 revisions

Purpose

First impressions are important. To provide brief background and context to the game, the player will be informed through a sequence of story-telling images. Each image will contain a small amount of text and graphic elements which aim to give the game meaning and help the player understand what they need to do.

Design Process

The basic game description will resemble:

"Asgard is being shaken and stirred by catastrophic meteor events and overrun by all kinds of evil forces. You must navigate the rugged terrain and return to your spaceship before it is too late."

Potential ideas were considered regarding the visual appearance of the game intro sequence. The sketches below exhibit a shortlist of potential screens to be developed:

Asgard is being shaken and stirred by catastrophic meteor events... ...and overrun by all kinds of evil forces. You must navigate the rugged terrain... ...and return to your spaceship... ...before it is too late.

Final Screens

The final game intro screens were developed according to the design guide. This was characterised by vibrant accent colours in contrast to the dark navy space background.
As the game is space-themed, the main background colour will be a dark navy colour to resemble the appearance of outer space. Accent colours will be bright and colourful to provide strong contrast against the dark background. A serpent enemy monster was added to screen 2 to include a better representation of the enemies encountered in the game. According to user testing conducted, there were no issues mentioned and aspects which warranted alterations in the design.

A potential issue with screen 4 is that it may need to be updated to match the visual appearance of the third and final level as it contains the endpoint goal of the game, being the spaceship. As the background and terrain are bright blue, this might disrupt the storyline and flow of the game intro.

Implementation

In order to complete this implementation 2 new classes were creates; IntroDisplay.java and IntroScreen.java.

IntroScreen

This class was implemented to load and unload assets, as well as creating the intro screen UI based on information collected from IntroDisplay.java. It overrides the render class for rendering, the resize class for resizing the render and the dispose class to dispose of the render, as well as to unload the screen assets.

IntroDisplay

The intro display was implemented using a stage and two tables, one representing the background and the other representing the buttons. 2 buttons were included for this implementation; a next and skip button, both of which have their event implementations defined within the class. Each scene as pictured above was assigned to a TextureRegionDrawable object, so that the background could simply be set as these images.

the method activated when the next button is pressed (nextScene()) is as follows:

public void nextScene() {
    if (background.getBackground().equals(scene1)) {
        background.setBackground(scene2);
    } else if (background.getBackground().equals(scene2)) {
        background.setBackground(scene3);
    } else if (background.getBackground().equals(scene3)) {
        background.setBackground(scene4);
    } else if (background.getBackground().equals(scene4)) {
        background.setBackground(scene5);
    } else if (background.getBackground().equals(scene5)) {
        game.setScreen(GdxGame.ScreenType.LOADING);
    }
}

As can be seen above, each iteration of ""next" calls the next scene until the end, at which point it will start the game. The skip method simply starts the game, regardless of which scene is currently set as background.

Issues

Implementing Intro screens & updating main menu #158

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