Blog Post 3

 

Robo-Factory

Blog Post 3


Kade Chambers
Jen Davalos
Liam O'Hare

    This blog post will cover work completed during sprint 4 of Agile development while creating the idle mobile game Robo-Factory. At the beginning of this sprint, our team set out to have a playable alpha build of our game that fully featured our upgrade system, factories, and new animated models. To do this, we focused on emphasizing the aspects of our prototype that our players found the most fun during our last playtest using the feedback provided. We kicked off our sprint by assigning tasks targeting changes to our upgrade system, UI, and models in order to properly pursue the wacky physics interactions between components. 




    During Sprint 4, the tasks assigned to me as a programmer included setting up our newly modelled factory fabricators, redesigning our core upgrade mechanics to target different traits, and then implementing these upgrades into a menu during run-time. As the models for the new fabricators were to be created during this sprint, I began by working on the new upgrade system and their stats.

    The feedback provided from the prototype playtest showed us that a couple upgrades, such Fabricator Power, were speeding up the game too quickly and allowing players to shoot parts over the conveyor entirely. While we had originally planned for this upgrade to be small and incremental, we found that our conveyor speed more appropriately conveyed the change in gameplay pace that we were aiming for. This upgrade was removed entirely in favor of a base power setting, allowing pace to be controller by the conveyor. Alongside this, I modified the way that we track scrap, as well as how we measure a robot's value. We have removed the scaling of the scrap cost and changed scrap from incrementing continuously to recharging back to a max capacity. This allowed me to have two separate upgrade paths for the scrap system: scrap capacity and scrap recharge. By creating a scriptable object for each upgrade, I can have any member of our team make upgrades independent from each other and have them set which values to modify.


    After finishing with the new upgrade objects, I needed a way to read these upgrades into a list, and then display this list to the player. As each upgrade was to be interacted with by the player by tapping, I decided to hook these up into Buttons. To accomplish this, I created a Canvas element prefab within Unity, which contained a button, text for a upgrades name, as well as blank text for the upgrade's description. I then wrote a script that would iterate through our list of upgrades, create an "item" instance, and then assign these values from the scriptable object into our prefabs. After this, an "UpgradeManager" would then assign this into our Canvas panel containing a list of upgrades. To accomplish the formatting and vertical stacking of these buttons, I used the Vertical Layout Group Component. Each button during this assignment would be assigned a method to execute on click depending on the values listed in the scriptable objects. An example of these buttons being dynamically assigned can be seen below when implementing 4 different upgrades.


Placeholder art

    Once I had completed the core components of our improved upgrade system, I had access to the newly modelled, textured, and animated fabricators created by Liam (They are super cool, and you should check them out in our game). These replaced our old models, and so I needed to make sure that they worked within our game scenes interchangeably, so that we could use them modularly throughout development. This involved editing the fabricator script to accommodate up to 4 parts per robot during production, as well as breaking down the robot models created by Jen into multiple components. After dealing with the script and prefabs, I just had to finalize the "Spawn" transform. I ran into an issue here for a little while as our parts were being spawned at the wrong scale, but I was able to solve this once I realized that the spawned parts were inheriting the parent transforms scale attribute. We had 5 new fabricators created during this sprint, so I needed to edit this transform for each one.


    Finally, to wrap up the sprint and head into our Alpha build, I finalized our scene layout and hooked up the remaining components needed to showcase our "Factory 2" level for players, before building to an APK for my team and myself to playtest, as well as allow others to playtest. I also exported an .aab and sent this off to Jen for upload on the Google Play Store to begin testing through their Alpha preview feature.

    Overall, this sprint was very productive, and I am excited to see our progress again after the next sprint. I just want to take a moment to thank my team for the constant communication and hard work that they have put into this project. They are always taking the extra step when it comes to detail, and it is really bringing the game together.
    


Comments