Posted October 13, 2023 by BenjiSt
#forsakencolonylastsurvivors #survivorslike #update #final #devlog
I already knew back when I wrote my concept document that implementing all the things I mentioned might be a little too ambitious (or even unrealistic), however, I still didn't expect to have to drop most of the features I planned to include, even though I spent a lot more time on this project than I originally thought I would. It often took way longer to get small (and big) components working the way I wanted them to than I expected. Therefore, I had to focus on designing the main gameplay elements that were important for the game to be fun to play without spending too much time on "optional" content.
Features of the game concept that made it to the final version of the game:
Features that didn't make it:
Even though a lot of the originally planned content didn't make it into the final game I am still confident to say that the final game turned out pretty good. Focusing more on the key elements and fleshing them out nicely was ultimately the better decision for me than trying to implement all of originally planned features, which would most likely have lead to poorer quality for those.
It was a lot of fun to build this whole game from scratch and I learned a lot along the way; From a better understanding of the Unity engine over creating art assets on my own to improving my skills in object-oriented-programming with C#. Moreover, I think I now have a much more realistic expectation of how long it takes to implement certain features in a game.
There are still a lot of improvements to be made for me but I think I am much better game designer than I was not too long ago; I hope I can find the time to use these acquired skills for new projects in the future.
This section features the content of week 13's devlog about the feedback from week 12's testing session and thereby introduced changes.
The feedback form used for the evaluation was split into several sections; The first section features general question regarding the enjoyment of playing the game, difficulty of the game and intuitiveness of player controls.
With an average level of enjoyment of 8.6 (figure 1) I consider the goal of making the game fun achieved. The difficulty feedback (figure 2) shows a tendency for the game to be a little too easy. Figure 3 confirms that the player controls are good the way they are. Answers to the open ended question at the end of this section (which asked for additional suggestions) mention that the game could be little bit harder in first half of the stage.
The second section on of the feedback form focused on visual/audiovisual assets in the game and how well they blend in. Figure 4 and 5 show the corresponding feedback to each question.
The overall average ratings are 8.2 for graphical elements and 8.0 for music and sound effects which I am very pleased with. All play-testers agreed that the chosen art style for graphical assets as well as the chosen music/sound effects fit the style of the game. A suggestion from one of the testers for improving the sound design was to include more sound effects, especially when the player takes damage. It is hard to notice at times that the player was actually hit by an enemy/enemy projectile.
The third section featured one question regarding bugs in the game; To my relief there were no noticeable bugs at the time of the play-testing (figure 3) :)
The final section of the feedback form featured 3 open ended questions. Those questions and corresponding answers were (not all of the answers are displayed, only some of the most relevant):
All that feedback combined showed to me that the game was already in a very good state at the time of play-testing; However, some improvements were still to be made before I could finally finish the development of Forsaken Colony: Last Survivors and call it a day.
It was very interesting (and a little stressful lol) to see people playing my game for the first time. It seemed to me that most of them already had prior experience with this kind of genre and, therefore, represented the kind of people I would expect in my target audience. This also concluded that gameplay of all of the testers was somewhat similar and mostly in line with what I had expected from people playing my game (note: I didn't explain the game to the play-testers before they started and let them explore it by themselves).
The main benefit, however, was that they all had a fresh and unaltered view on the game in comparison to me. Therefore, they were able to detect missing details/gameplay elements, provide new ideas for improving the overall gameplay and also inspired me to come up with new improvements of my own.
Combined with the feedback I got from the feedback form it became clear to me that there were several major issues in terms of gameplay, which needed adjustment/tinkering before I could release the final version of my game.
New elements/changes to existing elements I decided to introduce for the final version of the game were:
Each subheading in this section represents a subdirectory of the assets-directory in the project. References for content which has not been made by me can be found at the end of the devlog.
This directory features several subdirectories with walking and dying animations in east and west direction for each enemy (+casting for ranged enemies) and the player as well as animations for the damage numbers, experience crystals and several of the UI elements (textboxes, buttons, ...).
This folder only has one element in it which is the post-processing-profile for the title screen.
This folder again has several subfolders:
Different import presets for textures as well as a preset for a button to play audio on click.
The GameOver and GameWon scenes are both loaded additively to the Ingame scene depending on whether the player died or survived the stage. Titlescreen is the titlescreen scene.
The Stats subfolder contains the initial stats assets of enemies, player and attacks. The StatsIncrease subfolder contains various StatsIncrease assets used for the upgrade system. The upgrades subfolder contains PermamentUpgrade assets as well as their according StatsIncrease assets.
The scripts are split into several subfolders which represent the general category they belong to. I'm not going to describe every single script here in depth, just the most important ones.
AttackBaseClass
Abstract class all attacks inherit from.
EightWayMovement
Player movement script from the tutorials with some changes to fit the modified animation blend tree for the player's character.
PlayerBaseClass
Script for all the main functionalities (besides movement) of the player's character.
ProjectileAttack
Inherited class from AttackBaseClass, the player's main attack functionality.
EnemyBaseClass
Abstract class for all enemy types.
EnemyController
Controls the enemy spawning and object pooling for enemies, damage numbers and experience crystals.
MeleeEnemy and RangedEnemy
Inherited class from EnemyBaseClass for the two different enemy types in the game.
AudioFader
Modified version of a script for audio fading I found online [1].
CollisionHandler
Has two dictionaries for collisions with enemies and experience crystals; It's main usage is to avoid a GetComponent call every time a collision occurs in the game.
ProjectileCollisionDetector
Attached to all of the player's projectiles. Releases the attached gameobject to its object pool once the piercing stat is below zero or the attack range of the player is exhausted.
ReleaseObjectsOffScreen
Releases enemies that are to far away from the player to their according object pools.
SoundController
Manages the sounds in the ingame scene.
UpgradeController
Manages upgrades on level up.
XPCrystalInitializer
Changes the animation of the experience crystals depending on their experience value.
Several scripts for managing the permanent upgrades panel in the main menu as well as applying the unlocked upgrades in the ingame scene.
This folder features the two script types Stats and StatsIncrease which all inherit from ScriptableObject. Stats scripts are used for defining the initial stats of the player and enemies, StatsIncrease scripts are used for the upgrade system. Upgrades are applied by adding a StatsIncrease instance to a Stats instance (implemented with operator overloading).
Contains the shader graph and the shader material used for the background of the ingame scene.
Contains the audio mixer for music and sound effects as well as all the audiovisual components used in the game:
Features Sprites used in all scenes of the game, most of them were drawn by me. Sprites in this folder which were not drawn by me are:
These folders contain all the spritesheets used in the game. The player's character as well as some enemies were created with the Universal LPC Spritesheet Generator, the included reference file would can be found at the end of this devlog. I also included a link to generator itself in the references. Spritesheets that were not drawn by me are:
Contains the TextMesh Pro assets as well as the font [25] used for the game.
Tiles for the tilemap background I was originally planning on using. Not used anymore.
In Forsaken Colony: Last Survivors the player spawns in an endless world where he/she has to battle waves of enemies and survive until the end to successfully beat the game. During the stage, the player can collect experience crystals dropped by killed enemies in order to level up and grow stronger. Once the clock finally hits zero all enemies stop spawning and if every single last one of them is dead, the player has finally beaten the game. Figure 11 shows sample gameplay during the middle of the stage.
The player's character is controlled with a simple WASD eight-way-movement and fires attacks automatically into the direction of the mouse cursor. The game can be paused/unpaused at any time by pressing ESC.
The user starts the game in the main menu (figure 12). From there, the player can start the game, quit the game and access the settings screen as well as the permanent upgrades screen.
The settings screen (figure 13) features two sliders for music volume as well as sound effects volume and shows button assignments for the player's character.
The permanent upgrades screen (figure 14) shows different upgrades for the character to permanently increase its strength. They can be bought with the ingame currency "blood" which is gained by killing enemies. Permanent upgrades have one or more level available for purchase, the cost of an upgrade increases with each purchased level.
On clicking "Start Game" in the main menu the player enters the ingame scene (figure 15). In the top left corner one can find a timer ticking down from 10 minutes to zero. In the top center the health bar and health counter as well as experience bar and level counter are located, on the top right a counter for the collected amount of "blood" can be found. The player can pause the game at any time by pressing ESC (pause menu can be seen in figure 16). If the player has collected enough experience for a level up, the panel in figure 17 pops up and one of the upgrades can be chosen. When the timer finally hits zero enemies stop spawning; Once all enemies have been killed the player successfully beat the stage.
Upon beating the stage or dying the according endgame screen pops up (figure 18 and 19); The player can choose to restart the game, exit to the main menu or quit the application.
ChatGPT has not been used for this assignment.
Additional Areas of the assignment 3C rubric that have been addressed are:
[1]
chall3ng3r, Fade Out Audio Script. 2013. Accessed: Oct. 13, 2023. [Online]. Available: https://forum.unity.com/threads/fade-out-audio-source.335031/
[2]
SoundsForYou, Campfire Crackling Sound. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/campfire-crackling-fireplace-sound-119594/
[3]
Pixabay, Lv 6. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/lv-6-65564/
[4]
K. Lightyear, KL Peach Game Over I. 2023. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/kl-peach-game-over-i-132096/
[5]
D. Fesliyan, Retro Platforming. 2019. Accessed: Oct. 13, 2023. [Online]. Available: https://www.fesliyanstudios.com/royalty-free-music/download/retro-platforming/45...
[6]
Pixabay, 8 Bit Blast. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/8-bit-blast-63035/
[7]
SoundReality, Arcade Effects Menu. 2023. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/arcade-effects-menu-145550/
[8]
D. Renda, 8 Bit Menu Slower Version. 2019. Accessed: Oct. 13, 2023. [Online]. Available: https://www.fesliyanstudios.com/royalty-free-music/download/8-bit-menu/287
[9]
Pixabay, Game Start. 2023. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/game-start-6104/
[10]
Pixabay, Night City. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://pixabay.com/sound-effects/night-city-53936/
[11]
NCSFX, 8 Bit Victory Sound Effect. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://www.youtube.com/watch?v=O0XCdOA8Rg4
[12]
virtosmedia, Pixel art illustration of a bonfire and a tent in the forest. Accessed: Oct. 13, 2023. [Online]. Available: https://www.123rf.com/free-photo_199286432_pixel-art-illustration-of-a-bonfire-a...
[13]
F. G. Assets, 48 Free Magic Potions Pixel Art Icons. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://free-game-assets.itch.io/48-free-magic-potions-pixel-art-icons
[14]
F. G. Assets, Free Paladin Pixel Art Skills. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://free-game-assets.itch.io/free-paladin-pixel-art-skill-icons
[15]
F. G. Assets, 48 Free Swordsman Skills Icons Pixel Art. 2023. Accessed: Oct. 13, 2023. [Online]. Available: https://free-game-assets.itch.io/48-free-swordsman-skills-icons-pixel-art
[16]
F. G. Assets, Free Undead Loot Pixel Art. 2022. Accessed: Oct. 13, 2023. [Online]. Available: https://free-game-assets.itch.io/free-undead-loot-pixel-art-icons
[17]
sanderfrenken, Universal LPC Spritesheet Generator. Accessed: Oct. 13, 2023. [Online]. Available: https://sanderfrenken.github.io/Universal-LPC-Spritesheet-Character-Generator/
[18]
R. W. Thompsonj, LPC Goblin. OpenGameArt.org, 2014. Accessed: Oct. 13, 2023. [Online]. Available: https://opengameart.org/content/lpc-goblin
[19]
R. W. Thompsonj, LPC Golem. OpenGameArt.org, 2014. Accessed: Oct. 13, 2023. [Online]. Available: https://opengameart.org/content/lpc-golem
[20]
R. W. Thompsonj, LPC Spider. OpenGameArt.org, 2014. Accessed: Oct. 13, 2023. [Online]. Available: https://opengameart.org/content/lpc-spider
[21]
qubodup, Rotating Crystal Animation (8-Step). OpenGameArt.org, 2012. Accessed: Oct. 13, 2023. [Online]. Available: https://opengameart.org/content/rotating-crystal-animation-8-step
[22]
pennomi; Buch; cemkalyoncu, LPC Pennomi’s UI Elements. OpenGameArt.org, 2012. Accessed: Oct. 13, 2023. [Online]. Available: https://opengameart.org/content/lpc-pennomis-ui-elements
[23]
BDragon1727, Free Effect Bullet Impact Explosion 32x32. 2023. Accessed: Oct. 13, 2023. [Online]. Available: https://bdragon1727.itch.io/free-effect-bullet-impact-explosion-32x32
[24]
L. Zimmerman, LPC Tile Atlas. OpenGameArt.org, 2012. Accessed: Oct. 13, 2023. [Online]. Available: https://opengameart.org/content/lpc-tile-atlas
[25]
G. Productions, 8 Bit Operator Plus 8 Bold Font. Accessed: Oct. 13, 2023. [Online]. Available: https://www.1001freefonts.com/