User Tools

Site Tools


general_information

**This is an old revision of the document!**

Chunk Stories conventions

It's probably important to specify a few conventions that Chunk Stories uses.

Master & Client

In the code and engine internals, you can see such nomenclature :WorldClient, WorldMaster, isMaster() etc …

Client means 'Is an end-user : it can render the world, control entities etc' Master means 'Runs the world logic, manages end-users and has the authority on it'

I did not use 'client' and 'server' for good reasons : there is no reason a client can't also be a master : this situation happens when you have a local singleplayer or multiplayer world running on the bare client.

6 Axises

These axises are used face-related operation such as block selection or culling.

  • 0 LEFT (X-)
  • 1 FRONT (Z+)
  • 2 RIGHT (X+)
  • 3 BACK (Z-)
  • 4 TOP (Y+)
  • 5 BOTTOM (Y-)

As you can see, the Y axis is height, X is east-west and Z north-south.

Voxel cell data setup

The engine stores all voxels in 32-bit signed ( Java won't allow unsigned :c ) ints, packed in 32x32x32 cubical chunks, packed themselves in 8x8x8 regions.

These ints are composed as : 0x0BSMIIII

0→15 16-bit I blockID, allowing for 65536 different blocks types
16→19 4-bit M Metadata for simple objects and Minecraft porting
20→23 4-bit S Sun light from the sun
24→28 4-bit B Block light, “yellowish” light from torches etc
29→31 4-bit 0 Free if you feel brave

File formats

  • Chunk Stories uses exclusively 32-bit PNGs as image formats.
  • All configuration files are text files encoded using UTF-8
  • Models for entities may use a special configuration of the .obj format and bvh bone animation files.
  • OGG Vorbis is our format of choice for audio.
general_information.1486504196.txt.gz · Last modified: 2017/02/07 22:49 by gobrosse