2018-03-22 20:17:02 +00:00
|
|
|
# Ordoor
|
2018-02-24 13:50:35 +00:00
|
|
|
|
2018-03-22 20:17:02 +00:00
|
|
|
Portmanteau of Order Door, a remake project for Warhammer 40,000: Chaos Gate,
|
|
|
|
the game from 1998.
|
2018-02-24 13:50:35 +00:00
|
|
|
|
|
|
|
**You must have a copy of the original game data to use this project**
|
|
|
|
|
2018-03-17 04:16:14 +00:00
|
|
|
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
|
2018-03-17 04:16:14 +00:00
|
|
|
in a WinXP VM, disconnected from the internet. It doesn't need 3D rendering!
|
|
|
|
|
2018-03-22 20:17:02 +00:00
|
|
|
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-17 04:16:14 +00:00
|
|
|
|
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
|
|
|
|
go version go1.10 linux/amd64
|
|
|
|
```
|
|
|
|
|
2018-03-22 20:35:19 +00:00
|
|
|
In addition, you'll also need the following packages installed, at least in
|
|
|
|
Debian:
|
|
|
|
|
|
|
|
```
|
|
|
|
apt-get install libx11-dev libxcursor-dev mesa-common-dev libxrandr-dev \
|
|
|
|
libxinerama-dev libgl1-mesa-dev libxi-dev
|
|
|
|
```
|
|
|
|
|
2018-03-22 20:31:10 +00:00
|
|
|
Clone the source tree to `$GOPATH/src/ur.gs/ordoor`. You can then run
|
2018-03-22 20:17:02 +00:00
|
|
|
`make all` to get the binaries that exist at present.
|
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`
|
|
|
|
|
2018-03-22 20:17:02 +00:00
|
|
|
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.
|
|
|
|
|
2018-09-08 02:00:03 +01:00
|
|
|
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.
|
2018-09-07 20:28:33 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
2018-03-22 20:17:02 +00:00
|
|
|
To run:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ make view-map
|
2018-09-07 20:28:33 +01:00
|
|
|
$ ./view-map -map orig/Maps/Chapter01.MAP -txt orig/Maps/Chapter01.TXT
|
2018-03-22 20:17:02 +00:00
|
|
|
```
|
|
|
|
|
2018-09-08 02:00:03 +01:00
|
|
|
Looks like this:
|
|
|
|
|
|
|
|

|
|
|
|
|
2018-03-22 20:17:02 +00:00
|
|
|
Use the arrow keys to scroll around the map, the mouse wheel to zoom, and the
|
|
|
|
`1` - `7` keys to change Z level.
|
|
|
|
|
2018-03-18 05:53:01 +00:00
|
|
|
Dependency management uses `govendor`. Unless you're contributing code you
|
|
|
|
shouldn't have to worry about it.
|
|
|
|
|
|
|
|
`dep` bug https://github.com/golang/dep/issues/1725 means I can't use it.
|
2018-03-18 04:23:34 +00:00
|
|
|
|
2018-03-22 20:17:02 +00:00
|
|
|
## Miscellany
|
2018-03-17 04:16:14 +00:00
|
|
|
|
|
|
|
"Mission Setup" includes information about available squad types
|
2018-02-24 13:50:35 +00:00
|
|
|
|
|
|
|
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!
|