Spaceshooter#
Install GitHub project pageAbout#
SpaceShooter is a side-scroller shooter game: a spaceship travels from left to right and wants to get through the enemies until it will beat the boss.
At first, it was inspired by Newcomers from Planet Math, popular Polish TV series from 80s, and especially their spaceship, which, at the end, became a boss to beat. Enemies were to stay at the board until they’re beaten, but later they started moving from right to left.

Default player, medical kit

Zeppelin, lightballs, medical kit, shield and a comet.
This program is made as a prototype, written in Python against PySide library. Target wersion – if even created – will be written in C++ against SDL or pure WinAPI.
HW requirements#
Any computer, where you can run Python 3.10 or newer.
Installation#
You need Python version 3.10 or newer and pip. Then you need to open a terminal and type:
python -m pip install spaceshooterAll dependencies will be also installed.
Running#

To start the program, type the following in the terminal:
python -m pip spaceshooterThe game is looking by default for a font Commodore 64 Rounded – otherwise it will use the default (which is, of course, ugly); please install something better and force using this with the option as below:
pip -m spaceshooter -f "Best font I found in the Internets"Warning
Remember about double quotes!
On the next run, font will be used again, as it’s stored in the configuration file now.
To reset all the settings (including hiscores, so beware!), you may use:
python -m spaceshooter -rThis will run the program with default settings.
Info
Options can be combined.
Gamers’ manual#
The goal is, as mentioned, to kill as much enemies, as it’s possible, and their boss at the end. You need to use missiles, lightballs, TNTs or bombs. Plain missiles and bombs are unlimited, where TNT must be first caught (the player has 3 TNTs at the startup), lightballs, when you caught them, work for 10s.
Every game starts with 3 lives, where every of them contains 10 minipoints. Every shoot at the player removes one minipoint. Game ends, where no lifes are present. Minipoints can be restored by catching those medical kits, flying there or there.
There are four difficulty levels:
- easy,
- normal,
- hard,
- immortal.
Easy level means that player can collide only with enemies and missiles (also these from the guns). Normal level is when the player collides also with comets, and the hard one when it collides also with buildings. Being immortal means – surprise, surprise! – you’re immortal.
Here’s sample gameplay (click on the image to see it):
Using TNT causes 3 enemies to be dead immediately.
Apart from medical kids, TNTs and lightballs you can catch ice boxes (and freeze enemies for 10s) and shields – for 10s player can be immortal.
There are five game levels, with different scenarios and enemies. At the end you need to kill the boss. Boss is trying to kill you with three missiles at once, flying in three directions. Boss can be killed by your 10 missiles.
Settings section contains all the keys that can be remapped if necessary.
Latest settings, difficulty levels and hiscores are saved to ~/.spaceshooterrc
Kudos#
Big thanks for my 10yrs old son, Antoni, who was improving all my game concept and created all of these flying objects (shields, iceboxes and so on); also he reworked most of the game logic.
Misc#
First draft was created at the end of 2020, when I was desperately looking for a new job. I put a post to LinkedIn with my proof of concept and the message “looking for ANY job”. Graphics were created with crayons on A4 paper, then scanned and used in the code.
Second iteration replaced all those crayon graphics with files made in Inkscape and GIMP.
There is no sound, so far, but maybe one day we will record some (who knows?)
Contact#
If you want to share your impressions, report a bug, or just write something, please use this address
InstallPython Package Index project page: https://pypi.org/project/spaceshooter
