Skip to content

Architecture

Owen Bond edited this page Oct 16, 2022 · 15 revisions

Frameworks and Libraries

The code will written in Python mainly utilizing the PyGame Engine. In addition, work will be done utilizing JSON files for data managament between uses of the application. The following python libraries will be used in edition to Python 3.10 (Current Most Up to Date 10/13/20222). All code will be written using Pep8 Notation Link.

Python Libraries

  • PyGame (Main Game Engine and Graphics Support)
  • Time (Management\ of Time in Game for motion)
  • Random(Management of Randomness in game)
  • PyGame_Menu (Main Screen and Menu Functionality for the game)
  • datetime (Access to dates for data storage and logs)
  • json (Ability to write to multiple JSON files to help support maintainable gameplay)
  • os (Backened management with the device for game operation)

Graphics

  • Graphics will be made in Adobe Illustrator

Build Procedure:

Code will be built using the following command utilizing PyInstaller to make a single file executable app

python -m PyInstaller --onefile <<FileName>>.py

Model

UML

There will be a game menu class for use in all non-gameplay screens, a gameplay class, a player class, a class for each enemy type, and a level class. The gameplay class will have a main run loop that will handle all interactions, such as player input, collisions, and point handling. It will also be responsible for blitting the correct images and information onto the screen. The other classes will hold their own information to be easily accessed and tracked, and be able to perform calculations and functions on their own data.

Maintain State

The app will have a maintained state using 5 JSON files for reading and 4 for writing to (Default not written to)

Files

HighScore.json

Will hold the top 10 high scores and be written over if new scores are added. Will hold them in top to bottom order with name, score, date time.

UserSetting.json

Will hold all of the user settings including ones that are still the same as default

DefaultSetting.json

A read only file that holds the games default settings in it

GameStat.json

Will be updated after every game with new stats to be displayed on the game stat screen

CurrencyShop.json

Will hold all of the users purchases and currency balance for upgrades and things of that nature

Views and Description

Assigning Roles

All Issues Have Been assigned, below is an overview of tasks and who will do them (broadly)

  • Game Build to Executable (Bradley)
  • JSON/Backend Management (Bradley)
  • Menu and Nav Controls (Xvavian)
  • GamePlay Controls (Owen)
  • GamePlay Display Features/Coins (David)
  • ShopControls (Colin)
  • In Game Pause (Bradley)
  • Game Over Screen (Colin)
  • Settings (David)
Clone this wiki locally