Saturday, November 28, 2020

377 Mobile Development - Blog Post 3

Team Titan Sprint 6 - 7

This progress blog post about Titanic Arena's final two sprints, Sprint 6 and 7. Both of these sprints were focused on making and implementing art assets. Other than that, we kept making improvements to our game based on player feedback in our playtests. We are home stretch in our development and the goal for Sprint 7, our current sprint, is to polish and finalize our game. 

A Closer Look at Each Sprint: 

Sprint 6

Cards Assigned to Me: 12
  1. As a team, we want the APK to be ready by the playtest (1)
  2. As a player, I would like to be able to unlock dash (1)
  3. As a player, I want to be able to unlock the spearman character in the upgrade shop (1)
  4. As a player, I would like to know how to defeat each boss (1)
  5. As a player, I want to be able to unlock the rogue character in the upgrade shop (1)
  6. As a player, I want to be able to unlock the flailer character in the upgrade shop (1)
  7. As a player, I would like to see what each character is visually in the shop (.5)
  8. As a player, I want to know what the second shop does and is for via a panel or through controls (.5)
  9. As a developer, I would like to see the blood of enemies fly out when they are hit via particle effect or UI element (1)
  10. As a developer, I would like to see the blood of player characters fly out when they are hit via particle effect or UI element (1)
  11. As a player, I would like to visually see my health go up (1)
  12. As a player, I would like a dynamic game over screen so I am enticed to play again. (1)
Incompleted Cards: 1
  1. As a player, I would like a dynamic game over screen so I am enticed to play again. (1)
Half of the cards I was assigned to this sprint were art assets while the other half were cards about our final feature. This feature was decided by us as a team as a substitute for the cards about saving the game (after quitting the application) and creating individual player stats for each class because I couldn't figure out how to implement a proper save feature in the game and we weren't sure how to tackle the individual player stats feature. Instead, a character shop and unlocking feature would incite player replayability and add more incentive to use the shop other than to just buff the two upgrades available in the shop. The art assets I finished for this sprint were particle effects that give feedback for the player to know when they have taken damage or dealt damage to the enemies. I also added UI elements for the boss fights since each boss is unique and has different strategies or methods to defeat them. I also added a UI to the second shop or the character shop so the players know what the shop purchases do exactly. 

Second shop for unlocking classes or characters

Boss infobox 


Sprint 7

Cards Assigned to Me: 12
  1. As a Player, I would like to be able to choose to play an endless mode. (3)
  2. As a team, we want our game to be ready to be published in the Google Play Store (1)
  3. As a player, I would like a dynamic game over screen so I am enticed to play again. (1) [From Sprint 6]
  4. As a player, I want the control page to be clear and concise. There might need to be multiple pages for this to work. (1) [Feedback]
  5. As a Player, I would like a dynamic background for each of the levels (1)
  6. As a player, I want a feature graphic for the game that makes me want to download the said game (1)
  7. As a player, I want a dynamic poster for the game that makes me want to download the game (1)
  8. As a player, I would like to know when I can select a character (1)
  9. As a player, I want an enticing icon for the game that makes me want to download said game (1)
  10. As a player, I want the control page to work flawlessly and is visually helpful. (.5)
  11. As a player, I would like a moment of pause before the boss spawns so I can read the textbox (1)
  12. As a player, I want the rotation of the game to be locked (.5)
Completed Cards: 
  1. As a Player, I would like to be able to choose to play an endless mode. (3)
  2. As a player, I would like a dynamic game over screen so I am enticed to play again. (1) [From Sprint 6]
Our current and final sprint's focus is purely art assets and getting elements for our Google Play page ready. This included getting screenshots of the game, making graphics and posters, and even a gameplay video or trailer. More internally, I need to make sure our control page is as concise and coherent as possible since it's been our game's major flaw for the past few sprints as many players could not get through the character select screen. I need to also work on the feedback for our game's UI elements that were suggested by playtesters. So far I finished our game's dynamic game over screen, making it more appealing and graphic and as a team, we completed one of our epics which was to make the game "endless", this meant our game does not have a game over, similar to Temple Run, a famous mobile endless runner. 

Game-Over screen


Total Card Count (as of now):

Cards Assigned to Me: 56
Completed Cards: 46
Cards Left: 10

Total Point Count (as of now):

Points Assigned to Me: 60.5
Completed Points: 51.5
Points in Progress: 9

Since we are very close to the end of development, I can really see the total number of cards I've done and the hours I've worked. I try to be accurate when assigning points, there are very few 3 point cards and no 7-point cards at all. This is due to most larger cards being split up into more cards and often I used .5 for UI elements that changeable through the inspector or settings and do not require adding assets such as scripts or game objects. Seeing an overall total of the work I've done is very cool, it seems about accurate to have done roughly 2 months' worth of development work for our game over this semester. I'm thankful for my team to be great at their roles and being able to smoothly develop our game with only a few bumps here and there. I think our game is amazing and has many great features to offer. Thank you Adam for being a superb programmer and cheers to Austin for implementing the levels and helping with everything else. Great work team! 

Issues/Problems Encountered 

Problem #1: Save Feature and Individual Player Stats 
One of the problems I encountered during multiple sprints was making a save feature for our game. So far we have an in-game save feature that carries the upgrades and shop purchases over the screens but when the player quits the game, the game does not save. Saving a game is pretty difficult and I've spent multiple sprints tackling it. I've tried multiple tutorials online for saving games but none of them have bear fruit. I assume this is due to the save and serializing not being able to save the scripts with player data since those scripts are using Player Prefs.

Attempts at serializing and saving the game

Solution #1: New Feature Substitution 
 Regardless, since this feature is taking too long and we've reached our last two sprints we decided that we'll substitute the save game on quit feature with a new feature. This feature will incite the game's replayability and encourage the player to use the shop more. Originally, the player can choose a number of classes and characters to play as but with this new feature, they only start with the warrior class and need to unlock/purchase the remaining character classes on the second page of the shop. 

Scripting for locking and unlocking characters/classes


Wednesday, November 18, 2020

Parasitic Sprint 6 Blog Post

Parasitic Level Design Post#6

I prioritized finalizing the level I was working on Sprint 6. So most of the cards assigned to me this sprint are the final pieces I need to add to my level as well as the rollover playtesting cards. Since I was almost done with all my cards near the end of the sprint I was also assigned to look for audio. The cards assigned to me are: 
  • "As a level designer, I need to hook up the unique win condition in each of my levels. (1)"
  • "As a level designer, I need to play through my level to test for discrepancies or errors. (1)" [Sprint 4]
  • "As a level designer, I need to populate the Dead Forest level with current assets to get the tone of the level established. (1)"
  • "As a level designer, I need to set up the lighting in the level to match the theme. (1)"
  • "As a level designer, I need to playtest my level to check for discrepancies so the level flows smoothly. (1)" [Sprint 5]
  • "As a player, I want to hear a swoosh and glass shatter as I throw a health potion to one of my teammates as an archer. (1) (Ability 2) (3 Different Clips)"
  • "As a player, I want to hear flames as my bow lights up to show my upgraded attack. (1) (Ability 1) (3 Different Clips)"
  • "As a player, I want to hear the swift pullback and let go of a bow and arrow when I attack as the archer. (1) (Attack) (3 Different Clips)"
The two cards I worked on coincidently during the beginning of this Sprint were populating my level and added mood-fitting lighting to the level. Populating my level took a while since I wanted to make sure the trees were not too big compared to the player models which would break immersion and I also had to make sure the branches weren't too close to each other so the players can actually see what was going on on the ground level. I also used the small leaf assets to make piles of levels that cover the floor of the level. There were three types of leaf piles. The yellow Ginko leaves would do a better job at drawing the player's attention and I used them to hint at secret locations or branching pathways that might or might not reward the player. 

Ginko Leaf Piles (Treasure/Secret Area Indicators)

The next piles are maple leaves that were used to cover empty space between trees, they indicate areas that players could not move towards/enter. 

Maple Leaf Piles (No Entry/Off-Limit Indicators)

The last and biggest piles are normal, plain leaves. These are not very visible but they path the way for the player. The reason I used this was to hint where the paths are in the level but since they are not obviously visible, the player would need to look closer and pay attention to find this "cheat". 

Normal Leaf Pile (Outline of paths)

These details took pretty long since I also had to move other assets around them. The whole scene probably has a total tri count of 10+M considering one camera frame is 1-2M tris. I was a bit scared of this since I wasn't sure if having this many assets would lag the level or not. Luckily Alex said that as long as the frames didn't drop below 60 or when playtesting things don't lag, it would be okay. While the assets took a while, I'm really happy with how the level turned out. There's a lot of details in the level that probably isn't even noticeable or many players would just brush off but I'd be very happy if someone were to notice the leaves placed gently on the rocks and the crates in the level. 

Tris of the starting area in the level

I also tweaked the lighting for this level. My first "draft" was a grey-blue that seemed like a bright evening or a foggy sunrise for the level. 


But it was a bit too bright for a "dead forest" level most likely set in the evening or late at night. So I went back and changed the key light intensity from 1 to .3 as advised. The dark lighting does really give a scary and unsettling vibe to the level since the player would feel cramped and lost. 


After finishing these cards, I did playtesting for the level to make sure the assets do not block the player or hinder the flow of the level. Since this was before adding the level's objectives/win-conditions, the level was pretty difficult. Since this is Level 4, more enemies were of a more advanced and higher tier, meaning they do more damage and had more HP. Players also took a bit longer to level up and get points to unlock abilities. It would take a couple of plays to defeat all the 45 total enemies in the level and win. The player characters had a better chance of survival if they stayed together since the level was more maze-like. Unlike my first level with plenty of open space, if the players split up in this level, it would be difficult to regroup. 

After making sure the player can actually win the level and that the flow and difficulty felt smooth, I added the win-condition to the level. For my level, I made the win-condition for the player was to defeat the boss at the end of the maze, the brood enemy. This was really easy thanks to our amazing programmers, Chase explained it to the level designers in a quick and easy-to-understand way as well. I'm really grateful that we have an amazing team. 

Win-condition/Objective feature added

At this time, my only card left was to playtest so I asked the leads to give me more cards to work on. Dylan asked me to do some of the audio, specifically the sound effects for the Archer abilities. I finished up a few more playtests which made me feel that my level was at a great level of flow and difficulty after some tweaks. I'm currently looking for audio clips that best fit the Archer's abilities. 

So the cards that will roll over from this sprint are: 
  • "As a player, I want to hear a swoosh and glass shatter as I throw a health potion to one of my teammates as an archer. (1) (Ability 2) (3 Different Clips)"
  • "As a player, I want to hear flames as my bow lights up to show my upgraded attack. (1) (Ability 1) (3 Different Clips)"
  • "As a player, I want to hear the swift pullback and let go of a bow and arrow when I attack as the archer. (1) (Attack) (3 Different Clips)"
We have almost reached the finish line! The next sprint is our seventh and last sprint. I'm amazed at how awesome our game has become and at all the people who worked very hard on it. I can't wait to see how it will be finalized. So until then!

Wednesday, November 4, 2020

Parasitic Sprint 5 Blog Post

Parasitic Level Design Post#5

My tasks in Sprint 5 focused on fleshing out my second level: "Level 4 - Dead Forest". The cards assigned to me this sprint are mostly rollovers from the last sprint with only a playtest card being newly assigned: 
  • "As a level designer, I need to block out a large Dead Forest level that starts with our heros having to maneuver a maze before finding the exit that leads to an arena for a mini boss battle. (3)"
  • "As a level designer, I need to play through my level to test for discrepancies or errors. (1)" [Sprint 4]
  • "As a level designer, I need to populate the Dead Forest level with current assets to get the tone of the level established. (1)"
  • "As a level designer, I need to create clear boundaries for the player to restrict going off path. (1)"
  • "As a level designer, I need to populate the Dead Forest level with current assets to get the tone of the level established"
  • "As a level designer, I need to playtest my level to check for discrepancies so the level flows smoothly. (1)" [Sprint 5]

For this sprint, I finished the block out for my level. This took a while since I also had to edit each tile to correspond to my annotated map. 

Block Out

Tile Map

Currently, I am populating the level with the newly added assets I requested in the asset list from the last sprint. Some problems I've encountered from this is figuring how to place the trees properly for a "forest" level but spaced far apart so that the player can move and see the other assets (such as enemies, buff tiles, and pickups) in the level. I also went back and removed the colorized trees and mainly used the leaf-less trees so the level corresponds to the theme of a "dead forest" 

After I implemented most of the assets, I realized I needed the terrain as well. So I played with the terrain editor in Unity, moved it to blender, edited it so it's low poly and colorized, and added it back into Unity. Now I can add assets around the terrain as well so the level and the terrain feel more intersected/fused and not just two separate pieces, which helps with immersion. Here are progress pictures of what I have so far:

Reached 271 trees and still need more for the terrain

Terrain

The cards I have left are: 
  • "As a level designer, I need to populate the Dead Forest level with current assets to get the tone of the level established"
  • "As a level designer, I need to create clear boundaries for the player to restrict going off path."
  • "As a level designer, I need to playtest my level to check for discrepancies so the level flows smoothly." [x2]
I'm concurrently working on "As a level designer, I need to populate the Dead Forest level with current assets to get the tone of the level established" and "As a level designer, I need to create clear boundaries for the player to restrict going off path." For the next sprint, I'll be finishing up my forest level and moving on to playtesting it before it gets implemented into the build. Ciao for now.

Sunday, November 1, 2020

377 Mobile Development - Blog Post 2

Team Titan Sprint 4 - 5

This progress blog post about Titanic Arena will not be as long as the previous one since it will only cover two sprints, Sprint 4 and 5. Sprint 4 was already briefly covered in the last blog and we are currently on Sprint 5. But I will near the end cover what will be worked on for the remaining sprints and then some. But back to Sprint 4 and 5, both were fairly large sprints, Sprint 4 especially as we developed most of the game's major and minor features in that period. Sprint 5 is currently about polishing said features and starting the art development process. 

A Closer Look at Each Sprint: 

Sprint 4

Cards Assigned to Me: 12
  1. As a player, I would like basic upgrades that increase my health and speed (3) [From Sprint 3]
  2. As a Player, I would like to earn gold for weapons and upgrades for each hit (1) [From Sprint 3]
  3. As a player, I want the game modes to be improved and balanced based on feedback (1)
  4. As a team, we want the APK to be ready by the playtest (1)
  5. As a designer, I want to improve the UI so the font could be readable on mobile (1)
  6. As a player, I want to be able to upgrade my character after boss waves (1)
  7. As a Player, I would like to have a shop to spend gold on weapons and upgrades. (1)
  8. As a designer, I need a button from the menu that leads the player to the shop (1)
  9. As a designer, I need a button from the shop that the player can tap on that leads them back to the main menu (1)
  10. As a player, I would like the controls to be bigger on-screen so I can use them (1)
  11. As a player, I want the controls and games to work seamlessly on mobile and emulator (1)
  12. As a player, I want to be able to save my game and return to it after I quit the game (3)
Incompleted Cards: 1
  1. As a player, I want to be able to save my game and return to it after I quit the game (3)
Our team got a lot of work done this sprint and for me, this was the most cards I got assigned and finished in a sprint. I'm incredibly proud and in awe of my amazing team and how much we improved in getting done each sprint. In the first two sprints, I was assigned 4 cards, the third sprint and at the beginning of the fourth sprint I was assigned 8 cards but at the end of Sprint 4, I completed 11 cards. Some are cards that had to do with improving the game based on feedback and working on UI. My main project was to work on one of our game's major features, the upgrade system. I'm pretty proud that I got it to work and that the player's stats save throughout the scenes but it's not finished yet. The save and quit aspect of the upgrade system will be worked on in Sprint 5. 

Upgrade Shop Feature


Sprint 5

Cards Assigned to Me: 12
  1. As a developer, I would like to make sure the UI is visible and clear to the player [Feedback] (1)
  2. As a player, I would like the upgrade shop to be obvious so I know where they are. It should be added to the game over screen and more visually appealing on the main menu [Feedback] (1)
  3. As a developer, I need to make sure the joystick does not go off-screen [Feedback] (.5)
  4. As a Player, I want a main menu that draws me in and makes a good impression of the game (1)
  5. As a team, we want the APK to be ready by the playtest (1)
  6. As a player, I would like a dynamic model for the default player character that draws me into the game (1)
  7. As a player, I would like the upgrades to have an impactful difference [Feedback] (1)
  8. As a player, I want my warrior character to have individual stats (.5)
  9. As a player, I want my swinging character to have individual stats (.5)
  10. As a player, I want my rogue character to have individual stats (.5)
  11. As a player, I would like to be able to upgrade my attack (1)
  12. As a player, I want to be able to save my game and return to it after I quit the game (3) [From Sprint 4]
Completed Cards: 
  1. As a developer, I would like to make sure the UI is visible and clear to the player [Feedback] (1)
  2. As a player, I would like the upgrade shop to be obvious so I know where they are. It should be added to the game over screen and more visually appealing on the main menu [Feedback] (1)
  3. As a developer, I need to make sure the joystick does not go off-screen [Feedback] (.5)
Sprint 5's focus will be on working on making art assets, polishing and finalizing our features, and improving the game based on feedback. So far it's been a slow start, none of us are really "artsy" people so we're all trying to figure out how to approach the graphic assets. I've been assigned to finishing up the save and upgrade features which I still need to research more into. I'm not entirely sure if saving and loading a game after quitting works the same on mobile as it does on a computer and I haven't done something like it before as well so it has been a rather tough feature to properly implement. I've gotten some of the UI elements out of the way to get some work done as I try to implement the save feature into our game. We're still in Sprint 5 and have a few days left so hopefully we can get a good size chunk of the work done!

Shop Icon

Total Card Count (as of now):

Cards Assigned to Me: 38
Completed Cards: 29
Cards in Progress: 9

Total Point Count (as of now):

Points Assigned to Me: 24
Completed Points: 33.5
Points in Progress: 9.5

There is a point value now which shows the number of workdays I've been assigned to, the amount I've completed, and the days left in do. I'm a bit amazed at the pretty accurate representation of work I've done, which more or less is equivalent to a month of work. I do feel I might have gotten more done by it's nice to have a numerical visual of how much work I've been doing. Of course, it's not 100% accurate but it feels about right.

Issues/Problems Encountered 

Problem #1: Upgrade Conflicts 
One of the problems I encountered during Sprint 4 was that the upgrades and player stats persisting over scenes worked for my Unity project but not Adam's or Austin's. It was a bit frustrating to work with and it's unsure if that's a Unity Collab problem (which we do have before with some of Adam's work) or my scripting/coding problem. 

Solution #1: Adam adding to code and disabling the Attack upgrade for now
With Adam's help, we got it mostly working again by assigning different values for upgrades and the base stats. The upgrades were nerfed a bit during that process but we'll be looking at improving that in Sprint 5 and with my assigned card, "As a player, I would like the upgrades to have an impactful difference [Feedback] (1)". The attack upgrades had to be disabled through that since it caused things on my other teammate's end to not work properly. Somehow the attacks worked on my end but Adam and Austin could not attack due to the attack value being reset to 0 and because the attack started at 0, they couldn't earn gold to upgrade the attack. This upgrade will hopefully be added back in when we improve the upgrades overall.