docs: move README to docs/; reword most sections
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: Ida6ac152f3fa71ceb1d980afba9a82fc6a6a6964
This commit is contained in:
parent
eed5c3aff3
commit
1d738c35d4
1 changed files with 39 additions and 31 deletions
|
|
@ -1,11 +1,13 @@
|
||||||
# Rogged
|
# Rogged
|
||||||
|
|
||||||
Turn-based roguelike dungeon crawler, built in C99 and with a dash of Zig to
|
Turn-based, infinite roguelike dungeon crawler built with C99 and with a dash of
|
||||||
serve as a learning opportunity. Rogged is basically a classic roguelike where
|
Zig. Meant to serve primarily, but not exclusively, as a learning opportunity.
|
||||||
you descend through floors of a procedurally generated dungeon, fighting
|
Rogged is basically a classic roguelike where you descend through floors of a
|
||||||
enemies, managing inventory, and trying to reach the bottom alive.
|
procedurally generated dungeon, fighting enemies, managing inventory, and trying
|
||||||
|
to reach the bottom alive or die chasing a highscore!
|
||||||
|
|
||||||
A non-exhaustive list of its (current) features:
|
The game itself, be it the code or mechanics, is _heavily_ in development. For
|
||||||
|
now, a non-exhaustive list of its (current) features are as follows:
|
||||||
|
|
||||||
- Turn-based combat with damage variance, critical hits, dodge, and block
|
- Turn-based combat with damage variance, critical hits, dodge, and block
|
||||||
mechanics
|
mechanics
|
||||||
|
|
@ -18,33 +20,27 @@ A non-exhaustive list of its (current) features:
|
||||||
- Procedural audio via raylib
|
- Procedural audio via raylib
|
||||||
- ASCII-inspired tile rendering, with HP bars and floating damage text
|
- ASCII-inspired tile rendering, with HP bars and floating damage text
|
||||||
|
|
||||||
**Controls:**
|
There are still some features lacking polish, or lacking _any_ kind of attention
|
||||||
|
to be viable. For a semi-complete list of things that need to be done, see the
|
||||||
| Key | Action |
|
[future plans section](#future-plans).
|
||||||
| ------------- | ----------------------------------- |
|
|
||||||
| WASD / Arrows | Move or attack |
|
|
||||||
| G | Pick up item |
|
|
||||||
| I | Open inventory |
|
|
||||||
| U | Use a potion |
|
|
||||||
| E | Equip item from inventory |
|
|
||||||
| D | Drop item |
|
|
||||||
| Y / N | Confirm / decline descending stairs |
|
|
||||||
| R | Restart (on game over) |
|
|
||||||
| Q | Quit |
|
|
||||||
|
|
||||||
## Build Instructions
|
## Build Instructions
|
||||||
|
|
||||||
Rogged is built with C99 and Zig. Besides `raylib` and `pkg-config` you will
|
Rogged is built on a relatively simple stack. It uses C99 for the main game
|
||||||
need a C compiler and basic Zig tooling. For now, we use C99 and Zig 0.15.2.
|
logic, and Zig for the combat library. Besides `raylib` and `pkg-config`, you
|
||||||
Those might change in the future.
|
only need the core Zig tooling. For now the required Zig version is 0.15.2, but
|
||||||
|
this might change in the future. Additionally, you will need `clang-format` and
|
||||||
Additionally you will need `clang-format` and `just` for the developer workflow
|
`just` for common development tasks in the case you plan to contribute. For
|
||||||
if you plan to contribute.
|
building, Zig is enough.
|
||||||
|
|
||||||
### Using Nix (Recommended)
|
### Using Nix (Recommended)
|
||||||
|
|
||||||
The recommended developer tooling is [Nix](https://nixos.org). This provides a
|
The _recommended_ way of developing this project is using
|
||||||
pure, reproducible devshell across all machines.
|
[Nix](https://nixos.org) and relying on devshells for pure, reproducible
|
||||||
|
developer environment across all machines.
|
||||||
|
|
||||||
|
If you are a [Direnv](https://direnv.net) user, you may simply run
|
||||||
|
`direnv allow` or you may use `nix develop` to enter the default shell.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Enter the development shell
|
# Enter the development shell
|
||||||
|
|
@ -56,6 +52,9 @@ $ just dev
|
||||||
|
|
||||||
### Manual Build
|
### Manual Build
|
||||||
|
|
||||||
|
If you are allergic to good tooling and would rather use your system Zig, you
|
||||||
|
may simply invoke `zig build` after acquiring Zig 0.15.2.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Full build
|
# Full build
|
||||||
$ zig build
|
$ zig build
|
||||||
|
|
@ -67,6 +66,8 @@ $ zig build run
|
||||||
$ just dev
|
$ just dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The Justfile provides commands that work across both methods.
|
||||||
|
|
||||||
### Task Runner Commands
|
### Task Runner Commands
|
||||||
|
|
||||||
There's a `Justfile` designed to make common tasks somewhat easier. For now,
|
There's a `Justfile` designed to make common tasks somewhat easier. For now,
|
||||||
|
|
@ -84,10 +85,14 @@ If the project gets more complicated, new tasks might be added.
|
||||||
|
|
||||||
## Future Plans
|
## Future Plans
|
||||||
|
|
||||||
The game is currently **playable end-to-end** but it lacks _serious_ polish to
|
The game is currently **playable end-to-end**, but it lacks a fair bit of polish
|
||||||
claim its place as a fun roguelike. Some of the features I'd like to introduce,
|
to claim its place as a fun, engaging roguelike you can just boot up and play.
|
||||||
in no particular order, are as follows:
|
Some of the features that are planned for the future, in no particular order,
|
||||||
|
are as follows:
|
||||||
|
|
||||||
|
- [ ] **Better enemy AI** - The current AI is very simple.
|
||||||
|
- [ ] **Fog of War** - Instead of loading the entire map, let the player
|
||||||
|
discover the rooms
|
||||||
- [ ] **Save / Load system** - Persist and restore game state between sessions
|
- [ ] **Save / Load system** - Persist and restore game state between sessions
|
||||||
- [ ] **More enemy variety** - Additional enemy types with unique abilities
|
- [ ] **More enemy variety** - Additional enemy types with unique abilities
|
||||||
- [ ] **More item variety** - Rings, wands, scrolls, and cursed items
|
- [ ] **More item variety** - Rings, wands, scrolls, and cursed items
|
||||||
|
|
@ -100,8 +105,9 @@ in no particular order, are as follows:
|
||||||
- [ ] **UI polish** - Better message log history, item descriptions, death
|
- [ ] **UI polish** - Better message log history, item descriptions, death
|
||||||
screen
|
screen
|
||||||
|
|
||||||
In addition, it might be interesting to allow customizing the "world state" by
|
Later down the line it might be an interesting choice to provide a scripting
|
||||||
as scripting API. Though, that is for much later.
|
API, likely with Lua, to allow customizing the game state and events. Though,
|
||||||
|
that is for much later.
|
||||||
|
|
||||||
## Attributions
|
## Attributions
|
||||||
|
|
||||||
|
|
@ -118,4 +124,6 @@ Additionally, _huge_ thanks to [Raylib] for how easy it made graphics and audio.
|
||||||
This was perhaps my best experience in developing a graphical application, and
|
This was perhaps my best experience in developing a graphical application, and
|
||||||
CERTAINLY the most ergonomic when it comes to writing a game.
|
CERTAINLY the most ergonomic when it comes to writing a game.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
_I got rogged :/_
|
_I got rogged :/_
|
||||||
Loading…
Add table
Add a link
Reference in a new issue