You can write your own importers. We're trying to keep our default importers as addons, so anyone can read and learn from our code. Here's our default texture importer.





This is made very simple by the fact that we have an image class that can load image files, and we're not dealing with texture compression yet, but you get the idea. One of the things that is quite interesting about making importers creatable is that it generates a lot of interoperability. Within a few days we can make the engine read another engine's formats.

And now we can load Source Engine BSPs. There's obviously a lot more to it than that (BSP is a real shitbag of a file format). And then you have to solve a bunch of other stuff - like loading textures and sounds. To be clear here, our intention isn't to make a version of the source engine and use all the same tools. But since the Source engine has an abundance of assets, we're using them to test. We have fbx importers too. You've probably seen before but we can drop assets from Rust in with minimum effort.