Should a game asset pack ship FBX or glTF?
Ship FBX if the pack is for Unity and Unreal, because both engines read FBX natively and FBX carries the collision and LOD naming conventions those engines look for. Ship glTF as well if you also want web, Godot or DCC-agnostic use — it is the better open format, but the engine-side conventions are weaker.
For a pack aimed at Unity and Unreal, FBX, and it is not especially close.
Not because FBX is a good format — it is a proprietary, over-scoped, ageing one — but because of what has grown up around it. Both engines import it without a plugin, and more importantly both engines read conventions encoded in FBX object names that no other format has an equivalent for:
UCX_<MeshName>on a child object becomes convex collision on import in Unreal, and is the de-facto convention every Unity importer script also looks for.<MeshName>_LOD0,_LOD1,_LOD2become an LOD chain rather than three separate meshes.- Embedded textures mean the buyer drags one file in and gets a working material, instead of a mesh plus a folder of maps plus a manual hookup.
A pack that ships glTF only is asking every buyer to wire up collision by hand. That is a real cost, and it will show up in your reviews.
Where glTF is genuinely better
glTF is the better-designed format on almost every technical axis. It is an open Khronos standard, it is compact, its PBR material model is unambiguous, it has Draco and Meshopt compression, and it loads in a browser in a few lines of code.
It is the right choice when:
- the target is web — three.js, Babylon, model viewers, product configurators;
- the target is Godot, which prefers glTF and treats it as first class;
- you are shipping into a pipeline rather than into an engine, where an unambiguous open format beats a convention-rich proprietary one;
- you want an archival master that will still open in twenty years.
We use it for exactly the first case. The interactive viewer on this site is glTF binaries converted from the shipped FBX meshes at build time, so what spins in your browser is the same geometry that goes in the pack. The pack itself ships FBX.
What “ship both” costs you
Not much, if your export is scripted. One export step becomes two, and you carry a second folder.
What it does cost is the promise that both are equivalent. They will not be, and you should say where they differ. glTF has no UCX convention, so a glTF version of a pack either drops collision or ships it as an oddly-named extra mesh the buyer has to find. glTF’s material model will not round-trip every FBX material exactly. If you advertise both without qualification, the glTF buyer gets the worse product and does not know why.
The practical answer
- Unity / Unreal props pack: FBX with embedded textures,
UCX_collision,_LODsuffixes. Add glTF as a secondary download if you want, clearly labelled as geometry-and-materials-only. - Web / Godot / generic: glTF binary (
.glb), Draco or Meshopt compressed, with a written note on where collision is meant to come from. - Either way: real-world scale in metres, pivot at the bottom centre, transforms applied. That matters more than the container. See real-world scale.
One thing to avoid
Do not ship .blend, .max or .ma as the primary format. It looks generous — the buyer gets the source! — but it binds the pack to a DCC version, drags in your scene’s lights and cameras and modifier stack, and produces a different result depending on the importer. Source files are a nice extra. They are not a delivery format.
Updated 13 August 2026 · LeftPunch Studio
Related
We write these while building. The pack they come from — a 1960s office set of 110 props plus a 30-module architecture kit — is in production and every prop's audit verdict is published, including the ones that failed.
See the pack