Skip to content

Codebase structure

Maxzor edited this page Jul 25, 2020 · 1 revision

WolvenKit codebase overview

There is a lot that is useful to know about - C#, OOP, .Net, Microsoft's MVVM concept - to get a grasp at the codebase ; and even reverse-engineering if you want to dig and improve the lowest-level.

Here are the main modules :

  • WolvenKit - Main hub : application entry point (Program class), most subsystem managers, GUI (frmMain class ...)

  • WolvenKit.App - MVVM (MainViewModel class), a few general program services such as the MainController, multithreading, wcc_lite wrapper.

  • WolvenKit.Common - Various enums, mod default filesystem structure, atomic-file compression service manager (Cr2wResourceManager class), FNV1A hash functions, logger service...

  • WolvenKit.Console - Terminal things

  • WolvenKit.Net - Networking

  • WolvenKit.Radish - Quest and cutscene designer

  • WolvenKit.Render - In-house 3D-model viewer

  • WolvenKit.Bundles - Compressed blobs at the highest level in the file hierarchy

  • WolvenKit.Cache - Caches are used a lot on assets in the game industry to gain performance, cache zoo here.

  • WolvenKit.CR2W - This is where all the files internals are described and handled, and thus where most of the tedious unknown bits were hunted.

  • WolvenKit.NVidia - Hairworks

  • WolvenKit.Save - Save game editor

  • WolvenKit.Scaleform - Video

  • WolvenKit.W3Speech

  • WolvenKit.W3Strings - Management of all text entries in the game

  • WolvenKit.Wwise - Sound

  • Tests - Yes

That is the gist of it. Dependencies of the project are packaged using Nuget.

Get further documentation

  • generate doxygen comments. It will create a html directory in docs, with lots of files, among which index.html : you want to open that one in a web browser. At repository root on linux :

"doxygen doxygen.conf"

  • read code and comments in code.