The Goal: Create a game mechanic or mini-game in under a week that involves the Facade Design Pattern
in the code's implementation.
1. Briefly, what was the game feature you chose to create?
The game feature is a sort of character creator, where the player can choose the head, body, and legs for their creature and see all the combinations.
2. What is the player able to do with the game feature you chose to create? What goal are they able to achieve with it and for what purpose? To put this another way, complete this sentence: As a player, I want to ____<goal>____ so I can ____<reason>____.
The player is able to click the different buttons to switch the parts of the character around to create their own. To put this in the sentence format: “As a player, I want to switch out the different character features so I can see all the different combinations.”
3. What components does your Façade have? In other words, what subsystem classes does your Façade class hold references to?
The Facade has references to the PartManager, Platform, and TextBlurb classes.
4. What actions are you simplifying into a higher-level set of actions with the Façade design pattern? In other words, briefly describe what the higher-level actions are that your Façade does using its subsystem components.
The Facade simplifies two actions, finishing your character, and resetting the platform. For finishing the character, the facade pattern uses the TextBlurb class to randomly select a flavor text to set active, uses the Platform class to start moving the platform off screen and activate some particles, and the PartManager class to change the color of the different parts of the character. For resetting the platform, the Facade individually resets each class using their own reset methods.
5. What were the benefits of using the Façade Pattern to make your game feature?
I was able to make things a lot more organized by using the facade to do everything with a button push in one method instead of linking everything in the tangled way I tend to do if I don’t plan things out before hand.
6. Did you find any drawbacks to using the Façade Pattern? If so, what were they?
The only drawback I can think of would be that I already had everything working before putting in the Facade class, so I had to rewrite some things to make the Facade useful. However, once I did that I realized that I could get rid of some redundant code.
7. How is the goal of the game feature communicated to the player in your unity project? (If it’s not being communicated, be sure to fix that so you can answer this question.)
The game feature’s goal is communicated through the ‘how to play’ screen.
8. How are the controls required to use the game feature you created communicated to the player in your unity project? (If they’re not being communicated, be sure to do so.)
The game’s controls are also communicated through the ‘how to play’ screen.
9. How does the game communicate to players whether or not they have successfully used the game feature? (Again, if it’s not communicated, fix that in your Unity project before you answer this question.)
The game gives positive feedback whenever you complete a character by shooting out confetti particles, making the character change colors, and giving some flavor text.