chunky-dev / chunky-dev/chunky

Move data out of `scene.json` to improve performance/compression

Open
#1,763 0 comments 0 reactions 0 assignees View on GitHub
scene format
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.