Blog Post 2

 

Robo-Factory

Blog Post 2


Kade Chambers
Jen Davalos
Liam O'Hare


    This past month, our team has been working hard at getting our digital build ready for prototyping, as well as implementing our modeler's assets and animation work. Our team set out to make an idle robot production themed game by the end of this semester that is fun, engaging, and features turn-based combat for the player for progression. This blog post will cover work completed during both Sprint 2, and Sprint 3 of this production following the AGILE workflow. During these past sprints, I had a series of programming tasked assigned to me in order to establish functionality for our game. These included our input controller, data storage, our core game-loop, as well as getting our core-upgrade system set up for future use.


    The first series of tasks that I tackled as we moved into digital production related to how our game would handle player input. As we decided that we wanted our player to use a button on the screen for input instead of recording each individual task, I was able to use the new Unity Input system to hook up button events to our game manager. Using this system, I was able to hook up our player input and tie it to our robot production, which leads me to the next set of tasks that I needed to complete before our game would be in a playable state for QA testing.

    To begin making our game playable, we needed the player to begin to accumulate our idle currency, scrap. I began by creating a variable that would increment over time and started this at a rate of 1sec/generation in order to make sure that our games timing system could be easily modified at a later date. I then tied a method to our Build button for our player to "spend" this scrap currency. After ensuring that our player was able to properly earn and use scrap, I began working on tying this to our actual robot production on-screen.


    To accomplish this, I created a set of scriptable objects, each containing the series of parts that a robot would comprise of during its life down the conveyor system. I then created a script for our fabricators (boxes that parts go in and out of) that allows them to take in incoming parts and move them along the conveyor while swapping them to the next required part. To complete the production cycle, I set up our modeled truck to collect the robots when they arrive and reward the player with "Cash," our in-game upgrade currency. After I completed the production line, I began to see a big issue pop up.


    The movement looked boring. Models were being statically moved, and the direction of the game didn't require animation, or expect it to help accomplish the desired look and feel of the game. After discussing this with my team, we all agreed that we needed something to change. I suggested that we move to a physics-based system and lean away from focusing on timing between start and finish. Instead, we could focus on allowing the player to start a build at the speed they want and allow physics to take control of the rest. After showing a small example to my team lead, we decided to pursue this direction.

    My team member Liam created a script that would move rigid bodies across an object, and then created an animation for our conveyor model to match. This allowed me to focus on robot production and allowed me to begin working on our upgrade system. Once I had finished putting together a small prototype of our upgrade system, I moved on to creating all of the UI elements in our game. I created several buttons and tied them to upgrades for the player. These upgrades all effect different components and their functions, such as conveyor belt speed, cash per robot, and how fast scrap could be accumulated.


    Finally, after completing the scripting required for a digital prototype and finishing a basic interface for our players to tap, I set up the Unity scene required for these components to work together, and created the build for our players to begin playtesting. The playtest went extremely well, and the results indicated that players loved the wackiness of the robot parts colliding with physics. I am excited to continue building out this project in the future, and developing more fun with the physics system.


    
    


Comments