To compile, or not to compile

hi all,

i’m wondering what the advantages/disadvantages are w/regard to compiled models vs. non-compiled models. is this an example of the time/space trade-off ? for example, i can suppose that non-compiled models may take up less space on-disk, but that they will also take more time to use/display in the engine when the game is run because [shooting in the dark here] the game may have to compile them or interpret them before it can display them ? or is that a complete miss ?


In theory there should be 0 reason to not compile the models when distributing them to others. Various CC creation tools only work on uncompiled models (max/blender scripts, CM3, etc), so your workflow will likely be entirely with uncompiled ones, and then when packaging them up for distribution, you’d compile them.

Uncompiled models are compiled by the game on the fly, which means very visible stutter when such a model comes into view - very noticeable with 1.69 horses which were left uncompiled.

Now, if you’re making models for EE and are using some of the new fancy tools, the external compilers (e.g. nwnmdlcomp) won’t know how to deal with them, and the in-game one might have bugs. So the general advice might not be strictly true right now, but bugs are getting fixed in the development versions.

Be cautious with nwnmdlcomp apparently. It doesn’t know about selfillumcolor and doesn’t compile it. That is the reason why I had to release all my glow in the dark stuff (TR’s Glows, Rainbow Rats V 2.0, etc.) with ASCII format models only. I only discovered this when I tried compiling them.


@sherincall What you said is probably true for the minority of builders who’ve mastered the modelling tools, but, for general builders, the finding over the years is that it normally makes no perceptible difference.

Indeed, arguably, uncompiled models are preferable, because unskilled builders can understand and tweak them with a text editor.

Of course, there are exceptions. Very high poly models do lag, and may even cause crashes, unless compiled - but I’ve only seen a handful of such cases.