From a117b622ef0572388a4754e2ad316b61b09371ca Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Thu, 5 Aug 2021 16:39:35 +0700 Subject: Use Markdown for README --- README.md | 109 ++++++++++++++++++++++++++++++++++++++++++++++++ README.rst | 129 --------------------------------------------------------- pyproject.toml | 4 +- 3 files changed, 111 insertions(+), 131 deletions(-) create mode 100644 README.md delete mode 100644 README.rst diff --git a/README.md b/README.md new file mode 100644 index 0000000..9609b33 --- /dev/null +++ b/README.md @@ -0,0 +1,109 @@ +# Brutal Maze + +Brutal Maze is a thrilling shoot 'em up game with minimalist art style. + +![Screenshot](https://brutalmaze.rtfd.io/_images/screenshot.png) + +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: + +0. Default configuration (this can be copied to desired location + by `brutalmaze --write-config PATH`. `brutalmaze --write-config` alone + will print the file to stdout) +1. System-wide and local configuration file (these will be listed + as fallback config in `brutalmaze --help`; see the [Configuration] + documentation for more info) +2. Manually specified configuration file (via `brutalmaze --config PATH`) +3. 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. + +[pip]: https://pip.pypa.io/en/latest/ +[Python scripts]: https://docs.python.org/3/install/index.html#alternate-installation-the-user-scheme +[Installation]: https://brutalmaze.rtfd.io/install.html +[Remote Control]: https://brutalmaze.rtfd.io/remote.html +[HTML5 record player]: https://brutalmaze.rtfd.io/recplayer.html +[Copying]: https://brutalmaze.rtfd.io/copying.html +[Configuration]: https://brutalmaze.rtfd.io/config.html diff --git a/README.rst b/README.rst deleted file mode 100644 index 0a90678..0000000 --- a/README.rst +++ /dev/null @@ -1,129 +0,0 @@ -Brutal Maze -=========== - -Brutal Maze is a thrilling shoot 'em up game with minimalist art style. - -.. image:: https://brutalmaze.rtfd.io/_images/screenshot.png - :target: https://brutalmaze.rtfd.io/recplayer.html - -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.6 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 from 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: - -0. Default configuration [1]_ -1. System-wide configuration file [2]_ -2. Local configuration file [2]_ -3. Manually set configuration file [3]_ -4. Command-line arguments - -Later-read preferences will override previous ones. - -Remote control --------------- - -If you enable the socket server [4]_, Brutal Maze will no longer accept -direct input from your mouse or keyboard, but wait for a client to connect. -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 [5]_. -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. - -.. [1] This can be copied to desired location by ``brutalmaze --write-config - PATH``. ``brutalmaze --write-config`` alone will print the file to stdout. -.. [2] These will be listed as fallback config in the help message - (``brutalmaze --help``). See the Configuration_ documentation for more info. -.. [3] If specified by ``brutalmaze --config PATH``. -.. [4] This can be done by either editing option *Enable* in section *Server* - in the configuration file or launching the game via ``brutalmaze --server``. -.. [5] ``brutalmaze --record-dir DIR``. Navigate to Configuration_ - to see more options. - -.. _pip: https://pip.pypa.io/en/latest/ -.. _Python scripts: https://docs.python.org/3/install/index.html#alternate-installation-the-user-scheme -.. _Installation: https://brutalmaze.rtfd.io/install.html -.. _Remote Control: https://brutalmaze.rtfd.io/remote.html -.. _HTML5 record player: https://brutalmaze.rtfd.io/recplayer.html -.. _Copying: https://brutalmaze.rtfd.io/copying.html -.. _Configuration: https://brutalmaze.rtfd.io/config.html diff --git a/pyproject.toml b/pyproject.toml index 05d26cf..77e06aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ['flit_core >=2,<3'] +requires = ['flit_core >=2,<4'] build-backend = 'flit_core.buildapi' [tool.flit.metadata] @@ -21,7 +21,7 @@ classifiers = [ 'Programming Language :: Python', 'Programming Language :: Python :: 3 :: Only', 'Topic :: Games/Entertainment :: Arcade'] -requires-python = '>=3.6' +requires-python = '>=3.7' keywords = 'pygame,shmup,maze,ai-challenges' license = 'AGPLv3+' -- cgit 1.4.1