Hello everyone,
This update focuses on deep memory and performance improvements following continued work on the new database and recent backend changes. The goal is to deliver a smoother, more stable experience across all hardware, reducing overhead on lower-end systems while making better use of resources on powerful PCs. These improvements also free up system resources for future features.
The biggest improvement most users will notice is that opening categories in the asset browser is now drastically faster after the first initial load, and that Card Engine will use much less memory in projects with a lot of custom assets.
As always, please continue to post your bug reports and feedback in the Card Engine discord server or the Community Hub.
Memory & Performance Optimizations
General
- Card Engine now unloads assets less aggressively, reducing active CPU overhead
- Sequential loading of assets will now be significantly faster than the first initial load. (E.g. Reopening a large custom category in the asset browser)
Memory
- Reduced memory usage of custom assets by discarding CPU-side copies of textures entirely after uploading to GPU
- Added texture compression to decrease peak VRAM usage
- Optimized PNG/JPG loading pipeline to prevent duplicate textures in memory while loading, which led to memory spikes
- Improved handling of very large custom asset folders (~500+ images) to prevent memory spikes and excessive GC pressure
- Custom asset deletion and category clearing now fully release associated textures from memory
- Removed outdated beta-specific libraries and systems. Future betas will have dedicated builds, improving memory efficiency slightly
Main Menu
- Project snapshots are now created upon loading a project instead of a mass action for every project upon loading the main menu. This should make loading the main menu significantly faster for users with many projects
Asset browser
- Opening categories now supports incremental loading for spreading large asset loads over multiple frames. This will fix the issue with the system thinking the app is frozen/unresponsive while performing large loading tasks
- Added a callback system to the asset browser for building UI lists progressively as assets are loaded in, reducing memory spikes when opening categories
- Added a loading progress bar to the asset browser
- Removed internal custom asset sorting. The asset browser now follows the order assets are found on your system, as the system already handles ordering effectively. Order may differ from the previous Card Engine sorting based on your system’s default behaviour
Fixes
- Fixed a memory leak that could occur when opening categories
- Fixed the font selection menu only opening when clicking the left-half of the font selection button
