Skip to content

Slav King: a 2D shooter game written in PyGame

Notifications You must be signed in to change notification settings

kguzek/slav-king

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slav King

This is a 2D game written in Python using the pygame library. It is currently in early stages of development, but is in a stable state and is playable. Some graphics are WIP and temporary sprites from third-party authors are currently used. This is subject to change, and they will be replaced with origial artwork. The game settings are stored in data/settings.ini and can be changed to your preference.

Gameplay

Objective

You are a criminal 'slav', who roams the streets of Russia and is generally up to no good. There is no clear goal, but the intended playthrough consists of buying a weapon and killing as many cops as you can. As you shoot more cops, you earn more money, which you can use to buy better weapons and powerups such as mayonnaise and beer.

Gameplay screenshot 1

Powerups

The powerups in the game can be purchased in the shop and are activated in-game by clicking the powerup icon.

Mayonnaise

Mayonnaise increases your speed by 2x and increases the damage dealt to cops by 2x. Cost: $50.

Beer

Beer decreases your speed by 2x and increases the damage dealt to cops by 3x. Cost: $60.

Weapons

  • Beretta ($50)
  • Deagle ($150)
  • MP5 ($200)
  • AK-47 ($300)

Shop screenshot

Download

You can get the latest version of Slav King through the Releases tab on the right-hand side of this GitHub repository. Locate the latest release (that is the release with the highest version number), and click on the source code release for that version. You have two options, the .zip release and the .tar.gz release. These should both work for all operating systems, but if you're on Windows the easiest to extract will be .zip. Finally, once the download has completed, extract the archive using any archiving program (Windows File Explorer, WinRAR, 7-Zip) into a folder of your choosing.

Installation

You must have Python 3 installed to play this game. The latest Python version is recommended and can be installed at python.org. If you already have an older Python 3 version, the program should run fine. The game has only been tested on 3.11 so if you encounter any problems consider upgrading your Python installation.

After installing python, you must install the required dependencies. This can be done using Pip and the provided requirements.txt file. Depending on your system, the exact commands may differ. Below are some suggestions that should work for the majority of users; these commands should be executed from the folder which you extracted Slav King to.

Windows:

py -m pip install -r requirements.txt

Unix-based systems:

pip install -r requirements.txt

For the best results ensure that the pip package is up-to-date. On fresh installations, this is not always the case!

To run the game, enter the slav-king directory and run the following command:

python main.pyw

Hardware support

The game currently requires a keyboard and mouse to play to its full extent. In the future, it is planned to only require a keyboard by implementing keyboard shortcuts for all needed tasks. Additionally, for Windows users, there is controller support in the form of button and joystick bindings. For tasks that require the mouse, the right stick can be used to artificially move the cursor (WIP solution).

Supported command line arguments

These switches may be appended to the command when running the app from a terminal or console.

python main.pyw [...]
  1. -s or --skip-update-check: Doesn't perform the automatic update check on startup. Effectively an 'offline mode'.

Planned changes

  • add keybinds for powerups Edit 2023-12-23: Implemented in 85dbd5d
  • add general keyboard support
  • add keyboard shortcut editor
  • add game objectives
  • add info/help, item descriptions
  • replace temp sprites with own artwork
  • add 'crouching' and melee attacks
  • add end-game cops who can shoot at the player

Thank you for reading!