More README niceness

This commit is contained in:
2020-06-05 22:47:06 +01:00
parent 63d3ee0ed6
commit 54fe95239e
3 changed files with 38 additions and 34 deletions

1
.gitignore vendored
View File

@@ -5,4 +5,5 @@
/SL /SL
/SaW /SaW
/WoW /WoW
/WoW-CD
/bin /bin

View File

@@ -72,6 +72,10 @@ The menu system seen in Chaos Gate is not present; instead, there is a `BUTTONS`
directory and a lot of `pcx` files under `PIC` that, I suspect, do the job for directory and a lot of `pcx` files under `PIC` that, I suspect, do the job for
this game. this game.
Even with a full installation, Wages of War leaves a lot of data on the CD. It
may be best to run solely from the `WOW` directory on the CD, assuming it's a
strict superset of what gets installed, data-wise.
## Long-term goals ## Long-term goals
Once full playthrough of the official single-player campaign for all four games Once full playthrough of the official single-player campaign for all four games
@@ -96,7 +100,8 @@ Completely new fantasy game using the same engine.
## Building from source ## Building from source
I'm writing code in Go at the moment, so you'll need to have a Go runtime I'm writing code in Go at the moment, so you'll need to have a Go runtime
installed on your system: installed on your system. Dependency management uses `go mod`, so ensure you
have at least Go 1.11.
``` ```
$ go version $ go version
@@ -114,22 +119,19 @@ Debian:
You can then run `make all` in the source tree to get the binaries that are You can then run `make all` in the source tree to get the binaries that are
present at the moment. present at the moment.
Place your WH40K: Chaos Gate installation in `./orig` to benefit from automatic ## Configuring
path defaults. Otherwise, point to it with `-game-path`
The `view-map` binary attempts to render a map, and is the current focus of Since we support multiple games, a fair bit of configuration is required. Copy
effort. Once I can render a whole map, including pre-placed characters (cultist `config.toml.example` to `config.toml` and edit it to your requirements. The
scum), things can start to get more interesting. `data_dir` for the engine(s) you want to use is probably the most important bit,
along with the `default_engine`.
Current status: almost pixel-perfect map rendering. Static objects (four per map The various games all use snapshots of the original engine at different points
coordinate: floor, centre, left, and right) are rendered fine, and each Z level in time, and specify a lot in code that we need to specify in data. That should
looks good. There are a few minor artifacts here and there. all go into the config file, so new games will be able to adapt the engine to
their needs.
Characters and animations aren't touched at all yet. Rendering performance is ## Running
poor. No gameplay, no campaign logic. Interaction with the play area is minimal
and limited to pan, zoom, and click for basic console output.
Still, I'm proud of myself.
To run: To run:
@@ -145,27 +147,29 @@ Looks like this:
Use the arrow keys to scroll around the map, the mouse wheel to zoom, and the Use the arrow keys to scroll around the map, the mouse wheel to zoom, and the
`1` - `7` keys to change Z level. `1` - `7` keys to change Z level.
Dependency management uses `go mod`, so ensure you have at least Go 1.11. Menus / UI widgets have fairly good support now; you can use the `view-menu`
binary to inspect them:
There is the **start** of the menu / campaign flow in a `ordoor` binary:
```
make view-menu
./view-menu -menu Main
```
This renders the menus found in Chaos Gate and Soldiers At War. The Squad Leader
format seems basically the same, but has some extra files and aren't 8-bit
colour. They don't display at the moment. Wages of War uses a different format
altogether.
For Chaos Gate, there is the **start** of the game in an `ordoor` binary:
``` ```
$ cp config.toml.example config.toml
$ make ordoor $ make ordoor
$ ./ordoor $ ./ordoor
``` ```
This plays the introductory videos so far, and nothing else. The idea is to hook all the different parts together, and to an abstract game
state (which is called `ship` for ordoor), to make the whole thing playable. It
Menus are in the process of being rendered; you can use the `view-menu` binary isn't playable *yet*, but it's heading in that direction.
to inspect them:
```
make view-menu
./view-menu -menu ./orig/Menu/Main.mnu
```
This menu *displays* OK, including
## Sound ## Sound
@@ -180,4 +184,3 @@ $ ./scripts/convert-wav ./orig/Wav
As with video playback, the ambition is to *eventually* remove this dependency As with video playback, the ambition is to *eventually* remove this dependency
and operate on the unmodified files instead. and operate on the unmodified files instead.

View File

@@ -3,7 +3,7 @@ video_player = ["mpv", "--no-config", "--keep-open=no", "--force-window=no", "--
default_engine = "ordoor" default_engine = "ordoor"
[engines.geas] # Wages of War -> Gifts of Peace -> Geas [engines.geas] # Wages of War -> Gifts of Peace -> Geas
data_dir = "./WoW" data_dir = "./WoW-CD"
palette = "WagesOfWar" palette = "WagesOfWar"
[engines.ordoor] # Chaos Gate -> Order Door -> Ordoor [engines.ordoor] # Chaos Gate -> Order Door -> Ordoor
@@ -14,9 +14,9 @@ default_engine = "ordoor"
data_dir = "./SaW" data_dir = "./SaW"
palette = "SoldiersAtWar" palette = "SoldiersAtWar"
# [engines.] Squad Leader -> ??? -> ??? [engines.sl] # Squad Leader -> ??? -> ???
# data_dir = "./SL" data_dir = "./SL"
# palette = "SquadLeader" # may not be relevant? palette = "ChaosGate" # may not be relevant?
[options] [options]
play_movies = true play_movies = true