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

Difference between revisions of "QSB"

From Quake Wiki

(First QSB draft)
Line 1: Line 1:
Quake Standards Base (under construction)
+
Quake Standards Base is a project which aims to raise the bar of basic Quake modding and mapping. The goal is to push engine devs to support features which are very specific to making mods and maps for Quake (such as increased map and entity limits, external textures and new builtins), rather than user-features (such as a better server browser in the menu, nicer particle effects and an FPS counter).
  
=== TODO ===
+
'''The spec is still a work in progress!'''
Finalize spec
 
  
=== EXTENSIONS ===
+
=== Todo ===
QSB will support the [[checkextension]] system, to bring engines which don't already support it up to speed, hence all features will be listed as either existing extensions or new ones will be suggested.
+
- Discuss the current suggested extensions listed below
  
Extensions are listed with descriptions within (sometimes stolen from their respective authors), and a description next to it if the extension differs from the requirement of the standard.
+
- Should QSB care about network protocols? What about QuakeWorld? Restrict first version of QSB to the singleplayer experience?
  
Extensions which make the engine incompatible with the default Quake protocol are noted with a warning, as this is still an ongoing discussion at the time of writing.
+
=== Discussion ===
 +
[http://forums.inside3d.com/viewtopic.php?t=1903 Suggestions for features on I3D]
  
 +
[http://forums.inside3d.com/viewtopic.php?t=1953 Discuss existing features on I3D]
  
[[DP_CL_LOADSKY]] pcx with quake palette minimum for software engines, no limit on texture size and texture sizes do not need to match within the same skybox, loads from $game\env\
+
=== Increased Engine Limits ===
 +
QSB will require some increased limits to bring engines to a more modern level of capability. This is still an ongoing discussion, as some of the limits are incompatible with the default Quake network protocol.
  
[[DP_GFX_SKYBOX]] pcx with quake palette minimum for software engines, no limit on texture size and texture sizes do not need to match within the same skybox, loads from $game\env\
+
See [[Engine Limits]] for suggested QSB limits.
  
[[DP_GFX_EXTERNALTEXTURES]] required for engines with hardware accelerated rendering, optional for software, attempt to load tga before pcx, pcx before lmp, lmp before wad, loading _diffuse _gloss _norm _bump and _luma are optional
+
=== Supported Extensions ===
 +
QSB will support the [[checkextension]] system, to bring engines which don't already support it up to speed, hence all features will be listed as either existing extensions or new ones will be suggested.
  
[[DP_LITSUPPORT]] required for engines with hardware accelerated rendering
+
Extensions are listed with descriptions within (sometimes stolen from their respective authors), and a description next to it if the extension differs from the requirement of the standard.
 
 
[[DP_BUTTONUSE]]
 
 
 
[[DP_CON_SET]]
 
 
 
[[DP_CON_SETA]]
 
 
 
[[DP_EF_ADDITIVE]] required for engines with hardware accelerated rendering '''(ALTERS NETWORK PROTOCOL)'''
 
 
 
[[DP_EF_FULLBRIGHT]] this includes support for fullbrights on textures in maps and on model skins '''(ALTERS NETWORK PROTOCOL)'''
 
 
 
[[DP_EF_NODEPTHTEST]]
 
 
 
[[DP_EF_NODRAW]]
 
 
 
[[DP_ENT_ALPHA]] full range required for engines with hardware accelerated rendering, software engines round off to the nearest of 25%, 50% and 75% alpha, based on a lookup table. For hardware accelerated engines this includes support for textures with alpha channels on bmodels and model skins. '''(ALTERS NETWORK PROTOCOL)'''
 
 
 
[[DP_ENT_SCALE]] '''(ALTERS NETWORK PROTOCOL)'''
 
 
 
[[DP_ENT_VIEWMODEL]]
 
 
 
[[DP_ENT_EXTERIORMODELTOCLIENT]]
 
 
 
[[DP_INPUTBUTTONS]]
 
 
 
[[DP_MONSTERWALK]] (this one is a maybe, because it doesn't make a lot of sense without SV_PlayerPhysics)
 
 
 
[[DP_MOVETYPEBOUNCEMISSILE]]
 
 
 
[[DP_MOVETYPEFOLLOW]]
 
 
 
[[DP_QC_CHANGEPITCH]]
 
 
 
[[DP_QC_CVAR_STRING]]
 
 
 
[[DP_QC_FINDFLAGS]]
 
 
 
[[DP_QC_FINDFLOAT]] (note, includes findentity)
 
 
 
[[DP_QC_MINMAXBOUND]]
 
 
 
[[DP_QC_UNLIMITEDTEMPSTRINGS]]
 
 
 
[[DP_QC_RANDOMVEC]]
 
 
 
[[DP_QC_TRACEBOX]]
 
 
 
[[DP_QC_TRACETOSS]] (it seems odd to me that this one needs an existing entity to base on, why?)
 
 
 
[[DP_QC_TRACE_MOVETYPE_WORLDONLY]]
 
 
 
[[DP_QC_VECTOANGLES_WITH_ROLL]]
 
 
 
[[DP_SND_DIRECTIONLESSATTNNONE]]
 
 
 
[[DP_SND_FAKETRACKS]] (is this useful without OGG Vorbis or mp3 support?)
 
 
 
[[DP_SOLIDCORPSE]]
 
 
 
[[DP_SV_DRAWONLYTOCLIENT]]
 
 
 
[[DP_SV_ENTITYCONTENTSTRANSITION]]
 
 
 
[[DP_SV_MOVETYPESTEP_LANDEVENT]]
 
 
 
[[DP_SV_POINTSOUND]]
 
 
 
[[DP_SV_NODRAWTOCLIENT]]
 
 
 
[[DP_SV_PRECACHEANYTIME]]
 
 
 
[[DP_SV_ROTATINGBMODEL]]
 
 
 
[[DP_TE_STANDARDEFFECTBUILTINS]]/[[FTE_TE_STANDARDEFFECTBUILTINS]] (depending on type of engine)
 
 
 
[[DP_VIEWZOOM]] '''(ALTERS NETWORK PROTOCOL)''' (can be implemented as a stat to avoid altering network protocol)
 
 
 
[[FRIK_FILE]] the DarkPlaces type, reading inside $game and $game/configs/ is prohibited, writing is restricted to $game/data/
 
 
 
[[KRIMZON_SV_PARSECLIENTCOMMAND]]
 
  
[[FTE_QC_CHECKPVS]]
+
Extensions which make the engine incompatible with the default Quake network protocol are noted with a warning, as this is still an ongoing discussion at the time of writing.
  
[[FTE_STRINGS]] (this one's a maybe, is it overkill?)
+
{| class="wikitable" border="1" style="text-align: center; width: auto;"
 +
|-
 +
! [[DP_CL_LOADSKY]]
 +
| pcx with quake palette minimum for software engines, no limit on texture size and texture sizes do not need to match within the same skybox, loads from $game\env\
 +
|-
 +
! [[DP_GFX_SKYBOX]]
 +
| pcx with quake palette minimum for software engines, no limit on texture size and texture sizes do not need to match within the same skybox, loads from $game\env\
 +
|-
 +
! [[DP_GFX_EXTERNALTEXTURES]]
 +
| required for engines with hardware accelerated rendering, optional for software, attempt to load tga before pcx, pcx before lmp, lmp before wad, loading _diffuse _gloss _norm _bump and _luma are optional
 +
|-
 +
! [[DP_LITSUPPORT]]
 +
| required for engines with hardware accelerated rendering
 +
|-
 +
! [[DP_BUTTONUSE]]
 +
|
 +
|-
 +
! [[DP_CON_SET]]
 +
|
 +
|-
 +
! [[DP_CON_SETA]]
 +
|
 +
|-
 +
! [[DP_EF_ADDITIVE]]
 +
| required for engines with hardware accelerated rendering '''(ALTERS NETWORK PROTOCOL)'''
 +
|-
 +
! [[DP_EF_FULLBRIGHT]]
 +
| this includes support for fullbrights on textures in maps and on model skins '''(ALTERS NETWORK PROTOCOL)'''
 +
|-
 +
! [[DP_EF_NODEPTHTEST]]
 +
|
 +
|-
 +
! [[DP_EF_NODRAW]]
 +
|
 +
|-
 +
! [[DP_ENT_ALPHA]]
 +
| full range required for engines with hardware accelerated rendering, software engines round off to the nearest of 25%, 50% and 75% alpha, based on a lookup table. For hardware accelerated engines this includes support for textures with alpha channels on bmodels and model skins. '''(ALTERS NETWORK PROTOCOL)'''
 +
|-
 +
! [[DP_ENT_SCALE]]
 +
| '''(ALTERS NETWORK PROTOCOL)'''
 +
|-
 +
! [[DP_ENT_VIEWMODEL]]
 +
|
 +
|-
 +
! [[DP_ENT_EXTERIORMODELTOCLIENT]]
 +
|
 +
|-
 +
! [[DP_INPUTBUTTONS]]
 +
|
 +
|-
 +
! [[DP_MONSTERWALK]]
 +
| (this one is a maybe, because it doesn't make a lot of sense without SV_PlayerPhysics)
 +
|-
 +
! [[DP_MOVETYPEBOUNCEMISSILE]]
 +
|
 +
|-
 +
! [[DP_MOVETYPEFOLLOW]]
 +
|
 +
|-
 +
! [[DP_QC_CHANGEPITCH]]
 +
|
 +
|-
 +
! [[DP_QC_CVAR_STRING]]
 +
|
 +
|-
 +
! [[DP_QC_FINDFLAGS]]
 +
|
 +
|-
 +
! [[DP_QC_FINDFLOAT]]
 +
| (note, includes findentity)
 +
|-
 +
! [[DP_QC_MINMAXBOUND]]
 +
|
 +
|-
 +
! [[DP_QC_UNLIMITEDTEMPSTRINGS]]
 +
|
 +
|-
 +
! [[DP_QC_RANDOMVEC]]
 +
|
 +
|-
 +
! [[DP_QC_TRACEBOX]]
 +
|
 +
|-
 +
! [[DP_QC_TRACETOSS]]
 +
| (it seems odd to me that this one needs an existing entity to base on, why?)
 +
|-
 +
! [[DP_QC_TRACE_MOVETYPE_WORLDONLY]]
 +
|
 +
|-
 +
! [[DP_QC_VECTOANGLES_WITH_ROLL]]
 +
|
 +
|-
 +
! [[DP_SND_DIRECTIONLESSATTNNONE]]
 +
|
 +
|-
 +
! [[DP_SND_FAKETRACKS]]
 +
| (is this useful without OGG Vorbis or mp3 support?)
 +
|-
 +
! [[DP_SOLIDCORPSE]]
 +
|
 +
|-
 +
! [[DP_SV_DRAWONLYTOCLIENT]]
 +
|
 +
|-
 +
! [[DP_SV_ENTITYCONTENTSTRANSITION]]
 +
|
 +
|-
 +
! [[DP_SV_MOVETYPESTEP_LANDEVENT]]
 +
|
 +
|-
 +
! [[DP_SV_POINTSOUND]]
 +
|
 +
|-
 +
! [[DP_SV_NODRAWTOCLIENT]]
 +
|
 +
|-
 +
! [[DP_SV_PRECACHEANYTIME]]
 +
|
 +
|-
 +
! [[DP_SV_ROTATINGBMODEL]]
 +
|
 +
|-
 +
! [[DP_TE_STANDARDEFFECTBUILTINS]]
  
[[NEH_RESTOREGAME]]
+
[[FTE_TE_STANDARDEFFECTBUILTINS]]
 +
| (depending on type of engine)
 +
|-
 +
! [[DP_VIEWZOOM]]
 +
| '''(ALTERS NETWORK PROTOCOL)''' (can be implemented as a stat to avoid altering network protocol)
 +
|-
 +
! [[FRIK_FILE]]
 +
| the DarkPlaces type, reading inside $game and $game/configs/ is prohibited, writing is restricted to $game/data/
 +
|-
 +
! [[KRIMZON_SV_PARSECLIENTCOMMAND]]
 +
|
 +
|-
 +
! [[FTE_QC_CHECKPVS]]
 +
|
 +
|-
 +
! [[FTE_STRINGS]]
 +
| (this one's a maybe, is it overkill?)
 +
|-
 +
! [[NEH_RESTOREGAME]]
 +
|
 +
|}
  
==== New suggested extensions ====
+
==== New Suggested Extensions ====
 
[[QSB_GAMEPLAYFIXES]]
 
[[QSB_GAMEPLAYFIXES]]
  
Line 115: Line 180:
 
[[QSB_MOVINGSOUNDS]]
 
[[QSB_MOVINGSOUNDS]]
  
=== BUGFIXES ===
+
=== Bugfixes ===
 
- render liquid textures of other sizes than 64x64 correctly
 
- render liquid textures of other sizes than 64x64 correctly
  

Revision as of 20:20, 6 February 2010

Quake Standards Base is a project which aims to raise the bar of basic Quake modding and mapping. The goal is to push engine devs to support features which are very specific to making mods and maps for Quake (such as increased map and entity limits, external textures and new builtins), rather than user-features (such as a better server browser in the menu, nicer particle effects and an FPS counter).

The spec is still a work in progress!

Todo

- Discuss the current suggested extensions listed below

- Should QSB care about network protocols? What about QuakeWorld? Restrict first version of QSB to the singleplayer experience?

Discussion

Suggestions for features on I3D

Discuss existing features on I3D

Increased Engine Limits

QSB will require some increased limits to bring engines to a more modern level of capability. This is still an ongoing discussion, as some of the limits are incompatible with the default Quake network protocol.

See Engine Limits for suggested QSB limits.

Supported Extensions

QSB will support the checkextension system, to bring engines which don't already support it up to speed, hence all features will be listed as either existing extensions or new ones will be suggested.

Extensions are listed with descriptions within (sometimes stolen from their respective authors), and a description next to it if the extension differs from the requirement of the standard.

Extensions which make the engine incompatible with the default Quake network protocol are noted with a warning, as this is still an ongoing discussion at the time of writing.

DP_CL_LOADSKY pcx with quake palette minimum for software engines, no limit on texture size and texture sizes do not need to match within the same skybox, loads from $game\env\
DP_GFX_SKYBOX pcx with quake palette minimum for software engines, no limit on texture size and texture sizes do not need to match within the same skybox, loads from $game\env\
DP_GFX_EXTERNALTEXTURES required for engines with hardware accelerated rendering, optional for software, attempt to load tga before pcx, pcx before lmp, lmp before wad, loading _diffuse _gloss _norm _bump and _luma are optional
DP_LITSUPPORT required for engines with hardware accelerated rendering
DP_BUTTONUSE
DP_CON_SET
DP_CON_SETA
DP_EF_ADDITIVE required for engines with hardware accelerated rendering (ALTERS NETWORK PROTOCOL)
DP_EF_FULLBRIGHT this includes support for fullbrights on textures in maps and on model skins (ALTERS NETWORK PROTOCOL)
DP_EF_NODEPTHTEST
DP_EF_NODRAW
DP_ENT_ALPHA full range required for engines with hardware accelerated rendering, software engines round off to the nearest of 25%, 50% and 75% alpha, based on a lookup table. For hardware accelerated engines this includes support for textures with alpha channels on bmodels and model skins. (ALTERS NETWORK PROTOCOL)
DP_ENT_SCALE (ALTERS NETWORK PROTOCOL)
DP_ENT_VIEWMODEL
DP_ENT_EXTERIORMODELTOCLIENT
DP_INPUTBUTTONS
DP_MONSTERWALK (this one is a maybe, because it doesn't make a lot of sense without SV_PlayerPhysics)
DP_MOVETYPEBOUNCEMISSILE
DP_MOVETYPEFOLLOW
DP_QC_CHANGEPITCH
DP_QC_CVAR_STRING
DP_QC_FINDFLAGS
DP_QC_FINDFLOAT (note, includes findentity)
DP_QC_MINMAXBOUND
DP_QC_UNLIMITEDTEMPSTRINGS
DP_QC_RANDOMVEC
DP_QC_TRACEBOX
DP_QC_TRACETOSS (it seems odd to me that this one needs an existing entity to base on, why?)
DP_QC_TRACE_MOVETYPE_WORLDONLY
DP_QC_VECTOANGLES_WITH_ROLL
DP_SND_DIRECTIONLESSATTNNONE
DP_SND_FAKETRACKS (is this useful without OGG Vorbis or mp3 support?)
DP_SOLIDCORPSE
DP_SV_DRAWONLYTOCLIENT
DP_SV_ENTITYCONTENTSTRANSITION
DP_SV_MOVETYPESTEP_LANDEVENT
DP_SV_POINTSOUND
DP_SV_NODRAWTOCLIENT
DP_SV_PRECACHEANYTIME
DP_SV_ROTATINGBMODEL
DP_TE_STANDARDEFFECTBUILTINS

FTE_TE_STANDARDEFFECTBUILTINS

(depending on type of engine)
DP_VIEWZOOM (ALTERS NETWORK PROTOCOL) (can be implemented as a stat to avoid altering network protocol)
FRIK_FILE the DarkPlaces type, reading inside $game and $game/configs/ is prohibited, writing is restricted to $game/data/
KRIMZON_SV_PARSECLIENTCOMMAND
FTE_QC_CHECKPVS
FTE_STRINGS (this one's a maybe, is it overkill?)
NEH_RESTOREGAME

New Suggested Extensions

QSB_GAMEPLAYFIXES

QSB_FOG

QSB_MULTICONTENT

QSB_MOVINGSOUNDS

Bugfixes

- render liquid textures of other sizes than 64x64 correctly

- fix rendering of models with large bounding-boxes disappearing at edges of screen

See Also