2. Software Architecture
This workshop is divided into to 2 parts where we will explore the use of code in Visual Studio and Unity. Complete each task in your own time. We will review solutions at the halfway point.
Exercise 1 - Research
SOLID Principles
In your assigned group of 4-5 research a SOLID principle. Prepare your research in a clear and explanatory way. Provide examples and information that you think will help your colleagues gain an insight into these specific approaches to improving programming in OOP environments.
In your designated space on a Mural board (Get the link in the Workshop) create a poster that explains the specific principle to your peers. You should include:
- Text explanation
- Diagrams
- Images
- Code examples (include commenting)
Be creative, articulate your understanding of the concept and be prepared to share your understanding with the group in a review mid session.
EXERCISE 2 - Applying Solid Principles
Design A Basic Mario Platformer
Based on your insight into SOLID with specific reference to: Single Responsibility Principle, Open Closed Principle and Liskov Substitution principle work in teams of 4-5 to design and develop a platformer based on the following image
Attribution: A screenshot from Nintendo’s 1985 classic video game Super Mario Bros.
You are not designing Mario, but you are using it as a template.
- Develop a design specification document for your game. Break down all the key functionality into encapsulated classes. You should design the key classes and relationships that would be in the platformer
- We are not expecting you to use any formal notation at this stage but we expect you to develop a diagram that represents an overview of all the relationships. We will explore the use of UML in a later session but for now try out the basics here at Lucidchart
- Please think about the classes, variables and functions that will support the game
- Develop a basic prototype of your game (one level) in Unity that uses the specification outlined in the document.
- Your game should employ the class structure and hierarchy from your document.
- Please use the following assets in your game - Kenney Assets