CompSci 190
Fall 2022
Programming Games
FOCUS Section

Scroller Game

Write a Python program using the Arcade module that allows the user to play a game in which they dodge or shoot at scrolling objects. The scrolling objects should be read from a file, stored in a list, and only drawn or collided with when they are actually on the screen.

For example, the popular old scrolling game, Marvin Spectrum, is about a character running through a research laboratory encountering different gates along the way that he must either jump, dive, or slide through depending on their position. While the game is cleverly created such that it appears Marvin is running down a long corridor, the reality is that Marvin is essentially standing still and the lab is moving towards him! This is the challenge of scrolling games, creating a series of obstacles off screen that move towards you in a compelling and challenging way (note this is different than the object just warping or looping around after it passes the character).

This game is based loosely on the following games as well: Flappy Bird (dodging), Doodle Jump (dodging), River Raid (shooting), or Defender (shooting).

Here is a video discussing the basics of the game genre and implementation suggestions.

Getting Started

You can write this game from scratch, by extending one of the games you made earlier in the semester, or by starting with this template.

As a reminder, to use the Arcade module, you will need to include it within your project's Python Interpreter Environment before you will be able to import it:

Specifications

Complete these minimal requirements:

Beyond the basics, you must add at least two features to make your game more fun to play, such as:

Using images or sounds in your game will not impact your grade, but will likely make it look nicer and more fun to play. Arcade makes it easy to add resources in a variety of formats (not just GIF!), and even includes some that do not need to be downloaded. If you choose to download your own sounds and images, they must be royalty free and not "stolen" off of the web, using sites such as:

In the comment at the top of the Python file add: