Documentation and User Guide
Documentation and User Guide
Comparison of original game concept and final game
Sir Axelot was largely inspired by the concept of getting over it, a high risk/reward game where you have to be precise in your judgements and movements. Sir Axelot also aimed to follow a similar art style to Deepest Sword or Jump King, both have a very typical pixel art style that feel consistent throughout and are visually pleasing.
Sir Axelot has deviated minimally from most of the original plans for the game, things such as the plan for the art style, enemies and the basic idea of map structure. The concept statement originally stated "You’re at the base of a tall castle, which is at the base of the sky, which is on top of a tall mountain, and you’re at the bottom of that mountain in your little house with your rusty axe.". The difference from this and the final game is that when you begin the game, you start on a flat grass surface rather than in "your little house". The reason for this is I thought a character with an axe would be out in the forest rather than their house and that's why you begin the game outside. It made the game feel more structured and thought out, at least to myself.
The movement mechanics is another thing that deviated slightly from the original concept. The idea was to move your mouse and your axe would follow (like getting over it) however I soon decided to use the arrow keys (and mouse buttons) to control the axe swing direction. There are two main reasons for this, the first is that I struggled with a few issues making the original idea work and after implementing it felt I enjoyed it more. The second reason is I felt the new controls suited the style more and felt more in touch with traditional pixel art style game controls rather than using the mouse. Movement left and right using A and D has stayed the same from the original idea so that walking can be used to increase the level of precision.
One thing I did want was to create all the art myself, this however did not happen. I created all of the character and enemy animations, sprites etc, however all the tilemap art was taken from artists on OGA. The reason for this was because I ran out of time but still wanted to create some things myself. (sources: https://opengameart.org/users/name-by-another-rose , https://opengameart.org/users/buch)
Every other aspect of the game however is consistent with the original concept.
Feedback from testing and influences
Throughout the semester I was able to receive feedback along the way as Sir Axelot progressed in its development. However nearer to the end, during the testing session when Sir Axelot was very nearly done, I was able to receive great feedback from several people in the class. Overall I received very positive feedback for all the questions I asked, there was also some great advice, tips and recommendations as to what people thought would make Sir Axelot even better.
For things such as the visuals, difficulty progression and overall playability of the game, all the feedback was very much the same in that testers thought the art style was consistent, the difficulty was hard and yet people were able to develop and understand the mechanics and they recognised the games purpose was to be very challenging. They were quite reassuring in the fact that I had achieved what I had planned to do for the difficulty and playability. Similarly, no one found any bugs and said everything felt quite smooth and nothing felt out of place. This meant I was happy with what was currently there and little has been changed in those areas.
Feedback to do with the UI and "polish" of the game was positive, yet people said although what was there was good, it felt lacking. From this element of the feedback I decided to implement a full menu screen with a settings and start option. Some people also mentioned they didn't initially understand the heart UI. This is because the player can only loose hearts in the cave where the enemies are and people were confused to begin with. From this feedback I decided to hide the hearts until the player was inside the cave where the enemies are and re-hide them when they exited as to not cause confusion. This meant that I was able to help fulfil what people thought was missing from Sir Axelot in order to make it as good as it could be in the time we had.
Asset list
Anything without a source was created by myself.
- Animations
- Falling
- This animation is made up of sprites from a sprite sheet I created. This animation is played whenever the player is not touch the ground, there is a collider on Sir Axelot that checks if it is close to the ground using a trigger. On trigger exit sets the animation to falling.
- Idle
- This animation is played whenever the player is standing still. This means if the player is not in the air AND not walking, this animation is active. This was also created from a sprite sheet I created.
- Running
- Running is the third and final animation of Sir Axelot that is played when he is not in the air AND when the player is pressing either A or D. This, similarly to the first two animations, was created by myself from a sprite sheet I created.
- Heart
- The heart animation is slightly different to an actual animation, because this is part of the UI on a canvas, I did not know how or if you can put animations on the canvas. To get around this I used two loops to loop through the heart images and change their sprite to a different one, using a coroutine I then waited between the states in order to make it seem like an animation. The hearts' alpha is also set to 0 by default and uses Mathf.MoveTowards to slowly fade in when the player enters the cave.
- Spider
- The spider animation is another created by myself that is always running on the spider. It is the only animation needed for this enemy as it is always moving towards the player.
- State Controller
- The state controller is what I used to switch Sir Axelot's animation, in this controller I created parameters that allowed for the different animations on Sir Axelot. For example, if falling == false and walking == false, then the current animation must be idle.
- Falling
- Enemy
- Blood
- The blood is a particle system prefab that is instantiated at the spiders position right before it is destroyed. This means that if a player kills a spider this asset is created and played. It looks like lots of little pixels exploding out in a ring really fast. They are also coloured redish blackish.
- Spider
- The spider itself is a prefab that is spawned using the spawner. The reason it is a prefab is so that multiple can be created automatically rather than releasing heaps of pre-existing ones at the same time. The spider also has a script on it that uses nodes and Astar pathfinding to find the shortest route to its target (the player). If the spider touches the player it also damages them.
- Node
- This node is what is used to generate more, on it is a node generator that generates child prefabs of itself, the difference between this node and the ones it generates is that the ones it creates do no have the generator script on it so that they do not create infinite nodes. These nodes are what the spider uses to calculate its path towards the player. (taken from tutorials)
- Spawner
- This spawner spawns spider prefabs at time intervals. (taken and adapted from tutorials)
- Blood
- Light
- This is what was used to make the global and point lights in Sir Axelot work. (taken and adapted from live lectures)
- Physics Materials
- Axe Friction
- Axe friction is the physics material used to set the exact friction on the players axe object.
- Ground Friction
- Ground friction is the physics material used to set the exact friction on all the platform objects.
- Ground friction is the physics material used to set the exact friction on all the platform objects.
- Player Friction
- Player friction is the physics material used to set the exact friction on the player.
- Player friction is the physics material used to set the exact friction on the player.
- Menu Bounce
- Menu bounce is the physics material that sets the bounciness for all the platforms in the menu UI in order to make Sir Bouncealot bounce around.
- Axe Friction
- Scenes
- Menu
- The menu scene is a basic scene that has three main elements. The first two are the start button and the settings button, the start button switches the scene to Sir Axelot and the settings button sets the scene to the settings scene. The third element is Sir bouncealot who bounces around the scene to make the menu slightly less boring.
- Settings
- The settings scene has two buttons, the first is the back button to return to the menu scene and the Lindsay button which toggles lindsay/cheat mode when you click it.
- Sir Axelot
- The scene is the main scene that is active when the player presses start, from this scene it goes back to the menu scene when the player beats the game.
- Menu
- Scripts
- Animation State
- This script sets the parameters for the animation state controller based on a few various things.
- Anim Grounded
- Checks if the player is touching the ground based on the trigger of a collider on the player.
- Grounded
- Checks if the player is touch the ground similarly the the script above except that the collider on the player is larger so that a different animation can be triggered at different places.
- AStar Helper
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Draw Helper
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Mover
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Node Generator
- Script used in making the Astar pathfinding work correctly by generating nodes in the given bounds. (taken from tutorial)
- Script used in making the Astar pathfinding work correctly by generating nodes in the given bounds. (taken from tutorial)
- Path Follower
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Path Node
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- IPath Node
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Script used in making the Astar pathfinding work correctly. (taken from tutorial)
- Axe Control
- This script allows the player to control their axe by clicking either the arrow keys or the left and right mouse button.
- Flip Sprite
- Flips the sprite and collider of Sir Axelot based on his x axis velocity.
- Flip Axe Sprite
- Flips the sprite and collider of Sir Axelot's axe based on whether the player has moved the axe left or right.
- Cam Zoom
- This script sets cinemachine camera priority so you can have a change in camera at different places. (adapted from tutorials)
- End Game
- Fades Sir Axelot's alpha to 0.
- Heart Alpha
- Used to hide the hearts by setting their alpha based on whether they are in a certain area.
- Kill Enemy
- Destroys enemy on collision with player axe.
- Light Control
- Sets the light intensity based on the player location.
- Volume Control
- Sets volume pitch based on the player location.
- Lindsay Proof
- Allows the player to teleport to various locations with a press of number keys from 1 - 9.
- Panel To Black
- Fades an invisible canvas panel to black as part of the end game sequence.
- Player Health
- Used to control the heart UI animation and to teleport the player back to the start if/when they die.
- Player Throw
- Allows player to grab and throw Sir bouncealot in the menu UI. (source: https://gamedevbeginner.com/how-to-move-an-object-with-the-mouse-in-unity-in-2d/ )
- Scene Switcher
- Allows user to switch scene by load different scenes depending on where you are/what you are doing. (taken from tutorial)
- Spawn Enemy
- Instantiates enemy prefabs at a set time interval. (taken from tutorial)
- Start Moving In Random Direction
- Starts Sir bouncealot in a random direction when you load the menu scene. (taken from tutorial)
- Start Random Rotation
- Starts Sir bouncealot in a random rotation when you load the menu scene. (taken from tutorial)
- Starts Sir bouncealot in a random rotation when you load the menu scene. (taken from tutorial)
- Animation State
- Sir Axelot
- Axe Head
- The head on Sir Axelot's axe that breaks off at the beginning of the game when you first use the axe.
- Axe
- The main form of traversal used by the player, this game object is attached to the player via a hinge joint and controlled by the hinge motors that I scripted.
- Sir Axelot
- Sir Axelot is the main character that has the axe attached to it, you can also control his movement back a forth with A and D which uses add force to direct him.
- Axe Head
- Sound
- Main Theme
- Music played in all of the menu and settings scenes. (source: good friend of mine Joshua Lynch)
- Level Theme
- Music played in the Sir Axelot scene. (source: good friend of mine Joshua Lynch)
- Music played in the Sir Axelot scene. (source: good friend of mine Joshua Lynch)
- Main Theme
- Tilemaps
- World
- This tile map is what makes up the whole world. It has a palette that can be drawn onto any of the 5 tilemaps within the world, these different tile maps have different properties ranging from the order in layer to some have colliders and some with colliders as triggers etc. (source: https://opengameart.org/users/buch , OGA artist that created all the platform sprites, https://opengameart.org/users/name-by-another-rose , OGA artist that created the cloud sprites)
- World
- UI
- Start Button
- Loads the Sir Axelot scene when pressed.
- Settings Button
- Loads the settings scene when pressed.
- Back Button
- Loads the menu scene when pressed.
- Lindsay Button
- Sets the lindsay proof boolean to true so that lindsay mode/cheat mode can be used.
- Sir Bouncealot
- A simple replica of the Sir Axelot sprite that bounces around the menu UI to make it more interesting. Also has some interactiveness with the player if they grab and throw him.
- Sir Axelot Title
- Simple title that states the name of the game "Sir Axelot".
- Start Button
User Guide
The aim of Sir Axelot is super simple, get to the top. This might seem like an easy task, but trust me, its not!
To control Sir Axelot you must use either your arrow keys or your left and right mouse button. This will swing his axe backwards and forwards respectively. You can also use keys A and D to make Sir Axelot walk left and right in order to make some more precise adjustments for some of those very precise jumps.
Working your way through the start starts off easy but increases in difficulty fast, if you manage to make it past the grassy hills and mountains, you find yourself at a cave. BEWARE! Everything other than you in the cave is out to kill you, so try to kill them before they get to you. If somehow you beat the cave, you must jump over the walls of the castle and make your way inside where your brand new axe will be waiting for you.
There are a few different screens in Sir Axelot, the first is the menu screen, in this screen you can grab and throw the bouncing Sir Axelot:
From this screen you can go to the settings screen where you can turn on Lindsay/cheat mode or return to the menu:
If you select Lindsay it enables you to teleport around the world, if you select back it will take you to the menu again, from here you can select start to begin the game:
The picture above is the first section of Sir Axelot, after this there is a cave, castle and finally the end (inside the castle):
Upon reaching the inside of the game you will have successfully beaten Sir Axelot!
There are not really any other functions other than the menu, settings and actually playing Sir Axelot. but as a final word here is a tip to help with you movement mechanics:
If you ever cant seem to make the distance on a jump, try hooking your axe over the edge of the platform ;) might save you some time!
Thank you for playing Sir Axelot!!!
Sources
Some scripts: taken from tutorials from KIT109 UTAS
Platform Tileset: https://opengameart.org/users/buch
Cloud Tileset: https://opengameart.org/users/name-by-another-rose
Script for grabbing and throwing Sir Axelot in menu: https://gamedevbeginner.com/how-to-move-an-object-with-the-mouse-in-unity-in-2d/
Files
Sir Axelot
Status | In development |
Author | Leo Headley |
Genre | Platformer |
Tags | 2D |
More posts
- Polish and UIOct 10, 2021
- Game TestingOct 07, 2021
- Presentation / GraphicsOct 03, 2021
- Enemies, Interaction and PuzzlesSep 26, 2021
- Level BlockingSep 19, 2021
- Player MovementSep 12, 2021
- Game ConceptAug 29, 2021
Leave a comment
Log in with itch.io to leave a comment.