CAGD 377: Mobile Game Development

Postmortem

This final sprint is the final stretch of completing this unforgettable chaos combat of developing this mobile game within six months from start to finish. As a level designer, I cannot believe the hardship my group faced in these last moments of a stressful environment. As a group, we conquer multiple failures after failures, but in the final days, we accomplish more than we ever imagined. We hope to add more, but that will be for another day or time when we group again. The only requisition we, as the group, needed was time management and communication because other personal issues interfered with the project from different classes and individuals. 

In development, we had some occasions where everything went in our favor, so we developed this production within our limits. We accomplished any block out from our meetings and gatherings by sitting next to each other and communicating during the process. The patience we had faced if GitHub, Android Studios, Unity, and Google publishing weren't in our favor, but we were, little by little, defeated in time for the final blow. For example, if, for some reason, GitHub or Unity had issues with merges or missing files, we planned to create another method of using Google Share as a backup for any interruptions, which did happen occasionally, especially during the final push. In some other cases, if something would work for the other person's project, we had to update and polish the mechanical functionality before encountering any bugs for a playtest. For example, I had to fix some issues we were experiencing with the player movements being different from any other I had ever seen. The player's movements were just for the y-axis without any horizontal movement, so it impacted with some errors if implemented with the new input system, especially with two joysticks, which we had to convert into one. It also calculates the UI interference of the player's savings with currency value and health. If one worked, the other didn't. We had to make some changes, especially to the shop logic. One of us had the idea to leave a button on view for the player to interact with to help increase health while playing. The only issue we could come up with was the need for more unorganized scripts and the difficulty of doing callbacks if the scripts were either interface, class, objective scribble, or singleton. As well as the variables' values of being a float, int, string, or even boolen. Toward the end, we updated and polished any unwanted errors we encountered during the playtest. We accomplish something by not making the standards of being unfun, entertaining, and exciting for players to experience.

Unfortunately, we did encounter some unwanted events limiting our wants and wishes in the backlogs. We plan to make more levels but encounter a minimal amount from the basic movements and limit the player's interaction. We had to improvise and minimize our efforts on a single level so we could focus on what could be fixed until expanding to another level. We planned to have a narration between the player and NPCs, lore within the game, and add other worlds, but we didn't get the chance due to the lack of resources and time. We also wanted to have a 3D platformer within the cave entrance and have the player existing in the vehicle, which implies adding other UI interface algorithms. All this was created during the first three sprints, but we had to back down from our limitations within six months. We had to limit ourselves due to technology issues for both computers and trying to implement everything from one program to another. Another issue we encountered was the SDK; we had to recheck if it was up to date, and it wasn't; we had to re-install everything in time before publishing it into Google. If it wasn't Unity, it was Google, but it was not pushing the correct version or completing the updated documents. These changes are necessary to playtest our game in time.

In conclusion, I want to be able to do everything we wish to add to the final sprints without any complications or issues we encounter for this mobile game. The only difference I would like to add is unlimited time and a work ethic for this project without interruptions. By the end of the day, this was a fun and exciting project so far. I enjoyed every last minute and would like to work with my team again. Our game runs smoothly on Google Play; if you are interested, search Idel Ores under new, and you can play as much as you desire. Thanks.

Sprint 6

This sprint was bizarre and overwhelming. Managing multiple assignments from various classes was overwhelming not only for me but also with my teammates. We had to make some sacrifices of what is our main priority of tasks or projects or the focus or not. For some other reason, one of my teammates struggled the hardest of all of us. Negative mentality forged into impact by the lack of sleep and motivation. Life is harsh and dreadful, but everything has a positive light beaming through the cracks within the shadows. I did not want to fail a class because playtesters couldn't get the fun out of our game and make it impact our brains to fix it no matter what. As a group, we needed to change the layout and elements to make this awesome game fun and exciting till the end. Meeting after meeting, we needed to change the algorithm and the aesthetic of it; we thought the game needed to be what it was meant to become. Although we were struggling with the game and publishing it into Google Play, everything became a symbol of engagement and a push to make a change. During Kickoff it was only me and a team member, we agreed to talk about what needs to be done for the gameplay core mechanics. We had to finish adding the logic of the shop and sell because it was causing a hassle to find solutions without any bugs and interference. Within the new list, it had saved idle, tutorial, and any fixes before the final publishing. The consequence alters the effect by making us motivated for the chance to change everything for the better. 

In this sprint, I completed 15 points, which I'm surprised by the amount of work I had done due to the previous lack of effort. I started by implementing the saving and loading data from the player's gameplay. I managed to imply the value of the ores and the money earned from the player by having it saved in a file but making it encrypted so no one has a choice to change any data for future gameplay. Unfortunately, for this beta playtest, the saving data wasn't based on the lack of script making in the build and hoping it would work when applied to different scenes and allowing the player to play the game as when left it or a new one. I also fixed the health bar by re-writing a new player's and the bar to impact the player's ability to heal when colliding with objects. I helped make the main ores and some rocks into sprites for the tutorial access for the playerplayer'smation about the game. I started rigging our game's protagonist, the dog named Rusty. We plan to use him for the tutorial and for future or further gameplay usage. In the meantime, I'm trying to animate the dog and put it in front of the UI, which is another cause of action to learn about. Lately, my computer has been the only one compatible enough to build the game without causing any SDK issues for publishing, so people can play it by downloading it on their mobile devices. I intend to be available for anything to complete this project within my abilities with my team and make this game a successful, fun game that everyone can enjoy until the next sprint. 

Sprint 5

This sprint was short-lived and unexpected. The only issue I would experience was the need for sleepless nights. I cannot understand how my team members can withstand the ability to be awake for more than 24 hours. The functionality of having the ability to be motivated by energy drinks and consent to doing crush work can make the person delusional. Meanwhile, my old computer wouldn't have access to the new one, and my project was intact. I couldn't make a copy of my project or transfer it to my other computer unless it was connected to Git Hub. Git Hub wasn't the only program I had to re-download, but the Andriod Studios for NDK and SDK. Other than re-installing programs, I didn't have technical issues. Also, uploading a new game version in Google Play went more smoothly than the previous adaptation.
The Kickoff went smoothly. We agreed to assign ourselves the tasks necessary for the game loop rather than create another level, which we could continue until polishing the first stage level before proceeding. So, I finished with what I started from the last sprint: combining all the sprites into functional menus and adding newer icons to symbolize the information so the player can identify what function works during gameplay. At first, I wasn't aware that the previous version of the UI concept was still in progress, but when I went over it with my teammates, there needed to be some changes. As you can see from the very top image, you can see the new version of the UI the player would interact with throughout the gameplay. Every button has an open panel response to a functional feature of the shop, sell, and pause menu. The only thing left is to put some logic into them, which my teammates are in charge of for functionality purposes and programming. The only issue we faced was the time to meet because our schedules colid to one another because of other classes, homework, and work. So, we had to divide ourselves into pairs per meeting because the producer and the programmer needed to contribute to help each other finish a part. In contrast, at different times, it is the programmer and the level designer or the producer and the level designer. Now, we need to compromise our time to meet after class or at the weekend, but if it's an emergency, it's a day to finish one assigned task.
So far, I can only complete 6 points in total, but I still continue to try my best to reach my goal even though my teammates and I have a tight schedule to keep up. I had to apply the menus so the player could go through them without complications. I also made part 2 of the feedback form sheet for a playtest outside class. I also had to make sure the functionality of the speed bar and the counterattack for the player can receive damage and be shown in the health bar. Even though it wasn't done, it was all I could do during the block I had from the beginning of the sprint. For the upcoming and last sprint, I want to finish all my tasks on time and maintain the game with no errors or bugs for the final.

Sprint 4

This sprint could have been more organized on my part. I should have followed the steps provided on Trello. I assign myself a job but skip it and start another more impactful one for the team. For example, the three different cave annotated maps were meant to be done from the previous sprint but needed to be more crucial on my part to focus on creating the level one foundation. I am a perfectionist because I cannot move forward until I am delighted without any errors or obstacles blocking my progress. It's a fall of a personality that I cannot control, and for that reason, I might seem behind others, but I see myself succeeding on my own.

Another example is that I had some problems with the touchscreen inputs because they did not let me open other panels in the same section. As always, the only solution I came up with was to start all over and re-write the code using a different approach. Although I was hoping it would work from a different perspective, I accidentally erased a code that helped implement the change of panel for a random tap of the main menu. Still, I was getting conflicts because I did not have an instance from other parents and scripts. Later, I realized the only issue caused by opening other panels was that the button functions were supposed to be moved to the bottom of the group in the hierarchy, which made sense. It's the layers from Photoshop; if the layers are at the bottom, the content is set in the background, and the top layers are in the foreground, but in Unity, it is reversed. The most superficial problems have the simplest solution. It would be best if you looked outside of the box.

According to the calendar, Sprint 4 was during Spring Break, which made it impossible to stick with the schedule by having an actual break and free time. My team needed more time and effort to keep a regular Kickoff and Stand Up. During Kickoff, we just complete past assigned tasks and fix any bugs before progressing to other new functions within the Trello user story cards. We still face some difficulty publishing the Alpha game on Google. One of my teammates wanted to submit it on his computer but got an error saying that Google could not accept this submission because the Key pass wasn't meant. Since we started, I was the only person who submitted because my computer was the only thing I could do then, but my only issue is that my CPU could be higher for these majors. Technically, it took a while to export and import it from one hardware to another. Although my computer was meant for this course, it was the last resort and the last resource within the team to publish this Alpha version for this playtest week. Unfortunately, we didn't test our game during class because it was submitted within the time, and Google Play only approves within hours. Thankfully, we had the opportunity to send our game through email and playtest outside of class for the result and the upcoming fixes before the end of this semester.

I completed a few tasks in this sprint, but it could have been better or planned because I wanted to do more. However, I was waiting for the new logic of the movement update for the player input system. So, I completed the UI element function of the main menu by implementing the UI sprites I had to recreate from 3D models into sprites because Unity doesn't have 3D models as UI. Within the UI elements, I fixed the game's solution so it can be opened on any device, from a phone to a tablet containing a Google Play Store, which doesn't change the scale of the game itself from others. I also apply the option for the players to adjust the level they wish to start with save progress, but I need to find another way to save progress and let players see their progress in case of curiosity. Lastly, I also apply the audio volume for adding sound in any way. I created a new Google form sheet for the playteplaytesters'nse to our game and am considering upgrading to beta for the upcoming game release. I finally finished the caves'caves'ated maps from the first sprint.

Overall, this upcoming sprint can be a very successful or a disaster aspect of trying this game and being fully playable for the public. In the meantime, I would work on map location within the game for the players' edge of where they are on the ground level. Nothing can overpass my aspect of the progress needed for this game to be fully completed until the next sprint.

Sprint 3

It wasn'twasn'test, and it wasn'twasn'torst experience. I expected it to be chaotic. The major issues were related to the build-up, especially publishing on Google Play. It took my group almost two days to figure out the most superficial aspect of the implements needed to push a single build into multiple versions. For a reason, it was chaos for both the build and the teammate.

Meanwhile, we were trying to build with one of our teammateammate'sters for the first time. It got corrupted, so they could only process the build with my help. I was their last resort. Even though my computer had all the hardware inputs it needed, it wasn't suitable for this situation. My CPU can't provide fast service like any other; my computer can access the lag and slow process. The impossible had become possible because my computer was the saver for this build-up. Another issue we faced was the outdated SDK, which we all thought we had from the moment I imported it to Unity. We had to re-install Android Studios to install the newer version for SDK and NDK. Even though the professor confirmed the correct version, he didn't think that the Android Studios would update at any moment without our knowledge, and we couldn't understand the frustration, not for my team face but for the class. We had to find a solution from outside resources, which took a while to obtain, and advised others to search without stressing out for unknown knowledge of a new system or anything in general. 


This Sprint Kickoff was another quick and breezy way of choosing tasks already assigned in the backlog. The difficult decision was picking or not picking the wishes because it was just art-related and wasn't the objective of having the basic core mechanics as being the level designer. I had to pick a random task that involved some programming, but I didn't miss the opportunity to create anything, so I tried to make the UI in a 3D model format. It would keep me busy for a few days to organize any other issues I could solve without touching any heavy coding. I volunteered to do the minimum for this sprint as a backup supporter because there might have been some issues that occurred by the end of this sprint. I wanted to be reliable and help others in my team by ensuring everything was OK with the input system relating to the player's player's joystick so my teammates could access the playtest on mobile before building it.

I completed some tasks that helped this sprint process to move as smoothly as I had hoped. I created the first level annotated map as an updated version of the previous annotated map, keeping the player moving only vertically and making a spawner for the objects to move toward the player. I constructed the 3D model of the UI through Maya and Substance Painter. I must only apply them to Unity and group them as individual menus. I made a Google form for the playtplayteplaytester'sssensesatch to match ur game's intention of being playful and fun from the player's perspective. Lastly, I helped build the core loop game and imported it into Google Play for testing.

Overall, this sprintsprint'sience was stressful for the team and others competing with Google Play'sPlay'sormat. It broke minds and self-esteem to develop positive energy for the following day—a way to describe a brutal industry that can produce or happen in our future careers. The moral of solving a problematic occasion can help achieve a better understanding shortly.

Sprint 2

 As a designer, this implies less work towards implementing the mobile gaming build-up took much work. I need help understanding the concept of GitHub not working from previous projects, or it can also mean my new laptop hardware needs to be compatible with this contribution. I had to create and start a side project to maintain my progress as a designer or program some mechanics so it could work for my end. Thankfully, my teammates understood the struggles I had been facing because I wasn't there, and I had to resolve a problem by thinking outside of the box. I couldn't understand our difficulties, especially how we needed to implement some files from Android Studios towards Unity by still requiring the proper information, even though it was for an older Unity project rather than a recent one. It would take me almost half a day to download a simple file from Android Studios to Unity because my hardware was compatible with an ordinary student business computer. The only thing I had to do was wait and be patient even though my teammates started with their tasks for the day.


Sprint Kickoff was a quick breeze because we planned ahead of what tasks were more important than the wishes. We had to focus on the core mechanics we would be working on before another playtest came upon us in the external introduction. We had to lay back on designing for the meantime and focusing on implementing the mechanics by the playerplayer'snics and the substitution of being an Android game. Even though my teammates were pitching great ideas for the type of game we were creating, I had to limit this idea as a wish because it was more of a design than the main mechanics. I was pleased with the tasks I was pointed out, but I had to lay back on designing and focusing on inputting the system to have the possibility of limiting access I had for this sprint.

For this sprint, I completed 9 points of the total 18 points from the beginning of the sprint. As I mentioned before, I was having some issues with GitHub, so I made another way to share our files in a Google Drive share to combine our work. I also played around with setting up the Android template in Unity and helped one groupmate figure out how to imply them so he could create a GitHub. I also played with the new input system mechanics for the touchscreen implements and future character movements. I also apply the touchscreen to the main menu with the level selection, options, and quitting. It took me a while to play with because every time I tried to press a button, it would change the pack to its original menu to what I wanted, so I had to change some button functions and the touchscreen manager in the different panel, which worked. I also made a UI reference to see what HUD elements would fit for this particular game. Lastly, I played with the health system of the UI gradient of changing color whenever the health drains from green to red. By playing around with the health system, I had to use the mouse button and the critical code because the simulation I used to see from an Android perspective wouldn't work unless it was only with the mouse button. The only tasks I still need to complete are more annotations and design, so I plan to finish these particular tasks in the future.

At the moment, I am working on the joystick, which I did at the beginning of this upcoming sprint. However, I have implemented it into the other scripts without getting an error before the upcoming playtest. The progress for the forthcoming sprint will be better than this.

Sprint 1

As a designer, I was overwhelmed by the fact I had to minimize the installation I had been creating for a PC game into a mobile. So far, this first sprint has gone so slowly. I need to update the engine for this course and a new program. Unity was the only reason I could n'tess; my procession needed a decent hardware device. It took a couple of days to fix this issue and follow along with the tutorial, even though it was outdated. Before all the hassle, I used the default mobile template, but the lack of necessary programs affected the progress. On the positive side, I wasn't aware of the technical aspect of coding, which didn't indicate any errors in creating a new project. Everything will be in my favor for the next sprint rather than the opposite.

For this Sprint Kickoff, it was unexpected how impactful this game will be by the end. We had so many wishes we, as the team, wanted to add, but first, we needed to focus on the technical aspects of the overall functionality of how the game should work smoothly. To make sure this ideal game was different from the rest, we needed to apply a plus point, which wanted to imply the character was able to interact with NPC and the ability to control the character in the limited space of action in a 2D environment. As the designer, I was confused about what type of environment the person who pitched this game wanted, if it was meant to be a 2D or a 3D, so we had to have multiple meetings to verify the overall conclusion of how the game was meant to look. We agree to have a 2D environment with 3D materials, introducing a reliable game like Paper Mario.

As I mentioned, I could not do my task before this sprint because Unity was not working. I completed the minimum of my ability to be in this team by creating a feedback form so the playtesters could respond to their experience while playing the paper prototype. I also produced two different versions of the annotated maps; in the first version, I added how the map would look if it were in a 3D environment. I implemented the collectibles, a close-up of how the player would move, and the UI. In the second version, I updated how it would look from seeing in a 2D view, and the UI agreed to use it. Finally, I could block out the annotated map in a 3D version, which I'll change into a 2D version. I couldn't continue working on the rest of my tasks because I was blocked from having time for updating purposes.

Overall, this sprint was the beginning of how impactful any other could have been with the functionality of a single software. I am currently working on the UI functionality of working before it gets playtestes and updating multiple annotated maps in a 2D environment. Hopefully, by the end of the next sprint, everything will move more smoothly than this one.






Comments

Popular posts from this blog

CAGD 370 Video Game Development

CAGD 230 Digital Modeling