This mod turns DooM^3 into Ultra-Violent Thinking Man's Shooter

Post tutorial Report RSS Fusion SDK compilation tutorial

Get started with your mod! Overthinked DooM^3 SDK compilation instructions.

Posted by on - Advanced Client Side Coding

Fusion SDK is basically Denton's Enhanced DooM 3 ( Moddb.com ) with Sikkmod's 1.2 ( Moddb.com ) graphical capabilities.
( Word of caution: Cell Shading may be faulty. )

0) Preparation:

Uncompress 7z file, and then 7z file inside 7z file.
7zeption.

1) Software dependencies:

You need to install the following first:
- DirectX SDK
- Visual Studio (I'm using 2010)

As for the MFC:

First way:

anonreclaimer wrote:

.

Download that: Mediafire.com

Uncompress and paste the “altmfc” folder on “C:\Program Files
(x86)\Microsoft Visual Studio 10.0\VC” or where you was installed the
VCExpress


Second way:

mf1348 wrote:

.

That mediafire link to ATL and MFC is (...) probably not strictly legal.
It's possible to get ATL and MFC from Microsoft for VS2010 express by downloading the Windows Driver Dev Kit!
On Windows 7 get version 7.1.0 from here:
www.microsoft.com/en-us/download/details.aspx?id=11800

Use 7zip or something to extract the ISO and then install the DDK.
You will have all the headers and libs needed to build Doom3 BFG.
Assuming the default install location you need to add the following to the include directories for the Doom3BFG project:
C:\WinDDk\7600.16385.1\inc\mfc42
C:\WinDDK\7600.16385.1\inc\api
C:\WinDDK\7600.16385.1\inc\atl71
For the library directories you need to add:
C:\WinDDK\7600.16385.1\lib\ATL\i386

I didn't need to make any mods to sound\snd_system.cpp as in the above tutorial with the latest git repo.
I did however need to disable some warnings in Model_md5.cpp:

static void TransformJoints( idJointMat *__restrict outJoints, const int numJoints, const idJointMat *__restrict inJoints1, const idJointMat *__restrict inJoints2 ) {

#pragma warning(disable:4189)


First way will get you there faster, but it's dangerous... Second way is safer, but all lights are fried... Make your choice, Marine.

2) Making sure...

Open doom.sln from neo folder in Visual Studio and:

- Right click on Game, preferences, c++, preprocessor flags.
Make sure that

_DENTONMOD
_PORTALSKY 


flags are set. If not, add them.

- Make sure that files tracers.cpp/h are included in Game solution.

3) Ready to go!

- Make changes you like to the code. ( Best, try to make friends with VIM ( Openvim.com ) )

- Right click on Game, -> build

- There you have it. Brand new dll file in Build / Dedicated Release folder.

4) Additional notes:

- Default code is stripped from advanced SikkMod gameplay features, like movable pick-ups, custom head models, automatic weapon awareness ( in Overthinked it's handled via script files ), health/adrenaline system, IR goggles and so on...
If you want those features in your mod, you'll need to add them yourself.
I've included original source codes inside pack, so look there for the reference.

- In DEPENDENCIES folder you'll find bare minimum that needs to make a way inside your mod for advanced special effects to work. Author of them is Sikkpin.

- addToClip takes three arguments due to Overthinked Mod reload system. Please check out events.script for detailed explanation.

- launchProjectile takes additional argument - a boolean - specifying if projectile is a melee attack. It's used to prevent monsters from gibbing when treated with gibbing weapon melee attack.

- Projectiles damages def's can have two additional, mutually exclusive booleans: "light" and "heavy". "heavy" surpasses lowered damage scale on monster joints, having at least 1:1 ratio of damage. Light does excactly the opposite: if damage scale is lower than 0.6, it'll lower it even further. You can play around with those values, achieving ultra-scalable hitzones on the monsters.

- Monsters can fire multiple types of projectiles. Mechanism is exactly the same as for different projectiles on player weapons. Now you can make monster that shoots both bullets and grenades like Q4 Gladiator.


Original tutorial posts that this tutorial is based on:

Iodoom3.org
Moddb.com

Cheers!

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: