-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Here's how I managed to experiment with this repo on an M1 MacBook:
git clone https://github.com/scottvr/wadzilla
cd wadzilla
curl -O "https://raw.githubusercontent.com/dabignerd/doom-wads/master/zips/Freedoom%20-%20Phase%201%20(v0.12.1).zip"
unzip "Freedoom%20-%20Phase%201%20(v0.12.1).zip"
pip install bs4
python wadzilla.py --basewad FREEDOOM1.WAD
brew install mercurial
hg clone https://foss.heptapod.net/zilf/zilf
cd zilf
brew install --cask dotnet-sdk
dotnet build Zilf.sln
cd ..
zilf/bin/Debug/net8.0/Zilf -c output.zil
# ...produces a mass of errors!
The Python script wadzilla.py generates an output file named output.zil. Problem is, despite the extension, that file definitely doesn't contain ZIL code! As of this writing, it starts with:
<ROOM 0 FLAT3/SFLR6_4>
FLOOR HEIGHT: 0, CEILING HEIGHT: 104
Floor: Unknown texture FLAT3
Ceiling: Unknown texture SFLR6_4
Walls:
- SKSNAKE2
- Right: STARGR1, Left: ASHWALL
- Right: SKSNAKE2
- Right: SKSNAKE2
- Right: SKSNAKE2
- Right: SKSNAKE2
Things:
Steve Meretzky's Learning ZIL shows a typical room description in actual ZIL:
<ROOM LIVING-ROOM (LOC ROOMS)
(DESC "Living Room")
(EAST TO KITCHEN)
(WEST TO STRANGE-PASSAGE IF CYCLOPS-FLED ELSE "The wooden door is nailed shut.")
(DOWN PER TRAP-DOOR-EXIT)
(ACTION LIVING ROOM-F)
(FLAGS RLANDBIT ONBIT SACREDBIT)
(GLOBAL STAIRS)
(THINGS <> NAILS NAILS-PSEUDO)>
So, output.zil bears no resemblance to ZIL at all. The ZILF compiler will immediately complain because the room's name is 0, which is not a Lisp atom; it needs to be something like ROOM-0 instead. And FLAT3/SFLR6_4 isn't Lisp syntax. And then there's a bunch of YAMLish stuff with hyphens and colons that's also clearly not ZIL. And there's no mention of exits from any room. And so on.
Your FAQ currently contains super misleading sentences like:
Although in theory it “works”, it does not create an entertaining experience as a game
You can generate a stand-alone ZIL file, or give my tool an existing ZIL file and tell it to throw a Doom teleporter disk on the floor, where you would then enter the Martian hell [...]
So can you play further than the first doom level?
At present you cannot create a ZIL file (only this weird sort of YAML-hybrid debug output), and you certainly cannot enter or play the first Doom level. What you have actually made here ("so far") is simply a way to dump WAD files from binary into structured text. It has nothing to do with ZIL. The only "experience" it provides ("so far") is that you can read the tool's output with your eyeballs. The output doesn't feed into anything else.
Now, the good news is that since the output isn't ZIL ("yet"), you have the option to give up on ZIL and make it output Inform6 code instead. ;) Inform6 code (see the Inform Designers' Manual) can be compiled straight to .z5 or .z8 via the very widely available inform6 package, thus widening your target audience from "people who can build C#/.NET code" to "people who can install a package."