Level 1 - UQdeco2800/2021-studio-6 GitHub Wiki
Description
Level 1 is the start of the game. In it, the player is placed spawned into a city that is beginning to fall to ruin, being overrun by monsters.
The player is required to traverse the level, from the start of the level (left), to the safehouse parallel to the road positioned at the entrance of the forest (right).
Design
Since this is the first level of the game, it should be simple and act as a tutorial for the game. Therefore, the level consists of a single road with no obstacles for the player to navigate. This allows the player to freely battle with enemies without having to deal with the environment as well.
The map contains many assets which the player can interact with including coins and ammunition. Players can use ammunition to help battle the enemies, especially since the player starts with a limited supply of ammunition. The player is able to pick up ammunition entities which are spawned randomly in the map. Coins increase the overall coin count for the player, which can be used in the safehouse to purchase supplies, this will be implemented in some future sprint.
The city itself shows signs of disrepair, such as the fact that the road has started cracking in places. This reflects the story, where people who've previously resided have begun to abandon the city for "safer pastures".
The level ends with the player leaving the city and stopping to rest in a safehouse near a forest. By ending the level here, the player can infer that the next level will take place within some forest itself. The player can also notice that each following level will be played from left-to-right in order to complete each level, this is true for each additional level.
Class diagram
Sequence diagram
Below is a sequence diagram showing how one object (in this case, a sign) is spawned into a level. Every object in the level is created via a similar process, although different methods might be used depending on the object and its type (i.e. createBuilding in ObstacleFactory for a building, createCoinPickup in ItemFactory for a coin, etc.)
Below is a sequence diagram showing how multiple objects is spawned into a level at random positions. Note that sub(2,6) was applied onto getMapBounds to restrict the possible locations objects can be spawned into, and that RandomUtils was used to randomly generate a coordinate within the acceptable bounds.
Assets
- Tile representing the asphalt road - Inspiration for the texture, came from real life asphalt road.
Reason for texture: What is best to represent a city but its busy roads and cars? Even in the postapocalyptic days, asphalt road can still be seen in the streets of every abandoned city, crawling with vicious monsters and very few survivors of the unknown darkness.
- Cracked road tile - draft design for road crack tile
Reason: Since the city got abandoned, no one was left to repair the road, as time passes by, cracks began to form as an indication that the city is in disrepair and starting to fall apart.
Final Design: before the final design of the tile was set, a previous design was made, the reason why this was not used as the final design is that when the tile was shown to the users, people had mistaken it to be cobwebs instead of cracks, hence a redesign of the crack was needed, the final design is similar to the original design, except now the crack drawn in dark grey to better represent a crack.
- White tile used as a lane marker.
- Sidewalk tile on the side of the road.
- Representation of a curb connecting the asphalt road to the sidewalk.
- Building design type 2.
- Building design type 3.
- Sign notifying the player that they have left the city.
- Sign notifying the player what the next level will be.
- Street lamp of level 1 (clean and vined) - inspiration for the street lamp
Reason: It was agreed upon discussion that a light element is required for each level, the light element for this city-themed level is a street lamp. Two variations of the street lamps were drawn one with and one without vines. The addition of vines is to express the idea of post apocalypse, the entire theme of the game.
Inspiration: the first one is used as a reference of how to draw a street lamp in pixelated form and the second image is used as a guide of how a street lamp should look.
- dead tree growing out of concrete and asphalt - inspiration for the dead tree - draft design
Reason: To further emphasize the idea of disrepair city, dead trees were added into the game, as city has not being under maintenance for a long time, trees have sprouted from the cracks on the ground and died from lack of nutrients and water.
Inspiration: The following image is the reference for this asset, it is used as both a reference and a guide of how a pixelated dead tree should be drawn.
Final design: Before reaching the final design, a previous version of the dead tree was drawn, the tree was redrawn due to the fact that it was not draw in top down view like the rest of the game, if the original version of the tree were to be used, the point of view of the game would not be consistent, hence a redesign is needed.
- road barrier obstacle for safe area - inspiration for road barrier
Reason: As it was previously discussed, a safe area should be implemented into the game for npc and tutorial purposes, to stop monsters from breaking into the safe area, obstacles have been implemented into the entrance of the safe area to stop the monsters
Inspiration: the image is used as a reference of how a barb wire fence should look when pixelated, then a top down view was designed based on the reference
Difficulty balancing
Previously, enemies were randomly spawned into the level, which made the level too difficult for players unless they ignore all the enemies and rush for the safehouse.
Since level 1 is supposed to be like a tutorial, it should spawn enemies in a manner that allows for new players to learn how to fight each enemy without being overwhelmed.
Therefore, throughout level 1, when each enemy is first introduced, they will always be alone, letting the player see the enemy and learn its patterns without having other enemies butt in.
However, players should also learn how to handle enemies in groups, as the enemies will not be alone in later levels.
Therefore, level 1 also features a few small groups of enemies to ease the player into the concept, and to allow them to learn how to fight groups of enemies as well.
In the end, this is the set of enemy spawns for level 1 that was decided upon based on the above considerations:
-
A single weak melee enemy, to introduce the player to one of the most common enemies.
-
A single weak ranged enemy, to teach the player how to deal with ranged enemies.
-
A group of one melee + 2 ranged enemies, as an introduction to a group of enemies, and also as a way to let the player make use of what they learned from the previous two encounters.
-
A single strong ranged enemy, followed by a spawner that spawns weak melee enemies, to introduce the player to.
-
A group of 1 strong ranged + 1 spawner, as an introduction of a strong group of enemies and as a challenge to the player.
-
And finally, a single strong melee enemy, acting as the "boss" and final challenge for level 1.
This set of enemy spawns is not final and may change depending on future user testing.