chunky-dev / chunky-dev/chunky
Move data out of `scene.json` to improve performance/compression
- Dominant language
- Java
- Stars
- 738
- Forks
- 78
- Avg merge
- 10h 5m
- Merged PRs (30d)
- 3
Description
```
Scene
\ scene_summary
\ scene_settings
\ scene_entities
\ scene_chunks
```
`Scene` - Compressed file/folder containing all individual scene components. Each component can be made to be as efficient as possible to store said data. Keeps portability high as people can simply share a "file" like they did previously with scene .json.
`scene_summary` - Improve performance of `Load Scene` dialog by not parsing data we don't need. Contains: Name, Number of Chunks, Size (canvas resolution), Current SPP (maybe do `current/target`?), Render Time, Last Modified
`scene_settings` - Bulk of scene data. Water settings, fog, materials, cameras, etc.
`scene_entities` - re:#930 - A huge portion of the scene file ends up being entities...
`scene_chunks` - Similar issue to entities. Large selections can lead to a really long Chunk list.
---
If possible keeping the extensions of these files as `.json` would be best as they are easy for humans to read and edit. We could use gzip, lzma, or other forms of compression on certain components.
Contributor guide
Research direction
Start by locating the scene.json serialization code and the Load Scene dialog. Review how scene settings, entities, chunks, and summary data are currently stored and parsed, then determine component boundaries and compression choices. Done should provide a portable Scene containing the proposed components while preserving the relevant scene data and improving loading or storage efficiency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- desktop, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100