NOTE: This page is designed to use CSS styles - you may want to upgrade your browser.
Version 1.2.1 |
Just a minor update to fix a long standing bug in ZenNode.
|
Version 1.2.0 |
Another minor version update! Support for a number of RMB options has been added to the REJECT builder as well as a complete rewrite of the graph parsing logic. The RMB options supported include: BAND, BLIND, DISTANCE, EXCLUDE, INCLUDE, INVERT, LENGTH, and SAFE.
|
|
Version 1.1.0 |
ZenNode's got a minor version update! There are finally enough changes since v1.0 to warrant the change (it probably should have been bumped back around v1.0.6/v1.0.7 but hey...). ZenNode has switched to using floating point math in the BSP builder. This means ZenNode is slower than it has been (sorry), but it also means that it is more accurate. This change was necessary to avoid problems with newer OpenGL ports of DOOM that use floating point internally. If integer based routines can be found that retain the accuracy required, ZenNode will definitely use them again (faster is better), but until then, this is it.
|
|
Version 1.0.8 |
Bug fix release - Fixed bug that corrupted wad files.
|
Version 1.0.7 |
More changes to the REJECT builder. The simple distance based pruning done in v1.0.6 has been replaced with a slightly more sophisticated mechanism using graph theory and articulation points (see README.html for details). The result is that most levels now rebuild much faster than before. On a sample set of almost 400 levels, the average time to rebuild the REJECT structure has decreased by a factor of 3! There is a price to pay however. As with the distance check in v1.0.6, irregular sectors can cause the optimizations to build an incorrect REJECT structure. In the sample set that I tested, 28 levels were affected by this problem. If your level has special effects that might trip up the new REJECT builder, or if you just want to be sure you have a 100% accurate REJECT, you can now turn off all the optimizations ZenNode uses (with the new -rc- and -rg- options).
|
Version 1.0.6 |
Miscellaneous changes in the BSP builder - now up to 45% faster than v1.0.5! Added a new feature to the REJECT builder. Before building the REJECT map, ZenNode now creates a list of distances between every sector pair. It uses this list to prune the number of lines that have to be checked. If there is no walkable path between two sectors, they are marked as hidden up front, before the lines are checked. For maps that have more than one contiguous area (i.e. areas that can only be reached through a teleporter) this can speed up REJECT building considerably (on one particularly large map, I've seen a 500% speed increase!). The downside to this is that some special effects can confuse the REJECT builder. Special effects like 'Deep Water' will throw off the distance calculations, since the 'deep' sector(s) will appear to be isolated from all other sectors, and hence marked as hidden from everyone. If you have levels that use this effect, you should turn off this option (-rc-) for these levels.
|
Version 1.0.5 |
Bug fix release - More changes to the BSP builder (v1.0.3 didn't quite do it) to finally fix the known bugs.
|
Version 1.0.4 |
Bug fix release - Fixed bugs in the list/wad/level code to handle levels that are missing lumps that are generated by ZenNode.
|
Version 1.0.3 |
Bug fix release - Changed code in BSP builder to fix a long-standing bug that could occasionally result in an invalid BSP tree to be built.
|
Version 1.0.2 |
Bug fix release - Fixed a bugs introduced in v1.0.1 that stopped changes from being written to disk. Also added feature to stop special effects in the REJECT structure from being destroyed by accident.
|
Version 1.0.1 |
Bug fix release - Fixed several bugs related to handling larger and invalid levels.
|
Version 1.0 |
All of the source code is now included. The code to build the REJECT structure has been modified and cleaned up and should run ~36% faster than before. Added support for Linux.
|
*Version 0.99 |
The memory requirements for ZenNode have been reduced. In some cases, ZenNode now requires significantly less memory (up to 3M less!) to rebuild the BSP tree. A minor change was made to the REJECT algorithm to handle maps that are large (i.e.: maps that cover a large area).
|
*Version 0.98b |
|
Version 0.98a |
|
Version 0.98 |
ZenNode will now build a REJECT resource! Given a valid .wad file, ZenNode will conduct a complete set of line-of-sight (LOS) calculations for every sector in the map. There are several methods currently in use to create a REJECT resource: distance, # of intervening sectors, sampling, and 'perfect' testing. The first two base the results solely on distances without regards to solid walls and LOS but are relatively fast. The third tests several points along two linedefs and bases it's decision on the results. This results in a more accurate resource than the first two methods, but may miss a valid LOS if the test points aren't chosen correctly or too few are used. However, the more points that are used, the slower this method runs (it slows down exponentially as the number of test points increases). The fourth is the most accurate (and the one used in ZenNode). It attempts to look at all of the intervening solid lines and find a LOS if one exists. This exhaustive test can be slow at times, but as usual, things may speed up in the future... ;)
|
Version 0.97a |
IMPORTANT BUG FIX: ZenNode now handles the case where a fully qualified pathname to the input .WAD is specified on the command line for a .WAD file in the current directory. Previous versions would not handle this case properly and would create invalid .WAD files.
|
Version 0.97 |
You can now extract the maps to a new PWAD file. From the command line, use the -x switch to indicate that the specified levels are to be extracted to a separate PWAD file. This feature can be used to extract any map(s) without modifying them by turning off all the other options (i.e.: -b- -n-). The default settings for the -n2 option have been changed. The new values are: y1=1, y2=7, y3=0, y4=1. You can now set all your favorite command line settings in a configuration file. When ZenNode starts, it looks for a file called ZenNode.cfg. It will look in the current directory, then in the directory where the ZenNode.exe file is located. If one is found, it's contents override the normal default values. Then, actual command line parameters are checked. Improved support for special effects. By using a customization file, you can now add virtually any special effect to a .wad file. See custom.doc for a more detailed description of how to use the customization file. A sample .wad file has been included showing a variety of special effects and a custom file demonstrating how to get all the effects in the .wad to work. For more information regarding this .wad file and a description of how to create all the effects (and more) check out: spcial12.zip by Jens Hykkelbjerg it can be found at: ftp://ftp.cdrom.com/pub/doom/docs/editing/spcial12.zip
|
Version 0.96 |
Support for 'special effects' has been improved. Using the -nu switch, you can affect the creation of sub-sectors. What this means (for those of you who don't know/care what a sub-sector is) is that you can get most of the special effects to work in your .WAD file. By default all sub-sectors are unique. This works with most special effects (i.e.: deep-water, invisible stairs, ...). If the effect you're trying to achieve doesn't work, try turning off this feature with -nu-. This works for other effects, such as light striking a wall from no visible source (different sector). For those of you who think ZenNode is too slow <g>, there's a new method for partitioning (-n3) available for you! Both of the existing algorithms (-n1 & -n2) examine every valid segment to see if they should be used as the partition for a node. Examining every segment can slow things down, so if you really can't wait, if ZenNode is way too slow for you, try the new algorithm. It only looks at a small sub-set of segments instead (saving you valuable seconds that could be used testing your new .WAD). You can now 'customize' ZenNode's partitioning logic! The formula used to determine the merit of a particular SEG is now user adjustable. You can now set the four coefficients used in the calculation. If you don't like the way ZenNode picks lines, or you just want to experiment, now you can actually do something about it. The metric formula used is: metric = ( L * R ) / ( x1 * S / x2 ) - ( x3 * S + x4 ) * S; Where L, R, and S represent the # of SEGS to the left, right, and split by the candidate SEG. Checks are made to avoid division by zero. The programmable values x1, x2, x3, and x4 can be modified by setting the environment variables ZEN_X1, ZEN_X2, ZEN_X3, and ZEN_X4 respectively. The default settings are: x1=24, x2=5, x3=1, x4=25 (Older versions of ZenNode used the values x1=4 or 5, x2=1, x3=0, x4=0). Algorithm 2 also uses a similar set of variables, ZEN_Y1, ZEN_Y2, ZEN_Y3, and ZEN_Y4, where L, R, and S represent sectors rather than SEGS. The default settings are: y1=0, y2=1, y3=1, y4=5. Have fun.
|
Version 0.95 |
Support for Hexen has been added. This has been largely untested, but a quick test of the hexen.wad file seems to be working. So, as soon as you get your favorite WAD Editor to support Hexen, ZenNode will be ready! ZenNode now offers two methods of partitioning your level. The new method makes an attempt to minimize the average depth of the BSP tree. This should make it slightly faster for the DOOM engine to render a screen, since it has to traverse fewer NODES each time. The original method is still intact and attempts to minimize the number of splits made. Currently the new method has not been optimized for speed but it is still reasonably fast. BSPInfo has been included to allow you to gather information about how your node builders compare to each other. You can see if one favors certain characteristics over others, or just get an overall feel for their performance.
|
Version 0.94 |
|
Version 0.93 |
|
Version 0.92 |
|
Version 0.91 |
|
Version 0.90 |
|