Skip to main content

Brutal Maze

Brutal Maze is a thrilling shoot 'em up game with minimalist art style.

Screenshot

The game features a trigon trapped in an infinite maze. As our hero tries to escape, the maze's border turns into aggressive squares trying to stop per. Your job is to help the trigon fight against those evil squares and find a way out (if there is any). Be aware that the more get killed, the more will show up and our hero will get weaker when wounded.

Brutal Maze has a few notable features:

  • Being highly portable.
  • Auto-generated and infinite maze.
  • No binary data for drawing.
  • Enemies with special abilities: stun, poison, camo, etc.
  • Somewhat a realistic physic and logic system.
  • Resizable game window in-game.
  • Easily customizable via INI file format.
  • Recordable in JSON (some kind of silent screencast).
  • Remote control through TCP/IP socket (can be used in AI researching).

Installation

Brutal Maze is written in Python and is compatible version 3.7 and above. The installation procedure should be as simple as follows:

  • Install Python and pip. Make sure the directory for Python scripts is in your $PATH.
  • Open Terminal or Command Prompt and run pip install --user brutalmaze.

For more information, see Installation page in the documentation.

After installation, you can launch the game by running the command brutalmaze. Below are the default bindings, which can be configured as shown in the next section:

  • F2: new game
  • p: toggle pause
  • m: toggle mute
  • a: move left
  • d: move right
  • w: move up
  • s: move down
  • Left mouse: long-range attack
  • Right mouse: close-range attack, also dodge from bullets

Additionally, Brutal Maze also supports touch-friendly control. In this mode, touches on different grid (empty, wall, enemy, hero) send different signals (to guide the hero to either move or attack, or start new game). Albeit it is implemented using mouse button up event, touch control is not a solution for mouse-only input, but an attempt to support mobile GNU/Linux distribution such as postmarketOS, i.e. it's meant to be played using two thumbs :-)

Configuration

Brutal Maze supports both configuration file and command-line options. Apparently, while settings for graphics, sound and socket server can be set either in the config file or using CLI, keyboard and mouse bindings are limited to configuration file only.

Settings are read in the following order:

  1. Default configuration (this can be copied to desired location by brutalmaze --write-config PATH. brutalmaze --write-config alone will print the file to stdout)
  2. System-wide and local configuration file (these will be listed as fallback config in brutalmaze --help; see the Configuration documentation for more info)
  3. Manually specified configuration file (via brutalmaze --config PATH)
  4. Command-line arguments

Later-read preferences will override previous ones.

Remote control

If you enable the socket server, Brutal Maze will no longer accept direct input from your mouse or keyboard, but wait for a client to connect. This can be done by either editing option Enable in section Server in the configuration file or launching the game via brutalmaze --server. The I/O format is explained in details in the Remote Control page.

Game recording

Either game played by human or client script can be recorded to JSON format. This can be enabled by setting the output directory to a non-empty string: brutalmaze --record-dir DIR. Navigate to Configuration for more options. Recordings can be played using Brutal Maze HTML5 record player.

Copying

Brutal Maze's source code and its icon are released under GNU Affero General Public License version 3 or later. This means if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.

This project also uses Tango color palette and several sound effects, whose authors and licenses are listed in the Copying page in our documentation.

Metadata

Release files for brutalmaze 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for brutalmaze 1.1.1
File Size Uploaded
brutalmaze-1.1.1.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for brutalmaze 1.1.1
File Interpreter ABI Platform
brutalmaze-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.3 MB

Release files / brutalmaze-1.1.1.tar.gz

Download URL brutalmaze-1.1.1.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
dc37c56480425d4a509d50e0bf9493ae201cece7dea111e406f0bae7ef29bd23
BLAKE2b-256 checksum
How to use checksums
e334f92ee1f475dc7091b7761bcbdb91c2e7af392382c91e5dbd3235139c7477
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release files / brutalmaze-1.1.1-py3-none-any.whl

Download URL brutalmaze-1.1.1-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ceae677e26a3f4cf7362dc2b4742e0611ca3e1b57ab32a5a8cf19f0a5d7c48be
BLAKE2b-256 checksum
How to use checksums
bdbf3f9510cf6582df357ca3ce7f21620e2b6e87c5d632cc19bf563d06e7d7bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.28

1 release file

0.8.27

1 release file

0.8.26

1 release file

0.8.25

1 release file

0.8.24

1 release file

0.8.23

1 release file

0.8.22

1 release file

0.8.21

1 release file

0.8.20

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.8

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.6.5

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page