This page contains notes for the game The Impossible Game (Windows, Linux).
|
|
To do:
|
File Formats#
The game uses a number of proprietary file formats exclusive to this game. This page will be updated as more are reverse-engineered and documented.
Custom Levels#
The game stores custom levels in folders, with the .lvl suffix. These folders contain two files: actual level data in a big-endian binary blob (titled "level.dat"), and a standard Vorbis audio track (titled "music.ogg")
Level data is structured as follows:
- File format version (4-byte integer)
- Custom graphics flag (single-byte boolean, unused)
- Object count (2-byte short int)
- Object data (the structure below is repeated for every object in the file)
- Object type (single byte; 01 = platform, 02 = spike, 03 = pit)
- Object x position (4-byte integer)
- Object y position (4-byte integer)
- Level end position (4-byte integer)
- Number of background color changes (the structure below is repeated for every color change in the file)
- Color change x position (4-byte integer)
- Custom graphics flag (single byte)
- Color ID (4-byte integer ranging from 0 to 7), if the previous flag was set to 00
- Custom texture name (Java UTF-8 string), if the previous flag was set to 01
- Number of gravity changes (the structure below is repeated for every gravity change in the file)
- Gravity change x position (4-byte integer)
- Number of rising fade effects (4-byte integer)
- x position to start the effect at (4-byte integer)
- x position to end the effect at (4-byte integer)
- Number of falling fade effects (4-byte integer)
- x position to start the effect at (4-byte integer)
- x position to end the effect at (4-byte integer)
Note: pits do not have a y-position. The second integer refers to the end x position instead
Image Atlases#
|
|
To do:
|
These files contain data on where subsprites (known to the game as "fragments") are located within spritesheets (known to the game as "images") and have the ".bin" file extension. Similarly to level files, they are also big-endian binary blobs.