-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
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
Code will be built using the following command utilizing PyInstaller to make a single file executable app
python -m PyInstaller --onefile <<FileName>>.py
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.
The app will have a maintained state using 5 JSON files for reading and 4 for writing to (Default not written to)
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.
Will hold all of the user settings including ones that are still the same as default
A read only file that holds the games default settings in it
Will be updated after every game with new stats to be displayed on the game stat screen
Will hold all of the users purchases and currency balance for upgrades and things of that nature
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)