Escolar Documentos
Profissional Documentos
Cultura Documentos
Table of Contents
1. SCOPE OF WORK .......................................................................................................................... 3
1.1
1.2
1.3
1.4
1.5
1.6
1.7
3. GAMEPLAY .................................................................................................................................... 7
3.1
3.2
4. ARCHITECTURAL STYLE.............................................................................................................. 9
4.1
4.2
APPENDIX ........................................................................................................................................... 11
APPENDIX A. DESIGN PROCESS RATIONALE........................................................................................... 11
APPENDIX B. GLOSSARY ....................................................................................................................... 12
1. SCOPE OF WORK
1.1 Project Overview
This document describes the architecture design of Flappy Bird Duo, a new version of
Flappy Bird that allows two players to fly through Flappys worlds at the same time. This mobile
game is played over 10 rounds in real-time, where players play against opponents globally, and
are paired with players of roughly equal ability. Although the game is not a web application, it is
connected to a web page leaderboard where players can see the top performers over various
windows of time, and see where they themselves rank.
1.2 Goals
1.3 Constraints
1.4 Assumptions
1.5 Audience
Children
Teens
Adults
1.6 Stakeholders
Game users
Google Play, Apple App Store, Windows Store
System programmers
*startGame() in Server: This is a simulation of the startGame() in main. This is to ensure that the
server will know which player has lost in case the information is obstructed
3. GAMEPLAY
3.1 Sequence Diagram
4. ARCHITECTURAL STYLE
4.1 Possible Architectural Styles
Data flow
Conceptually does not have a program counter - executability and execution of
instructions is solely determined based on the availability of input arguments to the
instructions, so that the order of instruction execution is unpredictable
Why we did not choose this:
Only successful for specialized hardware (e.g. graphics processing, database
engine designs, and parallel computing frameworks)
Unnecessary for how simple our program is
Shared memory
Multiprocessing design where several processors access globally shared memory
Several processors sharing same memory allows for simplicity and load balancing
Why we did not choose this
Costly, limited extensibility (limited to up to 16 processors for best efficiency
given cost constraints), and low availability
Unnecessary for a small mobile app to use shared memory
Flappy Bird - Duos memory requirement is not large enough to benefit from
load balancing to complete tasks
Peer-to-peer
A distributed application architecture that partitions tasks or workloads between
peers. Peers are equally privileged, equipotent participants in the application
Clients both provide and use resources
Unlike client-server systems, the content serving capacity of peer-to-peer networks
can increase as more users begin to access the content
Why we did not choose this:
Flappy Bird - Duo does not allow users to connect peer-to-peer. It uses main
server to exchange game data and user information through the server.
Implicit invocation
System is structured around event handling, using a form of callback
Implicit invocation system components use events to communicate with each other
Announcement of events causes a second set of handlers to receive calls
Why we did not choose this:
Although Flappy Bird - Duo is an event-based game in terms of the tapping
event causing the bird movement, the only event that our system needs to
have handlers for is when the bird collides with a pipe, thus it would be
unnecessary to structure our entire system based on event calling
10
APPENDIX
Appendix A. Design Process Rationale
We decomposed this system into three actors. These components were chosen as actors for
our design process and we used them as we talked through the project.
Client: we assume 2 clients per game as users requesting and updating the server.
Server: mostly passive.
Webpage: similar to a client, but with limited scope to just pull
Our classes evolved as we used these actors in our sequence diagram to play the game. Here
you can see the pseudo-code to the right being developed along with the object classes as we
consider the interaction.
11
4.1 Glossary
Flappy Bird
game room
digital platforms that serve as app stores for Android, iOS, and
Windows phones, respectively
leaderboard
user
12