This is the first game in the God of War series. Kinetica engine (Games on engine: Kinetica, GoW I+II, Jak II+3+X, The Getaway, SOCOM I + II, FantaVision)

GOW1costume.jpg



The models/textures/levels are stored in the .WAD files.
Models data format like other optimized ps2 games stored in vif packets.
Tools for extracting files (obj+png): https://github.com/MogAika/god_of_war_tools
Newer tool, that can render levels, but cannot export files: https://github.com/mogaika/god_of_war_browser


Something about in-game format
Wad represent way of loading one segment of map, like:
GFX_HERO [load hero texture pallete indexes]
PAL_HERO [load hero texture pallete]
TXR_HERO [info about hero texture] { links to: GFX_HERO, PAL_HERO }

hero_0 [hero mesh data (xyzw, rgba, uv, normals)]
MAT_hero [info about material] { links to: TXR_HERO }
MDL_hero [info about model] { links to: hero_0, MAT_hero, ANM_hero, ... }
gohero [info about game object] { links to: MDL_hero }

All formats has magic in first 4 bytes

Meshes have some levels of grouping
  1. Mesh
  2. Parts (base-bone grouping, all bones on lower levels realtive to value in this struct)
  3. Groups (don't know)
  4. Objects (texture grouping)
  5. Packets (material grouping)
  6. Vif packets (ps2 vu1 vif decoder opcodes with data, they fill vu1 memory with xyz/rgba/uv/vn datas)
    per-vertex rgba blending used for static light
    vn (normals) used for dynamic light (and alpha blending?)
    backface culling not used

models always parent of mesh and his textures in wad tree, also store information for every joint:
  • Joint name, children, parents
  • Idle pose matrix + position + scale (in parent joint space)
  • Inverse model matrix position (present, only if joint idle position != model position?) (in world space)

also models have something like variables:
  • HeroBreak
  • Breakable
  • PushPull
  • IO_CSM
  • IO_TandF

"go" game objects store matrices in map-segment space(or global game space)

Kratos in-game extracted model:


kratos.png
Kratos in-game model

joints.png
joints tree

uvheh.png
Main menu background (behind fire)

city.png
ineditor.png
ingame.png