Skip to main content

GeneriCrawl

A simple roguelike made in Python with tcod as part of the 2018 r/roguelikedev Does The Complete Roguelike Tutorial event. Can you reach the bottom floor of the dungeon in one piece?

Features

  • 15 enemies, 15 weapons, 8 pieces of armor, 5 runes, and 10 dungeon levels
    • Runes can be consumed, thrown, or used for enchanting
    • Levels are divided into 3 distinct areas: the dungeon, the caves, and the labyrinth
    • Levels vary in size, with some containing over 8,000 tiles
  • A combat system with 4 stats: HP, attack, defense, and damage
    • Attack and defense determine hit chance
    • Damage is the approximate damage dealt on a hit
  • AI that will start chasing you on sight, but can be escaped by breaking line of sight for long enough
  • Multiple color schemes and input schemes that can be changed while in-game

Installation

pip install genericrawl

Usage

genericrawl

GeneriCrawl accepts no command line arguments.

Options

Game options are saved to genericrawl/options.json in your system's default config location ($XDG_CONFIG_HOME, ~/.config, or %APPDATA%). Controls and colors can be changed in-game and automatically written back to this file. However, if you want to change the screen size, you will need to manually edit this file with a text editor and set the values of screen_width and screen_height. Each tile is 10 pixels, so the values 72 and 128 would produce a 720x1280 resolution, for instance. Alternatively, you can enter fullscreen by pressing F11 in-game, which will automatically rescale the game to your screen size.

Controls

GeneriCrawl comes with multiple common roguelike control schemes, as well as a less common left-handed control scheme.

All Control Schemes

The following bindings work in all of the following control schemes.

  • -/=: Change color scheme.
  • [/]: Change input scheme.
  • 1-0: Jump to an item in the inventory. Note that these are the number row keys, not numbers on the number pad.
  • Space/.: Wait one turn.
  • Space/Enter: Select an item or location.
  • r: If you're dead, restart the game.

Also note that, for all movement schemes, you can press the center key to wait a turn.

Number Pad

Recommended for players with a number pad.

7 8 9
 \|/
4-5-6
 /|\
1 2 3
  • i: Open inventory.
  • g/,: Pick up an item that you're standing on.
  • d: While in the inventory, drop the currently selected item.
  • e: While in the inventory, use the currently selected item.
  • r: While in the inventory, combine the currently selected item with another. Select another item and press the key again.
  • t: While in the inventory, throw the currently selected item.
  • l: Navigate to a tile to see its contents and pan the view.

vi

Recommended for vi users.

Y K U
 \|/
H-.-L
 /|\
N J N
  • i: Open inventory.
  • g/,: Pick up an item that you're standing on.
  • d: While in the inventory, drop the currently selected item.
  • e: While in the inventory, use the currently selected item.
  • r: While in the inventory, combine the currently selected item with another. Select another item and press the key again.
  • t: While in the inventory, throw the currently selected item.
  • ;: Navigate to a tile to see its contents and pan the view.

Left-hand

Recommended if you don't have a number pad, aren't experienced with vi, or want to use the mouse more.

Q W E
 \|/
A-S-D
 /|\
Z X C
  • tab: Open inventory.
  • g: Pick up an item that you're standing on.
  • b: While in the inventory, drop the currently selected item.
  • r: While in the inventory, use the currently selected item.
  • f: While in the inventory, combine the currently selected item with another. Select another item and press the key again.
  • t: While in the inventory, throw the currently selected item.
  • v: Navigate to a tile to see its contents and pan the view.

Credits

GeneriCrawl was created by Aaron Friesen with the help of the tcod Roguelike Tutorial.

Contributing

GeneriCrawl is no longer in development, and I do not intend to accept patches for new features. However, GeneriCrawl is permissively licensed, so if you want to add your own features, feel free to fork the repo or just borrow parts of the code (subject to the license terms in LICENSE.txt).

Metadata

Release files for genericrawl 1.2.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 genericrawl 1.2.1
File Size Uploaded
genericrawl-1.2.1.tar.gz 45.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for genericrawl 1.2.1
File Interpreter ABI Platform
genericrawl-1.2.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 94.0 kB

Release files / genericrawl-1.2.1.tar.gz

Download URL genericrawl-1.2.1.tar.gz
Size 45.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1b94a2ab764b9cd0481541f246e40c9d8037040ecaaae688dabe847bd7d5b9c9
BLAKE2b-256 checksum
How to use checksums
e8d172466ab0c2500beb0045a2abf345da632c6037db69bf03387e287b7ada26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release files / genericrawl-1.2.1-py2.py3-none-any.whl

Download URL genericrawl-1.2.1-py2.py3-none-any.whl
Size 48.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
ba074f1c06877b89aec2ccef182d4f2771f301d3871defe06ce282fa195c8181
BLAKE2b-256 checksum
How to use checksums
4147749f11a8dbac3f62f9e81812f29ed420bb9212f404140b400e3ebcc3942b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

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