WadC
From DoomWiki.org
WadC | |
The WadC interface | |
Developer(s) | Wouter "Aardappel" van Oortmerssen, Jon Dowland |
---|---|
Initial release | 1.0 (2000-10, 24 years ago) |
Latest release | 3.1 (2022-06-27, 2 years ago) |
Development status | Active |
Written in | Java, C |
Target platform | Cross-platform (Java) |
License | GPLv2 |
Website | jmtd.net/wadc |
Source Repository
(Git) |
GitHub |
WadC, short for Wad Compiler, is a programming language and IDE designed for constructing Doom levels. Originally written by Wouter "Aardappel" van Oortmerssen, it is now maintained by Jon Dowland.
Compared to a traditional level editor, WadC may seem very awkward to use. WadC's strength is with structures that can be procedurally generated: a function can be written to create a pillar, for example, and then invoked any number of times to create many pillars.
Contents
History[edit]
- Version 1.0 was released in October 2000[1]
- Version 1.1 was released in July 2001 - The last version by Aardappel
- Version 1.2 was released in December 2011
- Version 2.0 was released on 22 September 2015
- Version 2.1 was released on 22 September 2016
- Version 2.2 was released on 13 November 2017
- Version 3.0 was released on 20 February 2019
- Version 3.1 was released on 27 June 2022
Interface[edit]
The IDE takes the form of a two pane window. In the left pane, WadC code can be written. A preview of the resulting level is displayed in the right pane. Messages and errors encountered when processing the WadC code are displayed in the right-hand side, below the map preview.
Recent releases of WadC included a command-line interface as an alternative to the IDE.
Language[edit]
The WadC language is a lazy, normal-order evaluated functional language with a strong resemblance to a macro language.
Example script[edit]
The following script generates a corridor of steps that descend under water.
/* * water.wl - a demonstration of the Boom water routines */ #"standard.h" #"water.h" main { waterinit_fwater(-16) movestep(0,64) -- out of the way of control sectors pushpop(movestep(32,32) thing) -- a ramp of rooms, descending in floor and ceiling height fori(0, 7, set("floorheight", sub(0, mul(i,24))) set("ceilheight", add(128, get("floorheight"))) water( box(get("floorheight"), get("ceilheight"), 200, 256, 256), get("floorheight"), get("ceilheight"), ) movestep(-256,0) ) }
Notable levels[edit]
Perhaps the best known WadC maps were created by Aardappel himself, including his submission, MAP32: Hexagon to Doomworld's 10 Sectors competition, and Crucified Dreams MAP12. The source code files for both maps are included in the WadC zip file as hexagon.wl and tulip.wl respectively.
- Jon Dowland's BRutal EXtinction International Tournament (Doomworld/idgames) was the first PWAD released using the vanilla conveyor trick. The source code is found in the WADSRC lump as vanilla_conveyor.h which can be used to build vanilla conveyors for other PWADs.
- Cybermind's The Last Sanctuary (Doomworld/idgames) utilizes WadC to simulate (compute) a day and night cycle system utilizing dozens of linedefs and sidedefs.
External links[edit]
- WadC home page
- Gallery of examples
- WadC repository hosted on GitHub
- language reference hosted on GitHub
- basic tutorial hosted on GitHub
- Wouter's original WadC page
References[edit]
- ↑ Jon Dowland. "WadC Release Notes." Retrieved 13 August 2020.