Package: brutalmaze
Brutal MazeBrutal Maze is a thrilling shoot 'em up game with minimalist art style.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).InstallationBrutal Maze is written in Python and is compatible version 3.7 and above.
The installation procedure should be as simple as follows:Install Python andpip.  Make sure the directory forPython scriptsis in your$PATH.Open Terminal or Command Prompt and runpip install --user brutalmaze.For more information, seeInstallationpage in the documentation.After installation, you can launch the game by running the commandbrutalmaze.  Below are the default bindings, which can be configured as
shown in the next section:F2: new gamep: toggle pausem: toggle mutea: move leftd: move rightw: move ups: move downLeft mouse: long-range attackRight mouse: close-range attack, also dodge from bulletsAdditionally, 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 usingmouse button upevent, 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 :-)ConfigurationBrutal 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:Default configuration (this can be copied to desired location
bybrutalmaze --write-config PATH.brutalmaze --write-configalone
will print the file to stdout)System-wide and local configuration file (these will be listed
as fallback config inbrutalmaze --help; see theConfigurationdocumentation for more info)Manually specified configuration file (viabrutalmaze --config PATH)Command-line argumentsLater-read preferences will override previous ones.Remote controlIf 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 optionEnablein sectionServerin the configuration file or launching the game viabrutalmaze --server.
The I/O format is explained in details in theRemote Controlpage.Game recordingEither 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 toConfigurationfor more options.
Recordings can be played using Brutal MazeHTML5 record player.CopyingBrutal 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 theCopyingpage in our documentation.