The game must involve at least 4 scenes, there must be a:
- Loading / splash scene
- Main menu scene
- Main game scene
- Leaderboard scene
You should be able to navigate between the scenes Note: each scene needs to only be navigable by at least one other scene (with the exception of the loading scene, it can be a time-oriented screen)
The game must use at least 3 loops which are fundamental to the operation of the program.
The game must incorporate at least 3 arrays, with at least 1 of the arrays being used to manage a list of objects on the screen (such as opponents).
There must exist player interaction using a keyboard. The game needs to handle at least 3 keyboard keys
There must be at least 1 image present in the final product (separate to sprites) that is drawn at an appropriate size.
Note: it is up to you which scene you incorporate the image in.
The p5.play library must be incorporated with a minimum of 3 sprites used. The spritesmust have collision detection (between sprites) and must move independently. Sprites must be animated (i.e. a moving object, changing size or color)
The game should use at least 3 sounds and 1 video. Hint: you can use sounds for shooting and video to introduce the game in the main screen.
At least one type of GUI input is required (e.g. text input, slider, button). The input should affect what is drawn.
The program needs to read in data from a JSON file where each object must have at least 3 properties. This data must be presented in the sketch in one of the scenes.
Hint: if your themes / ideas of the main game scene conflict with using external data, use the data in the leaderboard scene.
The game must feel stable to play. Your game should not feel ‘buggy’.
You must produce creative work that adds complexity to your game. Examplesof creative work that add complexity to your game include:
- One may shoot lasers slowbut move fast, the other may shoot lasers fast but move slow
- Stars (sprites or images) may traverse down the screen in a straight line, being generated at random rates & positions from the top of the screen
- Your ship may fire in a straight line in its unaltered state, but when picking up a ‘bonus’ blob (that traverses down the screen every 20 seconds, 30 seconds if missed) the ship has an altered mode of fire, such as shooting in multiple directions.
- You may download and use custom fonts that better fit your theme.
- Play a special sound every 10 enemies destroyed and add relevant bonus scoring.
- Enemies only fall after being hit 3 times. Use an array to store the health of individual enemies and update it upon collision detection.
- Could be as simple as having two difficulty options that change the number of lives available, or as creative as having increased speed of incoming fire / increased toughness of opponents.
You are encouraged to create your own assets (i.e. opponents or laser fire) on top of using public assets from the internet.
Note: the ability to creatively expand your game is highly dependant on having basic functionality, such as interactivity.
You must produce clean, well-written code. This encompasses indentation, meaningful naming of functions & variables, use & overuse of absolute values.