BCMM

Mar 29, 2024

BCMM Performance Goals

Intro

BC is an old game—a very old game. It uses a very old and defunct game engine called NetImmerse. The NIF format it uses for models is ancient as well, and most official tools don't even work if you want to port a new ship or model to the game. If you want to use official SDK plugins to play around with NIF models, you have to use an ancient 3D Studio Max 3.1 on a virtual machine running Windows XP. I hope this illustrates how old the game is.

Anyway, it's one of the most modded games that I am aware of. And few can compare with the sheer amount of resources that it has. From ships to technologies to even some small missions, BC has it all.

Even today, other communities seek BC model authors permission to port their ship models to other games, e.g., Stellaris. This speaks a lot about the wealth of the BC community.

However, having a heavily modded install comes at a price, and it becomes unstable due to various reasons.

Why is BC unstable or slow?

It's due to the engine age, as it's from a single-core processor era, for example, to BC not working on more modern GPU drivers, operating systems, and such.

One example of how modern operating systems affect game performance is due to the high Windows uptime. Several older games cannot handle high operating system uptimes. This came as a result of Windows 8 Fast Startup, where uptime stopped resetting after shutting down the PC. To remedy this, people usually today resort to restarting the PC, which resolves this. This is one of the things that is resolved by BCMM (courtesy of external developers, of course).

Newer mods are also resource-intensive in terms of memory consumption, which leads to BC crashing after exceeding a certain RAM threshold.

Save games are not working for single player, which makes people play with bare bones installs to avoid using the "Test Mode" to select missions one by one.

Lastly, there is a tech debt. Many mods made through the game's history are not written with compatibility in mind. While KM did fix some of these incompatibilities, it did not resolve them all, which tends to cause game crashes. For example, NanoFX, while a great piece of software, does tend to cause CTDs from time to time. The results of all these crashes vary, so each must be analyzed individually. Though we do have a list of known causes.

What do we plan to fix?

We want to have a solid foundation for further modding with BCMM, and I've already made several passes to increase stability at both the low and high levels. Some demonstrations can be seen here:

These demonstrations showcase heavily decreased memory usage and increased FPS. The goal is to have a more stable platform for more modern mods that have a greater poly count and increased texture sizes. This alone resolves many existing problems mentioned in the section above.

As mentioned, the uptime issue has been long known and resolved already. Fixes for these have been shared multiple times on BCC discord and are not really a secret. Big credit to the guys who originally wrote these universal fixes.

Once the SFC 3 campaign development is complete, the plan is to go and dig deeper and resolve known issues with mods that crash the game, such as NanoFX explosions. The goal here is to finally fix the long-standing problem of save games not working. There are already high-level solutions planned for this.

And for you AMD GPU users, fear no more; these videos that are showcased are recorded on an AMD GPU. We have no plans to tell you that BC does not work on them.

Backwards compatibility

The goal is to be backwards compatible, though you should never overwrite existing files that are from BCMM. We do have plans to automate file hash checking to let you know if your install is modified to allow easy restoration of original files.

Author: Mario  ·  posted at 03:31  ·   ·  BCMM  performance