Documentation + User Guide


User Guide

Static VS UndeAAd created for Semester 2, 2020, KIT109 at UTas

The aim of the game is to try and destroy as many 'UndeAAd' as possible before they destroy the Generator. This is done by making Static occupy the same space as the undeAAd. All movement takes place on an 11 by 11 grid. UndeAAd can only drain energy from the Generator when they are immediately adjacent to it. The blue 'Power' gauge shows how much power is left in the Generator. The Generator can only store 10 units of power.

Controls

All controls are performed via the mouse. Clicking the 'Actions' buttons will queue up movement steps for Static. Clicking on Execute will then make Static carry out the Queued Actions.



How well does the end result match the original game treatment?

Overall, Static Vs UndeAAd matches fairly well. The Genre remained "Puzzle/Strategy", and the theme remained unchanged. That being said, there are a dramatic number of changes to the final execution. One of the areas that changed for the better was changing the game grid from a 10X10 grid, through to an 11X11 grid; Doing so allowed for there to be a centre node for the Generator to occupy.

Given the time frame, I had to cut down the initial plan of 3 levels down to 1 level, with the game being changed from a level-by-level affair to an arcade-style score attack. The same issue, time frame, also meant cutting down the number of enemy types from 3 down to 1, and removing the 'shoot' commands from Static's planned actions (meaning, Static no longer has the ability to shoot). The reason the time frame was so tight is largely due to how complex the movement system is. Using defined nodes as part of a grid was hard; using defined nodes as part of a grid with an enemy using A*Star Pathfinding was harder, taking multiple weeks to get completed.

The biggest revision was the art style. Whilst I had always intended for the art style to be pixel-based; some of the asset designs are vastly different to what they are now. The biggest departure is Static itself. In the game treatment, I described Static as looking like a CRT TV on legs, with a shotgun and a purple color palette. Static is decidedly not on legs, nor does it have a shotgun. This is due to both limitations with the sprite sizes I was using, and my own artistic talent not quite being up to the task.


Test Session Feedback Summary

I didn't get many respondents to the survey used,  so the overall opinions that I can draw from the results are fairly limited; so I will be supplementing this information with my own direct observations of the players, and how they approached the game.

Starting with the difficulty; most of the respondents found the game difficult. This was also true of the players I observed directly, who had additional feedback indicating that the overall gameplay was easy enough to pick up, but difficult to keep up with (Barring one player who found it quite simple and quipped, "So, when does the game end?").

The thoughts provided on the art-style were unanimous; the art-style resembles that of a retro-style PC game, is very consistent and technical, and appeals to the target audience (The target audience being "Casual gamers, ages 13 and up, with interests in pixel art, turn-based games and puzzles"). The feedback regarding the character designs was positive as well, with only one suggestion for an alteration being provided. The alteration suggestion was to give the UndeAAd evil little eyes, which if I had the time, I'd love to do as it would bring the in-game UndeAAd in-line with the UndeAAd on the title screen.

There wasn't anything that people suggested that they wanted removed from the game, but everyone that played it wished there was some form of audio for it, and I'm forced to agree. Some audio would've been wonderful to included.


Additional Features

  • Character Art
  • Tilemap Art
  • Title Art
  • UI Art
  • Help Screen
  • Path-finding for NPCs


Asset list and referencing

Scripts

NameReferencePurposeIn use?
AdvancedEnemyMovementDerived from PathNode and Mover scripts provided as part of KIT107, and then heavily modified by Syrus Turner
This script is used to enable advanced NPC movement on the gridYes
AStarHelperProvided as part of KIT107Used as part of the A*Star algorithm provided as part of KIT107No
BasicSpawnerCreated by Syrus TurnerInstantiates prefab UndeAAd in an area that stretches around the edge of the tilemap
Yes
DrawHelperProvided as part of KIT107
Used to draw the Gizmo for the PathNodes in Unity
Yes
EnemyMovementDerived from PathNode and Mover scripts provided as part of KIT107This script is used to enable basic random-number-generator-based movement for NPCs
No
GeneratorHealthCreated by Syrus Turner
Used to keep track of 'Generator Health' on the Generator prefab game objectYes
IPathNodeProvided as part of KIT107Used as part of the A*Star algorithm provided as part of KIT107; specifically a part of the PathNodesYes
MoverProvided as part of KIT107Used as part of the A*Star algorithm provided as part of KIT107; specifically as part of causing an NPC to moveNo
NodeGenerator
Provided as part of KIT107Used as part of the A*Star algorithm provided as part of KIT107; specifically to generate Nodes on startNo
PathFollowerProvided as part of KIT107Used as part of the A*Star algorithm provided as part of KIT107; specifically as part of causing an NPC to moveNo
PathNodeProvided as part of KIT107; Heavily modified by Syrus TurnerUsed as part of the A*Star algorithm provided as part of KIT107; specifically a part of the PathNodesYes
PlayerMovementDerived from PathNode and Mover scripts provided as part of KIT107, and then heavily modified by Syrus TurnerThis script is used to enable Player character movement, as well as tracking turn-order
Yes
RaycastUtilsProvided as part of KIT107Raycasting Utilities
No
SceneSwitcherProvided as part of KIT107; heavily modified by Syrus Turner
Used to cause Scene Transitions on specific triggersYes
ScoreTrackerCreated by Syrus TurnerCauses a text field in the GUI to update with the current player score on Unity's update cycle
Yes
SetAnimatorBooleanOnInputProvided as part of KIT107
Triggers a 'ChangeState' method on key pressNo
SetAnimatorBooleanOnTriggerStayProvided as part of KIT107
Allows for changing a boolean on another animator
No
ShowOnlyAttributeProvided as part of KIT107Sets up the 'PropertyAttribute' class type
No
ShowOnlyDrawerProvided as part of KIT107Allows for showing a readonly property in the inspector within UnityNo


Sprites

All sprites created by Syrus Turner.

NamePurposeIn Use?
ButtonsUsed as a Sprite Sheet for GUI buttons used for in-game controlsYes
DeadmanUsed as a stand-in for the 'UndeAAd' character sprites during development
No
Generator Sheet 1
Used as a Sprite Sheet for the Animations used for the Generator game objectYes
HealthUsed as a Sprite Sheet for the 'Power' gauge in the in-game GUIYes
Map01Used as a Sprite Sheet for the Tilemap used for the Map01 sceneYes
Map02Used as a Sprite Sheet for the Tilemap used for the Map01 scene during developmentNo
Panel - blank
Used as the backing for the in-game GUI buttonsYes
staticUsed as a Sprite Sheet for the Animations used for the PlayerTarget game objectYes
TargetUsed as a stand-in for the 'Static' character sprites during developmentNo
undeAAdUsed as a Sprite Sheet for the Animations used for the UndeAAd game objectYes
Menu undeaad3
Used as the background for screens that aren't during gameplayYes


Animations

NamePurposeIn Use?
Generator 1
Animator used to control 'Generator Anim' and 'GeneratorDeath'Yes
Generator Anim
Looping animation for the Generator game object when 'GeneratorHealth' is above 0
Yes
GeneratorDeathAnimation for the Generator game object when 'GeneratorHealth' reaches 0, and triggers a Scene Transition to the Game Over scene
Yes
Health_0Animator used to control the health state animations for the 'HealthBar' game object
Yes
HealthJar10 - HealthJar0
Animation used to show the current state of the 'HealthBar' game object
Yes
PlayerTarget
Animator used to control Player Animation states
Yes
PlayerEatingEnemy
Animation for when Static eats an UndeAAd
Yes
PlayerNearEnemy
Animation for when Static is near an UndeAAd
Yes
PlayerNeutral
Animation for when Static is not in another state
Yes
PlayerShutDown
Animation for how Static reacts to a Game Over
Yes
Selected Action 1-3
Animators for the 'Queued Actions' GUI elements
Yes
SelectAction1_downMove
Animation that's used to show the relevant arrow on the 'Queued Actions' GUI
Yes
SelectAction1_leftMove
Animation that's used to show the relevant arrow on the 'Queued Actions' GUI
Yes
SelectAction1_rightMove
Animation that's used to show the relevant arrow on the 'Queued Actions' GUI
Yes
SelectAction1_upMove
Animation that's used to show the relevant arrow on the 'Queued Actions' GUI
Yes
UndeAAd (1) Variant
Animator that controls the appearance of the 'UndeAAd' game objectsYes
UndeAAd Absorb
Looping animation used for when the UndeAAd attack the Generator
Yes
UndeAAd Neutral
Static animation that is used for the UndeAAd when they're not attacking the GeneratorYes


Fonts
All fonts sourced from Chequered.Ink

NamePurpose
Coder's Crux
Used for the in-game UI labels
Lady Radical
Used for Menus, Title, Game Over, How To Play and Credits screens

Leave a comment

Log in with itch.io to leave a comment.