More README niceness
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,4 +5,5 @@
|
|||||||
/SL
|
/SL
|
||||||
/SaW
|
/SaW
|
||||||
/WoW
|
/WoW
|
||||||
|
/WoW-CD
|
||||||
/bin
|
/bin
|
||||||
|
63
README.md
63
README.md
@@ -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.
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user