carmineos / rage-toolkit

Other
19 stars 6 forks source link

[Feature] Design an intermediate file format #15

Open carmineos opened 3 years ago

carmineos commented 3 years ago

We should define a format to export/import data from/to binary resources.

Format Software Language Specs Available Modular Verbosity Binary Buffers
openFormats OpenIV proprietary No Yes Low No
CodeWalker XML CodeWalker xml No (but open source) Somehow High No

openFormats

openFormats seem a valuable format although it has no public specs and everything is strictly coupled to openIV software, it only supports a few rage resource types and furthermore it has some few little inconsistencies:

CodeWalker XML

CodeWalker XML on its side supports almost all the rage resource types, but it's very verbose and very inconsistent.

Another format to consider could be glTF (either json or binary) which is easily extended using "extensions" so any software which already handles glTF will only need a plugin to handle extensions for the rage engine specific data, in addition it also supports external binary buffers. Although has still some limitations which would require too many work on extensions and currently it only supports a Y+ up coordinates system by design which would require to transform bases of all the transformations data in rage formats on export/import.