Ah, I thought that was in the modding guide. So the key is to have your own GameFactory, and also an entry point. The entry point should derive from ModEntryPointAdapter and set your GameFactory, which then does the rest. You need a class like this:
public class IncredibleModEntryPoint : ModEntryPointAdapter
{
public override void Initialize(ModSettings modSettings)
{
base.Initialize(modSettings);
modSettings.Factory = new IncredibleModGameFactory();
}
}
and then the GameFactory like
public class IncredibleModGameFactory : GameFactory
{
public override Game CreateGame(ModSettings pModSettings)
{
return new IncredibleModGame(pModSettings);
}
}
Your GameFactory should be used to make the game use any classes you override, such as Game, Character, etc. You can even do custom UI by instantiating your own ClientUI, etc.