Cleaned up README, added dev-dimensions.md

This commit is contained in:
Kayne Ruse 2025-04-05 11:08:43 +11:00
parent 75c2182f36
commit b8e5777729
3 changed files with 85 additions and 41 deletions

View File

@ -1,53 +1,27 @@
# Stepwise # Stepwise
Stepwise (working title) is a traditional roguelike, with console-like graphics, built with [python-tcod](https://github.com/libtcod/python-tcod).
## Dimensions and Genres ## Dimensions and Genres
Each time you start a run, a genre is chosen from a predefined list of **Dimensions**. Which dimension is chosen will dictate the rules for that run, altering the map's generation and overall goals for that save file. Some talking monsters may change their dialog, or some monsters may only spawn in some dimensions but not others. Each time you start a run, a genre is chosen from a predefined list of **Dimensions**. Which dimension is chosen will dictate the rules for that run, altering the map generation and overall goals. Some talking monsters may change their dialog, or some monsters may only spawn in some dimensions but not others.
Some recurring elements will exist in all dimensions to provide some stability, but will often be warped to fit - for example, if the "fantasy" dimension has Cid, the dwarven shopkeeper, the "scifi" dimension has C.I.D., the Customer Inventory Droid. Some recurring elements will exist in all dimensions to provide some stability, but will often be warped to fit - for example, if the "fantasy" dimension has Cid, the Dwarven shopkeeper, the "sci-fi" dimension has C.I.D., the Customer Inventory Droid.
Here's a few potential options, which absolutely will change over time: A working list of dimensions can be found in [dev-dimensions.md](dev-dimensions.md).
* Sword and Sorcery (LotR, D&D) ## Setup
* GitS/Neuromancer/Digitized Minds
* Steampunk/Clockpunk/Crystalpunk (deeper areas have older tech)
* Post-Post-Apocalypse (Nausicaa)
* Shakespeare, A Tragedy
* Fairy Tales and Fables (Brothers Grimm)
* Secret Agent Espionage
* Mythic Odyssey
* Dreamlands/Cthulhu Horror/Gothic Horror (accessible only during the full/new moon)
* Stargates/Sliders
* Isekai Protag Syndrome (mana-morph?)
* Gunslingers (Wild West)
## Links And Resources I'm still figuring out how python works, but this is part of it.
https://rogueliketutorials.com/
https://python-tcod.readthedocs.io/en/latest/
## Setup and Scripts
```bash ```bash
#make the virtual environment #make the virtual environment
python3 -m venv venv python3 -m venv venv
#useful pre-commit hook
lint_results=$(echo "$(grep -Pro '[\t]+$' */*.py)")
lint_errors=$(echo "$lint_results" | wc -w)
if [ $lint_errors -gt 0 ]; then
echo "pre-commit lint errors found: $lint_errors"
echo "$lint_results"
fi
exit $lint_errors
``` ```
heapq is a thing for the speed sorting
## Credits and links ## Credits and links
Dev: Kayne Ruse Design, Coding: Kayne Ruse
Help: Troy Brough Design: Troy Brough
Font: https://2bitcrook.itch.io/44-game-boy-fonts Font: https://2bitcrook.itch.io/44-game-boy-fonts

54
dev-dimensions.md Normal file
View File

@ -0,0 +1,54 @@
## Primary Dimension List
*TODO: Proper names for each is needed.*
The 12 dimensions are divided into 4 categories, to help with theming and tool reuse.
Tolkien
* Sword and Sorcery (LotR, D&D)
* Mana-Centric (Isekai conceit)
* Post-Post-Apocalypse (Nausicaa)
Technology
* Steampunk/Clockpunk/Crystalpunk (deeper areas have progressively strange tech, "Xpunk"?)
* Digitized Minds (GitS, Neuromancer, "Digital Ghosts"?)
* Gunslingers (Wild West with strange tech)
Fiction
* Shakespeare, A Tragedy
* Mythic Odyssey
* Grimm Tales
Contemporary
* Secret Agent Espionage
* Eldritch Horror
* Gothic Fiction
## Modifiers
A modifier is applied to a dimension to give it a unique twist for one run only. Some modifiers are not initially available, and must be unlocked by the player. Others may only appear under certain circumstances, such as the phase of the moon. The chances of a modifier being active are TBD.
Gobbo Swarm
* A strange, almost goblin-like species with the habit of causing havoc is different dimensions.
Merchant Ship
* A group of merchants capable of travelling between dimensions, will sell items from other worlds, including unique items not available elsewhere.
* For each run (perhaps, with a minimum level needed, so it can't be cheesed), a counter ticks down until zero, at which point the merchant ship is guaranteed to generate. The counter only resets when the player finds it. In essence, this guarantees the ship will be encountered on a semi-regular basis.
Contagion
* A strange affliction, that turns people into zombies. Could also prevent the spawning of normally present monsters, to invoke a 28-days-later vibe.
* Initially locked, can only be unlocked by finding and item called "The Heart Of A Dead World".
Pocket
* A small dimension, distinct from the primary list. Not as long-lived as normal dimensions.
* Initially locked, can only be unlocked by activating the "Gate Network".
## Persistent Elements And Warped Identity
Shopkeeper
* Tolkien - Cid, Dwarven Shopkeeper
* Technology - C.I.D., Customer Inventory Droid
* Fiction - Le Cid (There's a play with this name?)
* Contemporary - Cid, the store clerk

View File

@ -2,6 +2,27 @@
This file is a kind of scratch-pad for a multitude of ideas, that I can't implement yet. They'll be added to, refined or removed over time, so don't get too attached. This file is a kind of scratch-pad for a multitude of ideas, that I can't implement yet. They'll be added to, refined or removed over time, so don't get too attached.
## Links and references
https://rogueliketutorials.com/
https://python-tcod.readthedocs.io/en/latest/
```bash
#make the virtual environment
python3 -m venv venv
#useful pre-commit hook
lint_results=$(echo "$(grep -Pro '[\t]+$' */*.py)")
lint_errors=$(echo "$lint_results" | wc -w)
if [ $lint_errors -gt 0 ]; then
echo "pre-commit lint errors found: $lint_errors"
echo "$lint_results"
fi
exit $lint_errors
```
heapq is a thing for the speed sorting
## Entity Statistics ## Entity Statistics
#TODO: brain no work, calc these later #TODO: brain no work, calc these later
@ -30,10 +51,6 @@ To-hit, d20:
damage-dealt: damage-dealt:
roll(weapon_damage) - target_absorb roll(weapon_damage) - target_absorb
## Dimension List
#TODO: Plan out each confirmed dimension.
## Concepts and Ideas ## Concepts and Ideas
Color-based effects or biomes that only have an impact when in the FOV? Color-based effects or biomes that only have an impact when in the FOV?
@ -46,8 +63,7 @@ damage-dealt:
It could be interesting, not necssarily a good or fun idea, but if you had another "point" or currency. Where if you spend the first one you get some kind of "cursed knowledge" point and that affects the run somehow? So the more you use your forbidden knowledge the more weird things get? It could be interesting, not necssarily a good or fun idea, but if you had another "point" or currency. Where if you spend the first one you get some kind of "cursed knowledge" point and that affects the run somehow? So the more you use your forbidden knowledge the more weird things get?
If you use IRL time and date as a mechanic, go big or go home. Maybe the horror dimension is only accessible during full/new moons? If you use IRL time and date as a mechanic, go big or go home. Maybe the horror dimension is only accessible during full/new moons?
Should the selected dimension be known at the start of a run? Should the selected dimension be known at the start of a run?
Could have "modifiers" that apply to existing demensions, altering how they generate i.e. a zombie virus could spread. More of a certain dungeon feature in some runs i.e. too many fountains run?
Could have "travellers" that move from one dimension to another i.e. want a particularly powerful item? Better hope the "merchant ship" is in this world.
## Healing Items ## Healing Items