Utilities
When modding EDuke32, there are some files you will need to edit certain aspects of the game. Here we will cover the needed programs for each aspect.
Group File (.GRP) Editing
.GRP files are basically like a zip file, they hold all of the relevant files for the game, and keep your folders tidy. There are numerous programs available for use, even some crude extraction and grouping programs came on the Duke3D disc in the goodies directory: "KGROUP" and "KEXTRACT".
Both programs are also present in the build directoy of EDuke32 source code. To build it, just do :
cd build && make utils
We can find a program called grpextract here. To build it, just do :
gcc grpextract.c -o grpextract
While lacking a GUI, they get the job done. There are other programs, which can view art files inside the .GRP, and listen to sound bytes. Other programs include, "Group File Studio" and Roma Loom's "GRPViewer"
Control File (.CON) Editing
.CON files hold most of the important code for the game. To edit the con files, you actually dont need any special programs. Just open the .CON files in your favorite text editor, although Emerald Editor AKA Crimson Editor is recommended as being one of the best. Special editing programs for writing CON code do exist, though all of them so far have only been developed for use with 1.5 Coding. Therefor, they will cause problems if you try to use Eduke32 exclusive parameters.
Art File (.ART) Editing
.ART files hold all the raw art data, in a tidy manner. Once again, there are numerous programs available which can edit the .ART files. The most commonly used program is the one that came with Duke Nukem 3d: Editart. Editart still works on most Windows XP computers. Other programs include, "BastART" and "DukeRES"
There are 2 command line utilities called art2tga and tga2art that allow to manage the art files, available here. To build it, just do :
cd rebuild && make
Map (.MAP) Editing
.MAP files are your levels. There arent too many widely used .MAP editors, the most commonly used and recommended one is Mapster32, which comes with Eduke32. The other commonly used one is Jonof's BUILD, which comes with JFDuke3D. Originally, BUILD from the /Goodies directory on the Duke3D disc was used. Other mapping utilities were made, but are now obsolete, these include "Mapster" and "Makemap".
Palette (.DAT) Editing
The PALETTE.DAT and LOOKUP.DAT files hold the palettes, palettes swaps, and shade tables for the game. This is one of the most loathed and untouched editable features of Duke3D. While incredibly difficult, it can come to good effect. One of the few .PAL editors is the "Build Customization Suite".
The program transpal allow to modify a palette file and can be found in the build directoy of EDuke32 source code (see Group File (.GRP) Editing section).
Animation (.ANM) Editing
.ANM files hold raw .PCX files, which are added together and then played as an animation. In the game these are the animations you see at the end of a boss fight. The sounds for the animations are not included in the .ANM. One of the few .ANM compiling programs is "Animation File Maker"
FFmpeg, since version 0.6, can also decode and play anm files.
Some examples :
Play the 'foo' animation file :
ffplay foo.anm
Extract all frames from the 'foo' animation file into the PNG format (works also with JPG, PCX, GIF, BMP ...)
ffmpeg -i foo.anm bar%03d.png
Encode the 'foo' animation file into a MPEG-4 format :
ffmpeg -i foo.anm bar.avi
Encode the 'foo' animation file into a WebM format :
ffmpeg -i foo.anm -threads 2 bar.webm
See 'ffmpeg -codecs' for all available codecs.
It's not possible, actually to encode into anm format with FFmpeg.
File container (.IVF) Editing
It's an alternative to the ANM format, it transports a VP8 video stream, same used in the WebM format but without the Vorbis audio stream.
To extract VP8 video tracks from a WebM file into a IVF file, we can use the program mkvextract, part of MKVToolnix, available here.
eg: mkvextract tracks <filename>.webm 1:<filename>.ivf
To play it in-game now we just have to place it in a search path or in a custom mod directory and give it the same name as the .anm file that we want to replace (eg logo.ivf for the animation logo when the game starts).
Tools for 3D modeling
Blender, open source 3D modeler can be used for UV unwrapping, texturing, rigging, water simulations, skinning, animating, rendering, particle and other simulations.
Import/Export MD3 scripts for Blender can be found here or here.
Misfit Model 3D, open source and OpenGL-based 3D model editor that works with triangle-based models (on Debian based distros, package is called mm3d).
G3DViewer, open source and OpenGL models viewer, support formats 3D Studio, Quake 2, Quake 3 and many others.
Gmax, video game modeling tool (Windows, freeware).
MD3 exporter plugin for Gmax can be found here.
3DS Max, 3D modeler (Windows, commercial).
MD3 export script for 3DS Max v4.2/v5 and v6.
Milkshape 3D, 3D modeler (Windows, commercial).