-
Notifications
You must be signed in to change notification settings - Fork 0
System Architecture Documentation
Underwatch
Underwatch is a roguelike adventure that immerses players in an enigmatic underworld. Here, they take on the role of fearless explorers, armed with a diverse and imaginative array of weapons. As they navigate through procedurally generated environments, they must confront relentless bullet storms, vanquish formidable adversaries, and challenge one-of-a-kind bosses.
Underwatch consists of three parts:
- The game
- A database storing individual high scores
- A website to show the high scores archived by the players
Goal | Description |
---|---|
1. User Engagement | The users should be engaged while playing the game |
2. Self-descriptiveness | The game should be easy to understand with low efforts |
3. Installability | The game should run on all major platforms (windows, linux, mac) |
Explicit overview of stakeholders of the system, i.e. all person, roles or organizations that
- should know the architecture
- have to be convinced of the architecture
- have to work with the architecture or with code
- need the documentation of the architecture for their work
- have to come up with decisions about the system or its development
Stakeholder | Group | Desire |
---|---|---|
Students | Developers | Implement the Game |
Miss Li | Investor | Finished good project according to the software engineering course |
- Persona Name: Sarah Miller
- Age: 28
- Gender: Female
- Location: Los Angeles, California
- Occupation: Graphic Designer
Background: Sarah is a graphic designer with a passion for video games. She spends long hours in front of her computer creating visual designs, and she enjoys gaming as a way to relax and unwind. She's a fan of hack-and-slash games and appreciates good design in games.
Goals and Needs:
- Primary Goal: To find a visually captivating and engaging hack-and-slash game that offers a simple gaming experience.
- Needs: Sarah is looking for a simple designed game with. She values a smooth and responsive gaming experience.
Demographics:
- Age: 28
- Gender: Female
- Location: Los Angeles, California
- Marital Status: Single
- Education: Bachelor's degree in Graphic Design
Behavior and Preferences:
- Preferred Communication Channels: Social Media, Gaming Forums
- Technology Proficiency: Tech-savvy
- Hobbies and Interests: Graphic design, gaming, art, reading fantasy novels
- Motivations: Seeking an escape from her daily routine, experiencing immersive worlds, and enjoying artistic game design.
- Frustrations: Slow or unresponsive gameplay, poorly designed games.
Usage of Your Product/Service:
- How they use your product/service: Sarah plays the game during her free time, often in the evenings or on weekends.
- Frequency of use: She plays the game regularly, around 10-15 hours per week.
- Key Pain Points: Any lag or technical issues within the game and poorly designed graphics.
Scenarios:
- Sarah starts a new game and is looking for a visually appealing and challenging hack-and-slash experience.
- She encounters a difficult battle and seeks strategies.
- After completing the game, she provides feedback on the gameplay and game design.
Goals with Your Product/Service:
- Sarah hopes to find a game that provides an exciting and immersive hack-and-slash experience with well-designed graphics.
Feedback and Suggestions:
- Sarah might provide feedback on game mechanics and game design.
- She could suggest improvements for better user engagement and artistic design elements.
This user persona, Sarah Miller, represents a potential player of your 2D, top-down, hack-and-slash game. Understanding Sarah's goals, needs, and preferences will help you design a game that resonates with players like her.
- Name: Alex "ShadowHunter"
- Age: 25
- Gender: Male
- Location: Chicago, Illinois
- Occupation: Professional Game Streamer
Background
- Background: Alex, known as "ShadowHunter" in the gaming community, is a dedicated and skilled game streamer specializing in roguelike adventures. He has built a substantial following over the years, thanks to his in-depth knowledge of the genre and his engaging on-screen personality.
Goals and Needs
-
Goals: Alex's primary goal is to entertain and educate his audience by delivering top-tier Underwatch gameplay, expert tips, and strategies. He also aims to expand his streaming channel's reach and foster collaborations with fellow gaming content creators.
-
Needs: Alex requires an active and supportive gaming community, up-to-date information about Underwatch, and a reliable gaming setup to ensure high-quality streams.
Demographics
- Age: 25
- Gender: Male
- Location: Chicago, Illinois
- Marital Status: Single
- Education: Bachelor's Degree in Computer Science
Behavior and Preferences
-
Preferred Communication Channels: Twitch for streaming, Discord for community interaction, Twitter for updates, and YouTube for posting highlights.
-
Technology Proficiency: Tech-savvy; well-versed in streaming software, gaming peripherals, and PC hardware.
-
Hobbies and Interests: Gaming (particularly roguelike and indie games), game development, cosplay, and participation in gaming conventions.
-
Motivations: Alex is motivated by his passion for gaming and his desire to build a strong and supportive gaming community. He also seeks opportunities for sponsorships and partnerships within the gaming industry.
-
Frustrations: Unreliable internet connections, technical issues during streams, and dealing with toxic individuals in his audience or the gaming community.
Usage of Your Product/Service
-
How they use our product/service: Alex employs Underwatch as the primary game for his streaming content. He showcases his gameplay, explores various character builds, and interacts with his audience while discussing strategies and lore within the game.
-
Frequency of use: He streams Underwatch at least four days a week, with each session lasting 3-4 hours.
-
Key Pain Points: Alex occasionally encounters issues with server stability, which can disrupt his streams. He also seeks constant updates and patches for the game to keep his content fresh and engaging.
Additional Information
-
Quotes:
- "Underwatch is not just a game for me; it's an adventure, and I love sharing that adventure with my audience."
- "I'm always on the lookout for new game mechanics and hidden secrets in Underwatch to share with my viewers."
-
Image: [Insert Image of Alex "ShadowHunter" - A confident, tech-savvy game streamer with a dynamic and energetic presence.]
Scenarios
-
Alex will play Underwatch live on his Twitch channel, engaging with his viewers, sharing tips and strategies, and discussing the latest updates and developments in the game.
-
He may host special events or challenges for his audience, like speed runs or viewer-submitted character builds in Underwatch.
-
Alex could participate in community tournaments or collaborations with other streamers centered around Underwatch.
Goals with Our Product/Service
- Alex aims to keep his Underwatch streams entertaining and informative by exploring new content and sharing in-depth guides and strategies. He hopes to maintain a close connection with his viewers, providing them with the latest news and updates about the game.
Feedback and Suggestions
- Alex may provide feedback on game balance, feature requests, or bug reports related to Underwatch, as his audience often identifies issues while watching his streams. He may also suggest ways to improve the community engagement features within the game.
- Name: Jimmy Catch
- Age: 12
- Gender: male
- Location: Sweden
- Occupation: Student
Background
- Background: Jimmy is a professional video gamer. He likes rapid, fast paced action games which have a simple graphic.
Goals and Needs
- Goals: He wants to practice his aim and warm up before competitive play.
- Needs: A quick to learn, hard to master mechanical game.
Behaviour and Preferences
- Preferred Communication Channels: Social Media, rarely mail
- Technology Proficiency: Tech-savvy
- Hobbies and Interests: video gaming
- Motivations: getting better competitively
- Frustrations: control lock and forced cutscenes
Usage of Your Product/Service
- How they use our product/service: They use the game on a casual basis to practice their aim as well as an easy way to warm up
- Frequency of use: They will use the game on a daily basis with the average session time being around 30min to 1h
- Key Pain Points: Quick start up times, rapid gameplay, workable visuals
- Name: Michael Hoffmann
- Age: 20
- Gender: Male
- Location: Austria
- Occupation: Student
Background:
- Background: Michael is a Student at a University in Austria. He just uses his Laptop to play a few games in th break or while beeing in the train. Therefore his laptop has just low computing power. He also has no num-pad and cannot allways use is mouse.
Goals and Needs:
- Goals: He just want to have a bit of fun and games that doesn't require a lot of time to have progress.
- Needs: Needs a simple game that runs on a laptop, doesn't need a num-pad.
Behaviour and Preferences
- Preferred Communication Channels: Social Media, Messanger
- Hobbies and Interests: video gaming, sports, ...
- Motivations: get some distaction
- Frustrations: no changes in the gameplay
Usage of Your Product/Service
- How they use our product/service: They use the game on a casual basis to get distraction
- Frequency of use: They will use the game on a daily basis (except the weekend) with the average session time being around 30min to 1h
- Key Pain Points: Easy to lern, distracting, entertaining
- Deadline until the end of the 4. semester
- Underwatch shall be platform independent
- Installable as an application.
System scope and context - as the name suggests - delimits your system (i.e. your scope) from all its communication partners (neighboring systems and users, i.e. the context of your system). It thereby specifies the external interfaces.
If necessary, differentiate the business context (domain specific inputs and outputs) from the technical context (channels, protocols, hardware).
Technical interfaces (channels and transmission media) linking your system to its environment. In addition a mapping of domain specific input/output to the channels, i.e. an explanation with I/O uses which channel.
There are three parts to consider, when developing the Underwatch game system.
-
The game engine: We decideded to use the Java game library libgdx https://libgdx.com/
-
The backend technology: We will use Java and Spring Boot for our backend and as our database we will use PostgreSQL as our database technology
-
The frontend framework: We will use React https://react.dev/ to build the website containing the high scores and a frontpage in order to advertise Underwatch
This section describes overall, principal regulations and solution ideas that are relevant in multiple parts (→ cross-cutting) of your system. Such concepts are often related to multiple building blocks. They include many different topics, such as
ADR'S have the following form:
Date Title Context Decision Status Consequences
For our quality requirements we will use the ISO 25010 Product Quality standard. For more informations regarding this standard you can visit the site https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 .This section contains all quality requirements as quality tree with scenarios. The most important ones have already been described in section 1.2. (quality goals)
From the quality requirements mentioned above. For our project we have identified the following as most important for the success of the project
We found the following usecases for our project:
Who | Event | Influence | Condition | Action | Measurement |
---|---|---|---|---|---|
Developer | Add new Weapon | Code | Development-time | Weapon is equipable and usable in game | In 3 hours |
User | Download the Game | System | Runtime | User can play the game | 2 min |
User | want to change keybindings | System | Normal Operation | keybinds are changed | max 3 interacations to get to change keybindings screen |
play tester | integration testing | System | Development | finish the game content | in 1 hour |
designer | add new asset | Code | Design time | new asset is on latest main branch | 2 hours |
user | i want to see a history of high-scores | System | Normal Operation | user can see highscores | latency of 0.5 seconds |
user | wants to see informations for the game | System | Normal operation | user can see the wiki entry | at most 5 interactions with the website |
developer | update game data | data within the system | Development | new version release | CI passes is |
user | filter website highscores for different game versions | System | Normal Operation | user can see highscorers | latency of 0.5 sec |
developer | update the wiki | code | Development time | the wiki entry is updated for the newest version | 1 hour |
A list of identified technical risks or technical debts, ordered by priority Important. Risks should be specific for the project, and not things, that always are a risk for example: Developer is sick. This is a general risk for every project
a table of words with specific meaning in the project