Skip to content

The Void Entity

Anton Pennazza edited this page Oct 18, 2021 · 26 revisions

Introduction

The void is a constantly moving entity that spawns to the left of the player and acts as the main enemy/obstacle, if the player touches the void all of their life is removed. The method to create the Void entity is defined in the NPCFactory class, the stats for the void are defined in the TheVoidConfig class which basically define the Void as an Entity with 1000000 health and 1000000 base damage. The createTheVoid() method is called within the LevelGameArea class to spawn it into the world at a position to the far left of the player. The behaviour of the Void is managed by TheVoidTasks, this class is used to trigger events defined in TheVoidController which moves and animates the Void as well as updates the Void's sound volume.

Movement

Within the class TheVoidTasks the event TheVoidMove is being constantly triggered which causes the void to move across the screen towards the player, however it was found that by setting the void to move at a constant speed the player would either very easily escape the void or they would be constantly killed by it. Therefore, there is a function "UpdateSpeed" that increases the void's speed if the player gets 12 m away from the player and sets the void's speed back to normal within the 12 m range. This essentially ensures that the void is no more than 12 m behind the player to keep pressure on the player throughout the game.

Animation

The Void's animation is implemented through the use of a sprite sheet animated_void.png and a .atlas file void.atlas, these 2 files are attached to the Void entity in the method createTheVoid() in the class NPCFactory. When the game starts the event TheVoidAnimate is triggered by the class TheVoidTasks which begins the void animation.

Sound

The void emits its own sound which increases as the player gets closer to the void and decreases as the player gets further away from the void to invoke a sense of urgency and danger. In the class TheVoidTasks the event UpdateSound is being constantly triggered, this event calculates the distance between the player and the void and scales the volume accordingly.

Inspiration & Concept Art

Inspiration

Initial inspiration came from Super Smash Bros. Ultimate - Classic Mode: Bonus Game (it can be seen in action here https://www.youtube.com/watch?v=0-I2nlZlQy0) it depicts an ominous purple void approaching the player

Concept Art

A number of designs for the void were created using InkScape and Adobe Illustrator, and as they progressed they slowly evolved to fit the theme of the game. Initial concept art ideas tried to experiment with different shapes, patterns, styles and designs that could fit the technology and sci-fi theme.

The image below is one of the very first concept ideas of the void (by Michelle), designed prior to conceptualising a particular design style for the game. It incorporates fine lines, binary patterns and dark colours, trying to achieve a futuristic yet threatening void. As the overall game style was developed, iterations were made taking some of these themes and elements, such as binary code, and experimenting with how it could be incorporated into the design.

Initial Concept Art by Michelle

This is also one of the initial concept art for the void. It has an animated binary pattern and a dark tone giving an ominous vibe. It was not implemented however because it does not match the map aesthetic and it was difficult to implement the animation. (Made by Iris)

Mock-ups ​

Various designs were created throughout the design exploration and ideation of the void, as seen below. One design tried to incorporate relevant imagery and styles related to antivirus software, such as a shield-shaped void. Others just tried to include a modern tech style, using "tech line" patterns that emulate a digital environment.

Most designs saw the use of darker hues of blue for the larger, main body of the void, only using more vibrant tech-inspired accent colours, such as neon blues, to highlight particular features and patterns of the design. Predominantly darker colours were included in the design to add to the looming experience of an enemy void approaching the player.

Narrowing Down the Design Style

As the overall style of the game became more established, which incorporates a simplistic artstyle with a more flat design approach, the design of the void had to be consistent with the rest of the game. The following is one of the first designs to meet the artstyle and sci-fi aesthetic of the game. Inspiration was taken from the design of the game menus, and integrated with other design patterns previously explored. The back portion of the void however tapers inward and doesn't cover the map entirely, and thus was not used. Though, aspects of this design were kept for the void's design.

Changes were made in regards to the previous design, especially with the colour palette, from a blue palette to red-purple theme to provide some contrast from the game's background and map design. The design continues to incorporate a tech inspired aesthetic. This is animated in the game, with the wire tech lines changing in gradient, to simulate movement of the void, and the antivirus scanning what it devours. The front of the void also rotates to animate the void.

Some minor iterations were made to the void's design, with the current and most recent design shown below.

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