Posted May 26, 2023 by aidan(apjudd)
Final Game:
Slick Shifter Final Review: Overall, the final version of Slick Shifter is very different from that of the initial game concept. The game genre of Racing / Casual Play has remained, however many changes were made to core gameplay mechanics due to technical restraints and how fun the original game concept turned out to be.
Slick Shifter attempts to implement these five additional features:
The key differences from the concept statement are listed below:
Core Mechanic Changes:
Style Changes:
Feedback Summary:
The feedback form was separated into different sections with each relating to a particular aspect of the game. Below is a summary for each section based on the relevant feedback form responses.
Game Stability:
Game stability results were solid overall. No major issues were reported in any section of the game. All audio was reported to play correctly and no bugs were detected during launch or runtime. All menu buttons worked correctly for players.
Small issues that were reported include:
Gameplay Features:
Gameplay features were rated as “easily understandable” overall. No players reported issues in understanding game mechanics or how to operate the controls. The game was rated as fun to play in general by most testers. No testers were able to break or spoof any gameplay features.
Gameplay issues reported:
User Interface:
All players reported the UI elements functioned as expected and were easy to use. However, some players noted that the UI was slightly difficult to read in some areas and it was hard to tell when boost was ready. The visual style of the game was found to be appropriate and interesting by all players. Although, players did note that there were consistency issue with graphics that could be improved.
UI Issues:
Enjoyment and Difficulty:
The most divisive feedback section of the survey was the game difficulty. About 30% of players rated the game as very hard, while another 30% rated it as easy, the remainder of players rated it in the middle at moderate difficulty. This was most likely due to some players finding the ‘moving bridge’ obstacle very difficult and needing to repeat the level over and over again, while others managed to get over the obstacle with relative ease. Despite the difficulty 85% of players though the game was fun overall. To even the spread of gameplay rating the bridge section was be made slightly easier by slowing down its movement and increasing surface friction, so the player does not fall off so easily.
Personal Observations:
After a series of test runs there were a few areas I felt needed tweaking for the final release of the game. Firstly, the level seemed too short, this would have been acceptable if there were multiple levels in the game but as only one was ready for the final release, I decided to extend its length. The extension was placed at the end of the level and adds approximately 25 seconds of playtime. The extension is not difficult to complete and the player can not easily fail the section, although it does require practice to complete it in a speedy manner. I made the extension hard to fail so that player would not have to constantly restart the level over and over after getting very close to the end, as players understandably did not like this style during play testing.
Asset List:
Custom Assets:
Scripts: All scripts used in this project are completely custom. The functionality of each is listed below:
Background Det: Loads the endgame image present when player finishes the level.
Boostcontroller: Controls the boost mechanic logic in game. Including physics elements and graphical elements such as trail rendering.
CameraControllerBasic: Controls simple camera tracking of player vehicle.
CountdownScript: Controls intro countdown logic and level completion timing.
DisplayHighScore: Reads saved score data and finds the three best scores for completing the level and displays them in the PODIUM section.
DoNotDestroy: Prevents background music audio source from being destroy on scene change.
EngineNoise: Controls the audio source that is playing the car engine sounds.
HighScoreManager: Saves and updates the high score for the game. Also controls the end game stats that are displayed.
Loop_on and Loop_Script: These two scripts work in tandem to control physics of the in-game loop obstacle. i.e. They handle logic for turning the sprite shape colliders on and off.
MenuControl: Controls the loading/switching of different scenes.
MusicController: Saves and updates in game music and engine volumes. Used in the settings menu to read slider values.
Parralax: Controls the parallax effect for the in-game background.
Pause: Controls the in-game pause menu. Includes functions such as hiding game UI, pausing time and muting sound effects.
PlatformController: Controls the movement of the in-game platform obstacle.
SaveHighScore: Saves the player’s name and score when the level is completed.
VehicleController: Handles all vehicle movement and player control input reading. Also controls game completion or failure detection and the modulation of the engine sound.
CameraZoomOut and EndZoom: Each of the scripts controls a zoom out animation of the camera during certain game obstacles.
StaticData: This script holds the variables used to save persistent data in game. This includes scores and user names as well as some audio control variables.
Graphics: The art and graphics in the game are a mix of custom pieces and downloaded art. All custom sprites/images/graphics were created in Microsoft Paint and Adobe Photoshop are listed below:
Boost Logo: The boost logo is a small pixel art style sprite. It is used in the main gameplay UI to inform the player when the boost ability can be used.
Podium: The Podium sprite is used to display high scores in the PODIUM menu.
Platform: The Platform sprite is part of the environmental obstacle for the player to drive across. It is featured in game midway through the level.
Signpost: The signpost is a passive gameplay sprite. It is featured in the level to warn players of upcoming obstacles.
Finish Flag: The finish flag is another passive gameplay element. It is featured at the end of the level to inform the player where the finish mark is.
Physics Materials:
Map: The map physics material is the default applied to the majority of the sprite shapes (ground) throughout the level. It is used to tune the grip of the car as it drives across the road surface.
Wheels: The wheels material sets the friction of the car wheels.
Platform: Sets the friction of the moving platform obstacle. This platform is given its own material with high friction to make the obstacle easier to traverse.
Car_Body: Sets the friction of the vehicle body. This controls how much the car slides along the ground when not on its wheels.
Sprite Shape Profiles:
Ground_Texture: This sprite shape profile controls the tiled brick texture and grey road surface applied to most of the level.
Ground_Texture Oil: This sprite shape profile is a variation of the default brick pattern. It is used in the oil slick section of the level.
Scenes:
Title_Page: This scene is the main menu for the game. It is loaded when the game first opens.
IndutrialPlayground: This is the main gameplay scene. It is loaded when the Start button is pressed. It contains elements such as player, environment and UI game objects.
Settings: This is the settings scene. It is loaded when the player clicks the settings button and allows the player to control audio settings.
HighScore: This is the Podium scene. It is loaded when the player selects the podium button. It displays the three best level completion times.
End_Of_Game_Overlay: This scene is loaded when the player completes the level. It displays players stats and allows the player to restart the level or return to the menu.
HighScoreOverlay: This scene is also loaded when a player completes a level. It allows the player to input a username to save their score.
PauseMenu: This is the pause scene for the game. This scene is loaded when the player presses the escape key while in the main game and allows the player to resume the game or return to the main menu.
Downloaded Assets:
Sound and Music: All music and sound effects used in-game are downloaded from external sources. Sources can be found at the end of this document.
Boost [2]
Boost sound effect that is played when the player presses space bar.
Drive [3]
Background music track.
CarSound [4]
The engine sounds that play when the vehicle is driving.
Graphics: The art and graphics in the game are a mix of custom pieces and downloaded art. All download pieces are listed below. Sources can be found at the end of this document.
Parallax Images [5]
These four images are used to create the parallax background of the game.
Carbody and CarWheels [6]
These two sprites are used to create the main player vehicle.
Bricksx64 [7]
Tileable brick sprite used to texture the sprite shapes that make up the environment.
USER GUIDE:
Please note, the user guide is found in the separate “User Guide” development log.
References:
[1] “CSR Racing 2 – NaturalMotion,” www.naturalmotion.com. https://www.naturalmotion.com/game/csr-racing-2/
[2] “RocketMp3,” www.pixabay.com.
https://pixabay.com/sound-effects/rocketmp3-94928/
[3] Alex-Productions, “Download Free copyright music,” Chosic. https://www.chosic.com/download-audio/53218/ (accessed May 26, 2023).
[4] “Engine,” www.pixabay.com.
https://pixabay.com/sound-effects/engine-47745/
[5] ansimuz, “Industrial Parallax Background,” OpenGameArt.org, Feb. 24, 2015. https://opengameart.org/content/industrial-parallax-background (accessed May 04, 2023).
[6] overcrafted, “FREE 2D Vehicle Assets by overcrafted,” itch.io. https://overcrafted.itch.io/free-paid-vehicle-car-sprites-
[7] alpha_rats, “Bricks tiled texture 64x64,” OpenGameArt.org, Jul. 06, 2015. https://opengameart.org/content/bricks-tiled-texture-64x64 (accessed Apr. 23, 2023).