doodle/docs/RLE Encoding for Levels.md
Noah Petherbridge c7a3c7a797 Remove never-used GridType accessor + documentation [PTO]
* Add documentation for the game's file formats and RLE encoding
* Remove the never-used GridType Chunk Accessor constant
2024-05-24 16:06:43 -07:00

3.9 KiB

RLE Encoding for Levels

This documents some of the file size savings of the game's built-in levelpacks and doodads once the file format was migrated to use Run Length Encoding (RLE) for drawing chunks.

See Evolution of File Formats for a history of the game's file formats.

Levels

The file sizes of the levels themselves:

First Quest

Filename Orig Size New Size Reduction
Boat.level 4.3M 292K 93%
Castle.level 5.6M 241K 95%
Desert-1of2.level 4.4M 248K 94%
Desert-2of2.level 3.2M 290K 91%
Jungle.level 11M 581K 94%
Shapeshifter.level 22M 263K 98%
Thief 1.level 538K 193K 64%

In raw bytes:

Filename Orig Size New Size
Boat.level 4494184 298943
Castle.level 5854222 245872
Desert-1of2.level 4589382 253768
Desert-2of2.level 3310784 296681
Jungle.level 10928779 594601
Shapeshifter.level 22823811 269307
Thief 1.level 550579 196731

The levelpack ZIP:

  • Filename: builtin-100-FirstQuest.levelpack
  • Original: 50M (52369408)
  • New size: 1.8M (1838542) 96%

Tutorial

Filename Orig Size New Size Reduction
Tutorial 1.level 186K 111K 40%
Tutorial 2.level 680K 229K 66%
Tutorial 3.level 409K 148K 64%
Tutorial 4.level 901K 376K 58%
Tutorial 5.level 3M 645K 78%
Zoo.level 2.8M 226K 92%

In raw bytes:

Filename Orig Size New Size
Tutorial 1.level 190171 113568
Tutorial 2.level 695936 233880
Tutorial 3.level 418490 150565
Tutorial 4.level 921781 384775
Tutorial 5.level 3059902 659487
Zoo.level 2925633 230712

The levelpack ZIP:

  • Filename: builtin-Tutorial.levelpack
  • Original: 7.8M (8119658)
  • New size: 1.6M (1650381) 79%

Azulian Tag

Filename Orig Size New Size Reduction
AzulianTag-Forest.level 17M 312K 98%
AzulianTag-Night.level 702K 145K 79%
AzulianTag-Tutorial.level 3.4M 185K 94%

In raw bytes:

Filename Orig Size New Size
AzulianTag-Forest.level 17662031 318547
AzulianTag-Night.level 718345 147612
AzulianTag-Tutorial.level 3508093 189310

The levelpack ZIP:

  • Filename: builtin-200-AzulianTag.levelpack
  • Original: 21M (21824441)
  • New size: 525K (537345) 97%

Doodads

Spot check of random doodad filesize changes:

Filename Orig Size New Size
anvil.doodad 2.7K 1.3K
azu-blu.doodad 8.1K 5.2K
azu-red.doodad 8.1K 5.2K
azu-white.doodad 8.1K 5.2K
box.doodad 29K 4.1K
boy.doodad 30K 8.1K
crumbly-floor.doodad 15K 3.3K
door-blue.doodad 18K 2.7K
electric-trapdoor.doodad 9.5K 2.8K

Total file size of all builtin doodads:

  • Original: 576.8 KiB
  • New: 153.7 KiB (73% reduction)

Game Binary

  • Filename: sketchymaze
  • Original: 105M
  • New size: 30M, 71% smaller