Documentation + User Guide


This is the final DevLog for Isolated for the KIT109 game project. This post will include a user guide and documentation on how the final game compares to the initial concept design, the assets used and how they are implemented and lastly feedback from the week 12 testing session and how it shaped the final build of the game. 


User Guide.

Welcome to Isolated, an action role-playing game (ARPG). The game is based around the style of roguelike games where the player has one life to get the highest score possible, while the game gradually becomes more difficult the longer the player survives. In the current prototype of Isolated the player is assigned with killing skeletons by using a sword and/or a fireball attack. There are currently 20 enemies to kill with a maximum score of 2000. Enemies will damage the player when they get close, if the player is damaged they will regenerate health over time at a slow rate.

Controls:
Sword Attack - Left Click (Performs a swiping sword attack, can damage multiple enemies)
Magic Attack - Right Click (Casts a fireball, longer cooldown than the sword but does more damage)
Aim - Mouse
Movement - WASD
Pause - Escape (Esc)

Main menu screen:

This is the main menu (start game) screen. Clicking on start game will begin loading the game where it takes about 10-15 seconds to load, after which it will start and the playable character is controllable. The music and SFX sliders move but will not control music or sound effects as there are none currently implemented in the game. This was added to have a more complete main menu and instant access to the music and SFX if they were too load for the player to begin with.

In-game screen:

After clicking start game the player will be placed into this scene. In the top left you will find the player health bar, this shows the percentage of health the player has remaining, a full red bar indicates the player is at full health. The player will regenerate health over time, there is no other way to gain health.
The top right contains the players score, score is added when the player kills an enemy.
At the bottom of the screen are the players attacks available, with left and right corresponding to the attacks usable by left and right clicking. Attacks are aimed with the mouse and the crosshairs show the current firing direction.
The enemies have health bars above their heads and it will display their current health, when they enemy reaches zero health it will die (disappear) and the player gain some score for their efforts.
The player can move using the WASD keys and can move in 8 directions using a combination of these keys.

Pause screen:

This is the pause screen accessed by pressing the escape key (esc), as with the main menu the music and SFX sliders are placeholders for future content.
Clicking resume will unpause the game and give control back to the player, just be careful of the enemies!
Clicking main menu will take the player back to the main menu and all progress will be lost.

Game over screen:

The final game screen, that's right game over!
If you're lucky you'll get to see this screen, the players score can be seen in the top right and the options allow the player to try again or go back to the main menu.

This concludes the User Guide for Isolated.


The next section of the DevLog is for documentation and analysis of the making of the game. This includes the additional features added, an assets list with references, a summary of feedback and their implementation and a comparison to the original concept design.


Additional Features.

Art:
- Character art (Player and enemy (skeleton)
- UI art
- Background / Tilemap art
- Title art

User Interface:
- End of game screen/restart game button (Only counting this as 1 additional feature)

Advanced Programming Functionality:
-
Path-finding

These features are in order of how developed they are. Path-finding has been implemented but is still very basic.


Asset List.

Scripts:

- A* Project (AStar)
The A* project has been used for enemy pathfinding, the files can be found here: https://arongranberg.com/astar/docs/
The scrips used include:
- Seeker
- AIPath(2D,3D)
- AIDestinationSetter
- Pathfinder (found on the game object A*)

- GameManager
This script runs this game over screen and allows the user to play again or go to the main menu.

- PauseMenu
This script runs pause menu and allows the user to enter and leave the pause menu with the escape it. 
The Pause Menu and Game Manager scripts were developed alongside tutorials by Brackeys found here and here respectively.

- SceneSwitcher
This script has one function that takes the user from the title scene to playing the game.

- EightWayMovement
This script is an adaption of the EightWayMovement script used in KIT109 tutorials/practicals.

- PlayerHealth
Controls the players health and health regeneration. When the player dies shows game over screen.

- Enemy
Controls the enemy health and attacking speed. Adapted from a YouTube tutorial by Muddy Wolf Games.

- EnemyMovement
Taken from Brackeys A* tutorial, gives the A* path-finding a target.

- ScoreScript
Keeps track of the players score and adds leading zeroes to pad the placement.

- DestroyOnCollision
Adapted from the Tutorial 2 files from KIT109. Allows the fireball to be destroyed on impact and deal damage.

- SwordDamage
Provides a hitbox for the sword, adapted from a YouTube tutorial 'MELEE COMBAT in Unity' by Brackeys.

- PlayerAim
Adapted from a YouTube tutorial by Press Start. Controls the aim of the sword, fireball and show crosshairs. Later adapted to show cooldown when attacks have been used.


Folders:

- Animation
This folder holds the animations for movement of the player and skeleton sprites. Animations were combined into blend trees. Using blend trees and its adaption came from a YouTube tutorial 'Unity Top Down Character Movement and Animation Blend Tree' by CouchFerret.

- Scenes
Isolated has two scenes, Title and Game start. Title is the main menu while Game start hold the game, pause and game over screens.

- Sprites
The sprites folder contains sprites for the player, skeleton, isometric tiles and the weapons used by the player.
The isometric tiles were created by following two pixel art tutorials by AdamCYounis on YouTube. They were Isometric Tile Basics! and Fully Lit Isometric Tiles in Unity! These tiles have been further adapted for my needs and more tiles were created to be used as colliders.

- UI Images
This folder contains images created by me using Aseprite for the user interface. It also contains a file for additional text used in the project for the menu buttons and score. The font is Arcade Class Font by Pizzadude found here on 1001Fonts.


Prefabs:

There are two prefabs for isolated, a fireball and skeleton. The fireball prefab is used when the player right clicks and is destroyed from the scene when it collides.
The skeleton prefab is the only enemy in the game and contains a sprite that is changed by the skeleton animator, a canvas for the health bar, and a Skeleton Hitbox gameobject that contains a capsule collider for interaction with the player and the players attacks.


Game Testing Feedback.

Feedback from the game testing proved useful as it provided me with vital information to how my game was performing and things I could do to improve it. People were happy with how the game was looking in terms of art and as a result I have implemented a User Interface that represents that art style. The Game Testing DevLog can be found here for reference.

I made a list based on feedback of things that I would have liked to implement at the end of that DevLog which was as follows:
- Fireball working so that it explodes when it collides and deals damage to the enemy if it collides with them.

- After this the enemy will need to die (with or without a death animation... time permitting I would like one) and give the player some score based on the health of the enemy that was killed.
- Allow the player to take damage when a skeleton gets near them, time permitting add an attack animation for the skeleton.
- Fix enemy path-finding and rendering, better colliding with walls.
- Add another level with a boss room.
- Make a boss fight
- Add other enemy types (zombie, skeleton mage)

Out of the items on this list, in the last week I have managed to complete parts of 4 of them, they are:
- Fireball deals damage to the enemy if it collides with them.
- Enemies die when on zero health. Gives the player some score based on the health of the enemy that died.
- Player takes damage when enemy is near them.
- Enemy path-finding has gotten better but is till not perfect or to the standard I would like it at.

While I have not been able to complete this list I am very happy with the progress that I have made in week 13. To the things completed I managed to also add a pause menu and a game over menu.

Concept Comparison.

Initial ideas that didn't make it in to the final build:
- Player starts in an abandoned town.
- Multiple enemy types.
- 3 Combat style system (Melee, Magic, Range) only attacking with one at a time.
- Many levels with a boss to defeat after every 5 levels.
- Difficulty growth as player continues.
- Player upgrades (damage/speed/health).

While development of Isolated has been really enjoyable I have found some implementation of ideas to be rather difficult. Some ideas have been scraped or modified to different systems, some ideas were just cut due to time constraints.

I really like the idea of the abandoned town but to begin development I began by designing a base dungeon level. With continued development I would like to add a starting level. This would allow the player to practice movement and attacking in a safe zone with no and/or very basic slow enemies such as a zombie or two in the proposed graveyard where the player enters the dungeon for the first level. 

Multiple enemy types have not been developed as the skeleton animation would be the next step for immersion within the game. I would like to add zombies, skeleton mages, skeleton archers and different bosses.

The current combat system uses a two weapon style system with the ability to use melee and magic. I like this system as it uses both left and right click but I think adding a ranged weapon such as the proposed bow would need adaption to the current system. The player could possibly select left and right click weapon options in the starting town before entering the dungeon. So that there are different ways to play the game, making the player want to try something different on their next run.

Currently there is only one level and no boss fights, I have a few boss ideas such as a boss that is stuck in a wall that throws objects around the room that damages and provide obstruction for the player. The second idea is a boss that is in a hole in the middle of the room that gradually glows and releases an attack that can only be blocked by standing behind pillars in the room.

The difficulty of the game doesn't change at the moment as this was proposed to happen as the player completed levels and went deeper and deeper. Which also means that the proposed upgrades upon killing bosses as also not been implemented. I still really like these ideas and would like the further develop the game in the future.


Conclusion.

This project has been a very enjoyable experience and I really enjoyed learning how to further adapt coding solutions to problems with both unity features and things available in C#. While I did get stuck on things at times there are so many resources for developing in Unity and this class has possibly been the start of a very rewarding future hobby.

Thank you for reading the final DevLog and keep posted for future updates!

Files

Build v8.zip Play in browser
May 29, 2021

Leave a comment

Log in with itch.io to leave a comment.