Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Difference between revisions of "FTEQW File Formats"

From Quake Wiki

m (Echos moved page FTEQW Features and Supported File Formats to FTEQW File Formats: this page is for file formats only)
(No difference)

Revision as of 13:58, 18 September 2018

echos added a To-Do; this page is mostly complete, but needs more examples and tutorials.

This is a list of all the file formats that can be used by FTEQW and some of the other commonly used engines. The engines are: FTEQW, DarkPlaces, Quakespasm, and Quakespasm Spiked. Please contribute example files and tutorials.

Model and/or Animation

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake1 (.mdl) Y Y Y Y Echos: These became known as Alias models, even though that‘s not correct. John Carmack always called these Alias models, so the name stuck. none none
Quake2 (.md2) Y Y N N Swimmy when animating. Yuck. none none
Quake3 (.md3) Y Y N Y Echos: Support of md3 may be limited in some engines, such as tags and animations. none none
Inter-Quake Model (.iqm) Y Y N N Echos: The best choice for creating models & animations in FTE and DP. Skeletal animation support for 256 joints. Vertex animation and blendshapes are not supported, skeletal only. none none
Extended Inter-Quake Model (.vvm) Y N N N Superset of iqm models that adds additional info, allowing for animation events, separate hitmesh, geomsets, and region-specific feedback/damage. none none
DarkPlaces Model (.dpm) Y Y N N No framegroups/animations (just individual poses). none none
Unreal Interchange Model (.psk) Y Y N N Slow to load (although easy to export). the separate .psa files contain the animation data in an external file. none none
Zymotic Model (.zym) Y Y N N Only one bone influence per vertex. none none
MD5 Mesh (.md5mesh) Y N N N Has no animation data. none none
MD5 Anim (.md5anim) Y N N N Has no mesh data. none none
QuakeForge 16bit Alias (.???) Y N N N Echos: The Alias model format (Quake1 .mdl) with 16-bit vertices. This gives models more precision, the vertices will show up in-game positioned more accurately. none none
Half-Life (.mdl) Y N N N Boo Hiss. none none
Hexen2MP (.mdl) Y N N N Only used in the missionpack. none none
External Anim (.???) Y N N N Text format that allows extracting the animation data from numerous models, to combine with extracted mesh data. This allows you to use eg md5 models without using skeletal objects(csqc). none none
FTE Heightmap Map (.hmp) Y N N N Echos: This format is for creating terrains in FTE, can be used by mappers to make large sandbox-style game levels. Sections are streamed in from disk as required. Models and bsps can be embedded as desired. Entities are really messy right now. none none
Wavefront (.obj) N Y N N LH: DP can use .obj as a map if you provide a .ent file with it. You can also use it as a standard model in DP. none none
Alias Triangle (.tri) N N N N Echos: This is the real Alias model format. Obsolete, but old files exist. The original Quake1 models were converted from .tri to .mdl with the modelgen utility. Listed for informational purposes, no point to load it in engine. none none

Map Source File (load a .map without compiling it)

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake1 (.map) Y N N N Texture alignment+size is dependant upon correct texture sizes. Replacement textures will generally appear zoomed in/wrong - texture wads are expected to follow halflife rules (ie: path is ignored, the wad must be id1/*.wad or moddir/*.wad). Don't expect good performance, especially with rtlights. none none
Quake2 (.map)  ? N N N none none none
Quake3 (.map) Y N N N FTE will display patches only using their control points. none none
Quake3 Brush-Plane (.map) N N N N An alternative way of expressing texture coords. none none
Half-Life (.map) Y N N N valve's 220 format allows more texture coords to be expressed more precisely. none none

Map Data File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake1 (.bsp) Y Y Y Y BSP29 Quake retail-release. none none
Hexen2 (.bsp) Y N N Y Expect palette+hull issues when running in quake. none none
Quake1 2PSB (.bsp) Y Y N N This format is now obsolete, don‘t use it. BSP2 replaced it. none none
Quake1 BSP2 (.bsp) Y Y N N All 16bit limits increased to 32bit (with the 16bit coords becoming floats). none none
Quake2 (.bsp) Y Y N N Yellow. none none
Quake3 (.bsp) Y Y N N So curvacious! none none
Half-Life (.bsp) Y Y N N Toolchain license issues. none none
Qfusion (.bsp) Y N N N none none none
SOF2 (.bsp) Y N N N Raven rbsp: Raven changed two lumps in the q3 format in SoF2/JK2/JA (brush sides and draw surfaces) none none
JK2 (.bsp) Y N N N Raven rbsp: Raven changed two lumps in the q3 format in SoF2/JK2/JA (brush sides and draw surfaces) none none
JA (.bsp) Y N N N Raven rbsp: Raven changed two lumps in the q3 format in SoF2/JK2/JA (brush sides and draw surfaces) none none
Quake1 Prerelease (.bsp) Y N N N BSP28 Quake pre-release. none none
Quake1 Alpha/Pre-Alpha (.bsp) N N N N BSP27 and earlier. Quake alpha-release. none none
Quake Live (.bsp) N Y N N Spike: This is essentially a Q3 BSP w/ an additional lump for advertisements. none none
Wavefront (.obj) N Y N N LH: DP can use .obj as a map if you provide a .ent file with it. You can also use it as a standard model in DP. none none
BSPX lump: RGBLIGHTING (.bsp) Y N N Y Allows embedding rgb lighting directly into a q1 bsp without needing an external .lit file. Compile with ericw's light util using the -bspxlit argument. Also supported by ezquake, so be sure to use this for any quakeworld-centric map as the lighting will survive being auto-downloaded. none none
BSPX lump: LIGHTING_E5BGR9 (.bsp) Y N N N Shared-exponent floats are slightly larger but allow for more precision as well as significantly more overbrighting. none none
BSPX lump: LIGHTINGDIR (.bsp) Y N N N Equivelent to a .lux file, but embedded into the bsp itself. Compile with ericw's light util using the -bspxlux argument. none none
BSPX lump: LMSHIFT, LMOFFSET, LMSTYLE (.bsp) Y N N Y Allows per-surface lightmap scaling, for higher resolution lightmaps. This is why .lit2 was basically abandoned. none none
BSPX lump: VERTEXNORMALS (.bsp) Y N N N Allows rtlights+specular lighting effects to respect 'phong'/edge smoothing. ericw stripped support for this from his tool. none none
BSPX lump: BRUSHLIST (.bsp) Y N N N Allows an engine to support collisions using arbitrary sizes. Compile with ericw's qbsp using the -wrbrushes argument. none none
BSPX lump: BRUSHLIST (.bsp) Y N N N Allows an engine to support collisions using arbitrary sizes. Compile with ericw's qbsp using the -wrbrushes argument. none none


Map Misc. Data File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake1 external lightmap (.lit) Y Y Y Y This is a hack to allow colored lighting in Quake1 maps. none none
Entity Replacement (.ent) Y Y Y Y LH: DP can use .obj as a map if you provide a .ent file with it. Can be used to fix z-fighting bugs, fix entities in walls, remove quad in small deathmatch maps, etc. none none
LightDirectionMap (.dlit) Y Y N N LH: allows bumpmapping with lightmaps. Spike: .lux and .dlit are the same thing. Rename the file extension if you want. none none
DeluxeMap (.lux) Y N N N Echos: DP doesn‘t load .lux so use .dlit the file format is identical. none none
RealtimeLights (.rtlights) Y Y N N Spike: FTE supports spotlight rtlights and spinning static lights, DP doesn't, which may make format conversions necessary. You can use the spinning light w/ a cubeMap to make it fancy. none none

Texture File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake's gfx.wad (.wad) Y Y Y Y none none none
Lump (.lmp) Y Y Y Y none none none
Targa (.tga) Y Y Y Y none none none
Image (.pcx) Y Y Y Y none none none
Image (.png) Y Y N Y none none none
Image (.jpg) Y Y N Y none none none
Quake2 Wall Texture (.wal) Y Y N N none none none
Texture Wad (.wad) Y Y N N Required for halflife bsp support. none none
Image (.dds) Y Y N N Spike: FTE supports this for bc1-7/dxt stuff. Allows for properly compressed textures for lower gpu memory usage. May have issues with npot texture mip sizes in opengl engines. none none
Image (.ktx) Y N N N Spike: FTE supports this for bc1-7/dxt/etc1/etc2/hdr. Allows for properly compressed textures even with npot textures for lower gpu memory/bandwidth use. none none

Sprite File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake1 Sprite (.spr) Y Y Y Y QS is still buggy with regard to framegroups (fixed in QSS+FTE+DP). Quake defines more types of sprite than the number of sprites it actually shipped with. none none
Quake2 Sprite (.sp2) Y Y N N none none none
Quake1 Sprite 32bit (.spr32) Y Y N Y none none none
Half-Life Sprite (.spr) Y Y N N none none none

Particle File

Format Ext FTE DP QS QSS Notes Examples Tutorials
FTE Particles (.cfg) Y N N Y Language spec: https://sourceforge.net/p/fteqw/code/HEAD/tree/trunk/specs/particles.txt https://sourceforge.net/p/fteqw/code/HEAD/tree/trunk/engine/partcfgs/ none
DarkPlaces Particles (.txt) Y Y N Y Echos: It‘s easy to convert a DarkPlaces particleinfo.txt file to be used with FTE, but you must do it manually at the console. FTE and QSS can directly use these only when explcitly configured to do so - either r_particledesc effectinfo or a mod that explicitly calls particleeffectnum("effectinfo.something") none none

Shader File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake3 (.shader) Y Y N N Partial support. Not using the ftee_program term can result in lower performance in FTE - especially for skeletal models. Realtime lighting breaks these shaders in FTE. DP supports single stage shaders only. Many shaders from Q3 will not work in DP due to the multiple stages, and shaders designed only for DP are malformed as far as Q3+FTE are concerned (ie: expect weirdness). none none
GLSL (.???) Y N N N Echos: FTE allows you to create shaders with GLSL. DP only uses GLSL internally. Use Q3 bsp & shader for compat w/ both. none none

Script File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Quake Config (.cfg) Y Y Y Y none none none

Sound File

Format Ext FTE DP QS QSS Notes Examples Tutorials
CD Audio (none) Y Y N N SDL2 engines no longer support cd audio. All four engines support fake tracks, but don't depend on the cd command still existing if you want to change track. Currently FTE and DP still do have the cd command, while QS & QSS don't. none none
Waveform (.wav) Y Y Y Y DP+FTE support stereo wav files, QSS will average the channels and load game sounds as mono. FTE supports float wavs, the others do not. none none
Ogg Vorbis (.ogg) Y Y Y Y QS only supports oggs for music, not game sounds. none none
Ogg Opus (.opus) N N Y Y QS only supports opus for music, not game sounds. FTE can load this audio formats via its ffmpeg plugin (and pretty much any other too). none none
MPEG 2 layer 3 (.mp3) Win N Y Y Engines will load id1/music/*.ogg in preference to mod/music/*.mp3, so this is only useful for users ripping their own fake-track audio. QS only supports mp3s for music, not game sounds. none none

Video File

Format Ext FTE DP QS QSS Notes Examples Tutorials
Video (.avi) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.mpg) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.mpeg) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.mp4) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.mpeg4) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.mjpeg) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.mkv) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.webm) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.bik) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Quake3 Video (.roq) Y Y N N Directly supported in FTE. LH: supported w/ libavw also known as ffmpeg. none none
Quake2 Video (.cin) Y Y N N Directly supported in FTE. LH: supported w/ libavw also known as ffmpeg. none none
Video (.flv) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.wmv) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.ogv) Y Y N N LH: supported w/ libavw also known as ffmpeg. none none
Video (.dpv) N Y N N LH: a weird little format I made ages ago for a commercial project that needed ultra-low CPU usage. none none
Video (.jam) N Y N N LH: videos from the game "Blood Omen: Legacy of Cain" for use in the DP port "Blood Omnicide: Legacy of Cain." Requires an original playstation game disc. none none