Skip to content

Heavy Metal FAKK2 Based

Zack Middleton edited this page Nov 11, 2018 · 4 revisions

Page for tracking support for game data for games based on Ritual's Heavy Metal F.A.K.K.2 / Ubertools. Aside from basic Tiki (.tik) parsing in mint-metal, there is no support for the various scripting systems.

"Supports" and "missing" refer to whether a feature is implemented in Spearmint.

Heavy Metal F.A.K.K.2 and American McGee's Alice

FAKK screenshot fakkhouse in Spearmint + mint-metal + Quake 3 sarge player model.

FAKK and Alice game data are similar enough that I treat them as the same engine for the most part.

Spearmint Engine

  • Level BSP
  • Shaders
    • Supports general syntax changes and many new keywords (see Shaders).
    • Missing stage keywords "rgbGen global", "alphaGen global", "alphaGen dot", "alphaGen oneMinusDot", "tcMod macro".
    • Missing stage keyword "tcMod parallax" (only used by MoHAA and EF2).
    • Missing support for using "fromEntity" as an argument instead of a constant value (used by FAKK and maybe MoHAA?). It's used on world brush model and controlled by map script. See FAKK_Shader_manual.html.
      • "deformVertexes wave 100 sin fromEntity fromEntity fromEntity fromEntity"
      • "rgbGen wave sin fromEntity fromEntity fromEntity fromEntity" (not used)
      • "alphaGen wave sin fromEntity fromEntity fromEntity fromEntity" (not used)
      • "tcMod scroll fromEntity fromEntity"
      • "tcMod offset fromEntity fromEntity"
      • "tcMod rotate fromEntity"
      • "frameFromEntity" (entity sets animMap frame)
    • Missing American McGee's Alice general keyword "deformVertexes wavenormal <wave>".
    • Missing American McGee's Alice stage keyword extension "tcMod rotate <value> <value>". (TODO: Check if this is valid in Alice (or undocumented FAKK feature), might conflict with MoHAA behavior.)
    • In American McGee's Alice at least, the behavior of "tcGen environment" is different from Quake 3; Missing an option and implementation.
  • Textures
    • Supports .ftx (uncompressed 8-bit RGBA with 12 byte header).
  • Models
    • Supports .tan (vertex animation, modified md3 format).
    • Missing .skb (skeletal mesh base) and .ska (skeletal mesh animation).
    • Missing distance level of detail reduction for .tan models (using the collapse data).
  • Sounds
    • Supports .mp3.
  • CGame API
    • Missing values in refEntity_t for shader "fromEntity" substitution?
    • Missing an API for dynamically rotating model bone joints.

I'm not sure what else is needed at the engine level to be able to reimplement FAKK and Alice based on Spearmint Quake 3 mod code.

mint-metal Game Logic

Things that were in the FAKK/Alice engine but I moved to mod code:

Scripting

I don't remember if I've checked for scripting system differences from FAKK and Alice.

Metal of Honor: Allied Assault

MoHAA screenshot m1l1 in Spearmint + mint-metal + Quake 3 sarge player model.

Spearmint Engine

  • Level BSP
    • Partially supports BSP "2015 19"; missing light grid, dynamic lights, terrain, static models (different from FAKK and EF2).
    • Terrain is loaded but not part of BSP tree so it's currently not rendered in Spearmint.
    • Missing terrain distance level of detail reduction (present in OpenMoHAA).
  • Shaders
    • Supports FAKK syntax changes and some FAKK keywords (see Shaders).
    • Missing FAKK keywords.
    • Missing general keywords "deformVertexes flap [s or t] <value> <wave>", "deformVertexes lightglow", "noMerge" (used for sprites, seems like opposite of Q3's entityMergable).
    • Missing stage keywords "animMapPhase <fps> <phase offset, e.g. 0.0 to 1.0> [images...]", "alphaGen distFade <value> <value>", "alphaGen oneMinusDistFade <value> <value>", "alphaGen sCoord <value> <value>", "alphaGen tCoord <value> <value>", "blendfunc alphaadd", "clampmapy <image>" (not sure if typo or only clamp Y), "depthfunc always", "rgbGen lightingGrid", "rgbGen lightingSpherical", "rgbGen static", "tcGen environmentmodel", "tcMod wavetrant <wave>".
    • Missing stage keyword extension "tcMod rotate <value> [value] [value]" (MoHAA adds two and three argument forms.)
  • Textures
    • Supports .dds
    • Note: Contains .dds and .jpg of same images but shaders all look for tga. So dds needs to be checked for before jpg when tga is not found.
  • Models:
    • Missing .skd (skeletal model?).
    • Missing .skc (skeletal animation?).
    • Missing .lod (skd level of detail info?).
    • There doesn't seem to be models using FAKK model formats.
  • Sounds: Same as FAKK
  • Video: Missing .mpg? Unzipped "video/RenSizzlefeb.mpg" exists but it's an ad for Command and Conquer: Renegade. I don't know if game actually plays it.

Scripting

I haven't checked for scripting system differences from FAKK.

Elite Force 2

Elite Force 2 screenshot dm_trophonius in Spearmint + mint-metal + Quake 3 sarge player model. Yes, I choose a map without spot lights because they fallback to default shader.

Spearmint Engine

  • Level BSP
    • Supports "EF2! 20" except missing new lighting system (different from FAKK and MOHAA).
    • The maps frequently run at very low frame rate. There would need to be rendering optimizations to make it fully playable.
  • Shaders
    • Supports FAKK syntax and some FAKK/EF2 keywords (see Shaders).
    • Missing FAKK keywords.
    • Missing general keywords "detailShader", "textureOnlyIfNoDetail", "forcedAlphaShader <shader>", "maxpicmip 1".
    • Missing stage keywords "alphaGen forcedAlpha", "alphaGen viewDot", "alphaGen oneMinusViewDot","rgbGen default", "deformVertexes heightwave <wave>", "tcGen angle_based_environment".
  • Textures
    • Supports .dds
  • Models
    • Same as FAKK
    • Missing .skm (skeletal model vertex morph?)
  • Sounds
    • Same as FAKK

Scripting

Tiki format has been extended from FAKK. Moved "path <path>" from Tiki setup section to "animations <path> {" which is likely not valid in FAKK. There are other new Tiki keywords. (Tiki hasn't been extensively checked.) Otherwise I haven't checked for scripting system differences from FAKK.

Clone this wiki locally