Files
ordoor/README.md

109 lines
3.0 KiB
Markdown
Raw Normal View History

# Ordoor
Portmanteau of Order Door, a remake project for Warhammer 40,000: Chaos Gate,
the game from 1998.
**You must have a copy of the original game data to use this project**
No game yet, nothing even close. I'm in the very early stages of trying to
2018-03-18 04:23:34 +00:00
understand the various file formats. Until then, you can play WH40K: Chaos Gate
in a WinXP VM, disconnected from the internet. It doesn't need 3D rendering!
WH40K.exe is the existing game engine, and WH40K_TD.exe is the map editor.
Allows things to be saved as .MAP or as .SMF ("Super Macro File").
2018-03-18 04:23:34 +00:00
## Building from source
2018-03-18 04:23:34 +00:00
I'm writing code in Go at the moment, so you'll need to have a Go runtime
installed on your system:
```
$ go version
2019-10-08 22:28:45 +01:00
go version go1.13 linux/amd64
2018-03-18 04:23:34 +00:00
```
2018-03-22 20:35:19 +00:00
In addition, you'll also need the following packages installed, at least in
Debian:
```
2019-10-08 22:28:45 +01:00
# apt install libx11-dev libxcursor-dev mesa-common-dev libxrandr-dev \
libxinerama-dev libgl1-mesa-dev libxi-dev mpv
2018-03-22 20:35:19 +00:00
```
2019-10-08 22:28:45 +01:00
You can then run `make all` in the source tree to get the binaries that are
present at hte moment.
2018-03-18 04:23:34 +00:00
They're not very interesting :D.
Place your WH40K: Chaos Gate installation in `./orig` to benefit from automatic
path defaults. Otherwise, point to it with `-game-path`
The `view-map` binary attempts to render a map, and is the current focus of
effort. Once I can render a whole map, including pre-placed characters (cultist
scum), things can start to get more interesting.
Current status: map tiles are rendered at correct offsets. Static objects (four
per map coordinate: floor, centre, left, and right) are rendered mostly fine,
although objects at each Z level don't *quite* stack correctly on top of each
other yet.
Characters and animations aren't touched at all yet. Rendering performance is
atrocious. No gameplay, no sound, 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.
2018-03-24 03:00:31 +00:00
To run:
```
$ make view-map
$ ./view-map -map orig/Maps/Chapter01.MAP -txt orig/Maps/Chapter01.TXT
```
Looks like this:
![](doc/formats/img/chapter01_rendered_2018-09-08.png)
Use the arrow keys to scroll around the map, the mouse wheel to zoom, and the
`1` - `7` keys to change Z level.
2019-10-08 22:28:45 +01:00
Dependency management uses `go mod`, so ensure you have at least Go 1.11.
2018-03-18 05:53:01 +00:00
2019-10-08 22:28:45 +01:00
There is the **start** of the menu / campaign flow in a `wh40k` binary:
```
$ make wh40k
$ ./wh40k
```
This plays the introductory video so far, and nothing else. I'm hopeful I can
render the main menu next.
2018-03-18 04:23:34 +00:00
## Miscellany
"Mission Setup" includes information about available squad types
From EquipDef.cpp Dumo: CEquipment we learn the following object types:
0. DELETED
1. WEAPON
2. GRENADE
3. MEDIPACK
4. SCANNER
5. GENESEED
6. CLIP
7. DOOR KEY
8. DOOR KEY
9. DOOR KEY
10. DOOR KEY
And we learn they can be "on"....
0. CHARACTER
1. VEHICLE
2. CANISTER
2018-12-31 00:57:19 +00:00
I'm starting to see some parallels with [this](https://github.com/shlainn/game-file-formats/wiki/)
in the data formats, and the timeline (1997) seems about right. Worth keeping an
eye on!