Boom consolidated many of the changes of earlier ports: removed limits, fixed bugs, added minor features, etc. It also standardized several extensions. For example, it used to be impossible to add new animated textures and switches because the texture names were hard-coded in the executable. Boom added lumps that allow a Wad creator to specify new switches and animated textures. It added friction, wind, and some other special effects. Dehacked patches are now read in text format at run time, and may be embedded in Wad files.
One of the most important extensions is generalized types. Boom allows, for example, a door that requires all six keys and is activated by shooting a switch. Sectors can be secret, have lighting effects, and cause damage all at the same time. This is accomplished by using the high (unused in Doom) bits of the linedef and sector type fields.
Libdoomwad supports Boom extensions fully. It understands the new Boom lump types and can work with them using C++ data structures. The format of each structure is documented fully right here in this online documentation.
If you want to understand this the hard way, you can download the source code and documentation from the Boom site.
Finally, PrBoom is the version of Boom developed after Boom was abandoned. It is currently in active (but slow) development. It boasts 100% Boom and Doom demo compatibility. This means it has all the new features, but can play back Doom demos, an important capability for the speed running sub-community: Doomed Speed Demos Archive, C O M P E T - N.
There is a wiki site for ZDoom containing detailed information about ZDoom editing, including how to write scripts.
There are a lot of details involved in adding OpenGL to Doom, since Doom is technically 2.5D and OpenGL is used for 3D. There are fundamental mathematical issues to deal with, but they are not important in the scope of this documentation. Suffice to say that these ports work, but they require some new map resources. Specifically, the BSP process that compiles the nodes is different than in normal Doom. Libdoomwad supports these new map resources 100%.
1.4.0