Skip to content
GameVault LogoGameVault
Back to blog

Introducing the .gas Interchange Format

A universal format for cross-engine asset sharing

Javier CabreraSeptember 8, 20257 min read

One of the biggest challenges in game development is moving assets between engines. An asset built for Godot can't be dropped into Unity or Bevy without significant rework. Today we're introducing the .gas interchange format — our answer to the cross-engine asset portability problem.

ZIP-Based Bundle Architecture

At its core, a .gas file is a ZIP archive containing the asset data alongside a JSON manifest. The manifest describes every resource in the bundle: what it is, how it should be loaded, and how its components relate to each other. This simple but powerful structure means any engine plugin can read the manifest and extract exactly what it needs.

Neutral Type System

The format defines four neutral asset types: sprite, sound, scene, and logic. Each type has a well-defined schema that abstracts away engine-specific details. Spatial transforms use universal arrays — position as a 3-element array, rotation as a 4-element quaternion, and scale as a 3-element array. This neutral representation means an asset exported from Godot can be faithfully imported into Bevy or Phaser without data loss.

Engine Plugin Translation Layer

Each engine plugin contains a translation layer that converts between native types and the neutral .gas format. When exporting from Godot, a Node3D's transform is decomposed into our universal arrays. When importing into Bevy, those arrays are reassembled into a Bevy Transform component. The plugin handles all the nuance so developers never have to think about coordinate system differences or type mismatches.

What's Next

We're actively working on expanding the format to support more asset types, including tilemaps, particle effects, and UI layouts. The .gas format is open and documented — we welcome feedback and contributions from the community as we shape this standard together.