Monday, August 24, 2020

377 Mobile Development - Blog Post 1

Team Titan Sprint 1 - 4

Our development in the mobile game Titanic Arena has now reached near the end of Sprint 3. Titanic Arena is an action strategy game that requires the player to moving their characters around to auto-attack but they also have to avoid getting hit by enemies in an obstacle-filled arena. The player faces off waves of enemies and a Titan boss at the end of each wave. 

Team Titans is a small team composed of the lead producer, the main programmer, and our level designer. We used the skills and experience we gained in 370 Video Game Development to work around a Trello Board, collaborate in Unity's Collab, and follow the Agile Development process throughout our development pipeline. However, since this is a mobile game there are some differences from our time in 370. The major change being building for mobile, specifically an Android APK. This meant we had to research how to program and implement touch-input/mobile controls. We would also need to playtest this on a mobile phone which takes a few more steps than just pressing play in Unity itself. This results in a rather rough start into development but after a couple of sprints, especially Sprint 3 we have found our bearings and will be more effective moving forward. 

Cards assigned to me

A Closer Look at Each Sprint: 

Sprint 1

Cards Assigned to Me: 4 
  1. As a Player, I would like to have assets available to play the game's paper prototype
  2. As a Developer, I'd like to get a head start on what we'll need for Sprint 2
  3. As a Team, we would like a collaborative space (on Unity) where we can work on the electronic build together
  4. As a Player, I would like a rule sheet to know how to initiate and play the game
Completed Cards: 4

Sprint 1 was all about developing our physical prototype to prove our concept and feature. For this sprint, my main tasks were to help develop the rule sheet, compile the physical prototype together, and build our backlog. We also started our Unity Collab for this sprint to make sure we'll get a head start on the next sprint. 

Sprint 1 Completed Cards

Sprint 2

Cards Assigned to Me: 4 
  1. As a Player, I would like to battle against waves of enemies 
  2. As a Player, I would like the main menu shown at the start of the game and to go back to from time to time
  3. As a developer, I want the player to be able to battle against a variety of enemies 
  4. As a team, we should research how to implement the APK and mobile features into our game
Completed Cards: 2
  1. As a Player, I would like to battle against waves of enemies 
  2. As a Player, I would like the main menu shown at the start of the game and to go back to from time to time
Incompleted Cards: 2
  1. As a developer, I want the player to be able to battle against a variety of enemies 
  2. As a team, we should research how to implement the APK and mobile features into our game
In Sprint 2, we started adding the basic essential features in our Unity project. My tasks overall are to help make things other than the level and work on certain scripts that use the main scripts that Adam worked on. Specifically, I worked on a wave spawner script and game object and the main menu that shows up at the start of the game and leads the player to the level. I also worked with Adam to create various types of enemies that would show up in the waves and as a team, we needed to research building an APK and mobile controls. These two tasks however were not finished in this sprint. 

Sprint 2 Completed Cards

Sprint 3

Cards Assigned to Me: 8
  1. As a team, we should have an APK electronic prototype ready before the playtest
  2. As a team, we need to playtest our game before the APK playtest to make sure our game works as intended
  3. As a designer, I need a button in the main menu that leads the player to the game
  4. As a Player, I would like to be able to dodge attacks
  5. As a designer, I need to test whether the base controls work on mobile
  6. As a player, I want a pause menu that can freeze the game and/or move me to the main menu
  7. As a player, I need options in the pause menu that can move me to the main menu, restart the level, and quit the game.
  8. As a player, I would like basic upgrades that increase my health and speed
Completed Cards: 7
  1. As a developer, I want the player to be able to battle against a variety of enemies (Sprint 2)
  2. As a team, we should research how to implement the APK and mobile features into our game (Sprint 2)
  3. As a team, we should have an APK electronic prototype ready before the playtest
  4. As a team, we need to playtest our game before the APK playtest to make sure our game works as intended
  5. As a designer, I need a button in the main menu that leads the player to the game
  6. As a Player, I would like to be able to dodge attacks
  7. As a designer, I need to test whether the base controls work on mobile
  8. As a player, I want a pause menu that can freeze the game and/or move me to the main menu
  9. As a player, I need options in the pause menu that can move me to the main menu, restart the level, and quit the game.
The recent sprint we finished is our third one. The main goal for this sprint was to have a working electronic APK build ready for the first electronic playtest. We completed all our lingering cards from Sprint 2 within the first week and met our goal of having a working APK ready just in time for the playtest. My main tasks for this sprint was largely playtesting and revising scripts as well as finishing cards from the previous sprint. 

Sprint 3 Completed Cards

Sprint 4

Cards Assigned to Me: 8
  1. As a Player, I would like to earn gold for weapons and upgrades for each kill
  2. As a team, we want the APK to be ready by the playtest
  3. As a player, I want the controls and games to work seamlessly on mobile and emulator
  4. As a player, I would like the controls to be bigger on-screen so I can use them
  5. As a Player, I would like to have a shop to spend gold on weapons and upgrades.
  6. As a designer, I need a menu that leads the player to the shop
  7. As a designer, I need a button from the shop that the player can tap on that leads them back to the main menu
  8. As a player, I want the game modes to be improved and balanced based on feedback
Card in progress: 1
  1. As a player, I would like basic upgrades that increase my health and speed
The current sprint we are on is our fourth one. For this sprint, I will be working on the shop/upgrade feature as well as improving the game based on the feedback we received from the previous playtest. 

Total Card Count (as of now):

Cards Assigned to Me: 24
Completed Cards: 15
Cards in Progress: 9

Issues/Problems Encountered 

Problem #1: No Android phone to use for testing 
One of the issues we had to deal with at the end of Sprint 2 and at the beginning of Sprint 3 was the lack of an Android device to test on. The only group member that has an Android phone is our level designer, Austin. However, his phone model was older and the lack of a USB cable meant that he couldn't use his phone to test the mobile controls. 

Solution #1: Using iOS instead
The solution I came up with for this problem is to export the Unity project and move it to a new blank project with iOS build settings. This way I could use my iPhone to test the mobile controls. The mobile touch controls worked the same way for both phones and Unity made it easy for UI elements since buttons automatically recognize touch-inputs. 


Problem #2: Building and Testing APK 
Another issue that was quite damning was building and testing an APK. This is a new thing for all of us and we had a lot of different research on how to properly build an APK. However, the bigger problem was testing the APK build. I could test mobile controls on an iPhone but testing whether or not an APK works is a whole different story. This resulted in a need for an emulator. The first one I tried was the Andyroid emulator. However, nothing worked when I dragged the APK to the emulator and the emulator itself was a clone of the usual Android phone thus there weren't any clear options to add an APK into the program.

Solution #2: Android Studios and Bluestacks 
The next step was to try out Android's debugging and testing tools for APKs in their Android Studio program. This was a very complicated program to use. It takes up a lot of data storage as well which resulted in me needing to redownload the program on another computer because the current one I'm using already had large programs like Unity, Maya, Substance Painter, and Substance Designer. Android's virtual device emulator takes a lengthy amount of time to load and it lags a lot. It takes several tries and restarts of the program to actually install the APK. Later, I tried the Bluestacks emulator and found it to be really effective in testing APKs. Unlike Andy, Bluestacks shows the APK being downloaded and actually installs the APK file when you drag it to the emulator. 

Using Android Studios to test HelloWorld APK

No comments:

Post a Comment