This week we expanded on our basic game components (player, grid, spawners, floppies, robots, etc.) to make our minimum viable product. This included making an assembler that takes in car parts from the player and robots. The assembler keeps track of the number of each specific type of car part. Once the assembler has one of each car part that matches its current blueprint, it “makes” that car. We also expanded the functionality of the robots to be able to pick up car parts and interact with the assembler just like the player can. In addition, we included UI elements that describe the goal of the game, the player controls, the player’s score, and a win screen.
For the minimum viable product, we included a spawner for each type of car part, 3 robots (each with an associated floppy disk), and one assembler. We also made a basic game manager that counted how many cars had been made. Once the player reached the threshold of 5 cars made, they beat the level.
This week we plan on implementing further functionality for our spawners and assemblers. For the spawners, the player will be able to change what type of part is spawned. For the assemblers, the player will be able to change the current blueprint, thereby changing what car the assembler creates. These features will allow for more level variety and complexity. We also plan on implementing a more robust game manager that has more requirements for a win condition. This manager will be able to require a specific number of cars from different types of blueprints to beat the level.
The other main goal for this week is to polish the game. This primarily concerns creating levels of varying difficulty. For this level progression, we will also need to make more user interfaces (UI). One user interface we will need is a start menu where players can select which level they want to play. Additionally, in-game UI will be necessary to pause the level, restart the level, and select a different level.
One challenge we faced involved a persistent and intermittent bug. This bug causes robots to get stuck in the middle of their loop. At the moment, we are unsure what is causing this bug, and because it is not constant it has been difficult to track down. We hope to further investigate this issue and solve it before our next build.