Chunky 1.2 Progress 2013-12-15

I just pushed a huge commit to Chunky — 222 changed files with 7257 additions and 2022 deletions! Here’s the short list of changes:

  • Added launcher
    • allows specifying minecraft directory and Java runtime
    • can launch any locally available version of Chunky
    • has a debug console
    • has an online updater
    • still allows headless mode
  • Added First-Time Setup Dialog
  • Added custom Json library generated with JastAdd
  • Split Chunky into separate eclipse projects
    • added separate launcher project
    • added separate common library project
  • Update text field of adjuster on clamp
  • Use JSON to store Chunky settings
  • Highlight blocks targeted in render preview
  • Implemented stained glass block
  • Refactored rendering
    • added WorkerState class to keep thread-local worker state
  • Scene Selector now shows canvas size, current SPP and total render time
  • Added seed display in World Selector
  • Added ESC shortcut to close dialogs
  • Fixed error in scene name truncation
  • Fixed test renderer to work with new camera
  • Scenes now stored in Json format (SDF 2)
  • Changed sample buffer into a flat array
  • Made dump frequency editable
  • Implemented save snapshot checkbox
  • Added Acacia and Dark Oak
  • Added packed ice

Normally I would have publish one change at a time, but there were some big changes I started working on that were not finished until now that worked as show stoppers. The reason is simply my desire to not leave the public repository in a blatantly broken state – you should be able to check out any commit and know that it has no major bugs.

Anyway, that’s a big list of changes and some of them are not backward compatible with previous Chunky versions so I’ve decided that this will go into version 1.2. One important thing that has changed is the Scene Description Format (SDF) which is now based on JSON. SDF used to be called “Chunk View Format” and was based on NBT – the same data format used for Minecraft levels. The problem with NBT is that it is a binary format, which makes NBT files difficult to edit since you need a special tool, rather than just a text editor. I want SDF files to be easily editable so that people can simply tweak something in their scene by editing the SDF file for it. To make this even more obvious I decided to use the ‘.json’ extension for SDF files.

Here is a short snippet from a file using the new Scene Description Format:

{
  "sdfVersion": 2,
  "name": "test_1.7.4",
  "width": 400,
  "height": 400,
  "exposure": 1.0,
  "postprocess": 1,
  "renderTime": 14823,
  ...

Another nice thing about JSON is that the JSON format is very widely used and many scripting languages can handle JSON without much hassle. I hope that this will make it simpler for people to script their scenes and do for example animation just using a script that runs Chunky as a batch process.

I have some things left to do before I will start making release candidates. I want to add more MC 1.7.2 features such as stained glass panes and the new biome colors. I also intend to change the way chunks are represented internally in Chunky. I want to move from the Octree data structure currently used to something more like the structure which Minecraft worlds are saved in. I’ll write more about the Octree stuff in another blog post.

Categories: Chunky