Emage 1.1
Major Release - GIF Support & Performance Overhaul
This release introduces animated GIF support, distance-based FPS scaling, advanced compression, and numerous performance optimizations.
New Features
Animated GIF Support
- Full GIF animation support with frame synchronization
- Proper disposal method handling (none, restoreToBackground, restoreToPrevious)
- Variable frame delay support
- SyncGroup system for synchronized grid playback
Distance-Based FPS
- 60 FPS when player is within 20 blocks
- 20 FPS when player is 21-48 blocks away
- Animations pause when no players nearby
- Configurable distance thresholds
Quality Modes
- --fast / -f - No sharpening, fastest processing
- --balanced / -b - Medium sharpening (0.5 strength)
- --high / -h - Strong sharpening (0.8) + edge enhancement
Image Processing
- Unsharp mask sharpening
- Laplacian edge enhancement
- Floyd-Steinberg dithering with serpentine scanning
- Progressive downscaling for large images
- Bicubic interpolation
Storage Management
- /emage cleanup - Remove unused map files
- /emage stats - View storage statistics
- /emage migrate - Convert legacy formats
- /emage perf - View performance status
Update Checker
- Automatic update notifications
- /emage update command
- Clickable download links (GitHub, Modrinth, SpigotMC)
- Admin join notifications
Performance Improvements
Animation System
- SyncGroup system - single calculation for entire grid
- Proximity tracking - only update for nearby players
- Adaptive throttling under heavy load
- Frame skip detection with auto-throttling
Compression
- Palette-based compression (1/2/4/8 bits per pixel)
- Delta encoding between frames
- Sparse encoding for similar frames
- Spatial delta (adjacent cells as reference)
- Temporal delta (previous frames as reference)
- 70-90% file size reduction
Memory
- Byte array pooling
- Int array pooling
- Reduced garbage collection
- Efficient buffer reuse
Processing
- Parallel GIF frame processing
- Async image downloading
- Background file I/O
- Progressive image scaling
File Format Changes
New Formats
- .emap - Single static map (palette + compressed)
- .esgrid - Static grid (multiple maps, delta encoded)
- .eagrid - Animated grid (temporal + spatial delta)
Legacy Support
- Automatic detection of old formats
- /emage migrate for conversion
- Backwards compatible loading
Configuration
New Options
Code (Text):
performance:
max-render-distance: 48
max-fps: 60
min-fps: 20
adaptive: true
animation:
close-distance: 20
far-distance: 48
close-fps: 60
far-fps: 20
quality:
max-gif-frames: 200
max-grid-size: 15
memory:
use-pool: true
pool-size: 100
max-usage-mb: 256
check-updates: true