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
Name | Reference | Purpose | In use? |
---|---|---|---|
AdvancedEnemyMovement | Derived 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 grid | Yes |
AStarHelper | Provided as part of KIT107 | Used as part of the A*Star algorithm provided as part of KIT107 | No |
BasicSpawner | Created by Syrus Turner | Instantiates prefab UndeAAd in an area that stretches around the edge of the tilemap | Yes |
DrawHelper | Provided as part of KIT107 | Used to draw the Gizmo for the PathNodes in Unity | Yes |
EnemyMovement | Derived from PathNode and Mover scripts provided as part of KIT107 | This script is used to enable basic random-number-generator-based movement for NPCs | No |
GeneratorHealth | Created by Syrus Turner | Used to keep track of 'Generator Health' on the Generator prefab game object | Yes |
IPathNode | Provided as part of KIT107 | Used as part of the A*Star algorithm provided as part of KIT107; specifically a part of the PathNodes | Yes |
Mover | Provided as part of KIT107 | Used as part of the A*Star algorithm provided as part of KIT107; specifically as part of causing an NPC to move | No |
NodeGenerator | Provided as part of KIT107 | Used as part of the A*Star algorithm provided as part of KIT107; specifically to generate Nodes on start | No |
PathFollower | Provided as part of KIT107 | Used as part of the A*Star algorithm provided as part of KIT107; specifically as part of causing an NPC to move | No |
PathNode | Provided as part of KIT107; Heavily modified by Syrus Turner | Used as part of the A*Star algorithm provided as part of KIT107; specifically a part of the PathNodes | Yes |
PlayerMovement | Derived from PathNode and Mover scripts provided as part of KIT107, and then heavily modified by Syrus Turner | This script is used to enable Player character movement, as well as tracking turn-order | Yes |
RaycastUtils | Provided as part of KIT107 | Raycasting Utilities | No |
SceneSwitcher | Provided as part of KIT107; heavily modified by Syrus Turner | Used to cause Scene Transitions on specific triggers | Yes |
ScoreTracker | Created by Syrus Turner | Causes a text field in the GUI to update with the current player score on Unity's update cycle | Yes |
SetAnimatorBooleanOnInput | Provided as part of KIT107 | Triggers a 'ChangeState' method on key press | No |
SetAnimatorBooleanOnTriggerStay | Provided as part of KIT107 | Allows for changing a boolean on another animator | No |
ShowOnlyAttribute | Provided as part of KIT107 | Sets up the 'PropertyAttribute' class type | No |
ShowOnlyDrawer | Provided as part of KIT107 | Allows for showing a readonly property in the inspector within Unity | No |
Sprites
All sprites created by Syrus Turner.
Name | Purpose | In Use? |
Buttons | Used as a Sprite Sheet for GUI buttons used for in-game controls | Yes |
Deadman | Used 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 object | Yes |
Health | Used as a Sprite Sheet for the 'Power' gauge in the in-game GUI | Yes |
Map01 | Used as a Sprite Sheet for the Tilemap used for the Map01 scene | Yes |
Map02 | Used as a Sprite Sheet for the Tilemap used for the Map01 scene during development | No |
Panel - blank | Used as the backing for the in-game GUI buttons | Yes |
static | Used as a Sprite Sheet for the Animations used for the PlayerTarget game object | Yes |
Target | Used as a stand-in for the 'Static' character sprites during development | No |
undeAAd | Used as a Sprite Sheet for the Animations used for the UndeAAd game object | Yes |
Menu undeaad3 | Used as the background for screens that aren't during gameplay | Yes |
Animations
Name | Purpose | In 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 |
GeneratorDeath | Animation for the Generator game object when 'GeneratorHealth' reaches 0, and triggers a Scene Transition to the Game Over scene | Yes |
Health_0 | Animator 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 objects | Yes |
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 Generator | Yes |
Fonts
All fonts sourced from Chequered.Ink
Name | Purpose |
Coder's Crux | Used for the in-game UI labels |
Lady Radical | Used for Menus, Title, Game Over, How To Play and Credits screens |
Static VS UndeAAd
Status | Prototype |
Author | Syrus Turner |
More posts
- Postmortem; Thoughts on what worked, what failed, and what to keep in mindOct 12, 2020
- Game TestingOct 05, 2020
- UI and Polish; In which labels are used to enhance understandingOct 04, 2020
- Presentation and Graphics; An appreciation for sprite sheetsOct 01, 2020
- Enemy Interactions; Or How I Learned To Stop Worrying And Love The A*StarSep 20, 2020
- Level BlockingSep 13, 2020
- Player MovementAug 30, 2020
- Game ConceptAug 28, 2020
Leave a comment
Log in with itch.io to leave a comment.