Readme includes basic project idea and motivation.

master
Pablo Virgo 2016-05-02 00:10:15 -04:00
parent 15ab007f91
commit 4c43a6fcc6
1 changed files with 28 additions and 1 deletions

View File

@ -1,2 +1,29 @@
# minetest-cereal
What can I find out about the Minetest World database format?
What can I find out about the [Minetest](http://www.minetest.net/) world
database format?
The [How to Code - Systematic Program
Design](https://www.edx.org/xseries/how-code-systematic-program-design)
course has shown me that if you design your data well, it's easy to
write good clean code. "Good" meaning code that is well structured, and
easy to understand. Even better, well designed data can guide you to be
more effective at actually writing complicated algorithms.
When I got curious about how Minetest represents worlds, I was
pretty excited to discover that they use a SQLite database to store the
map. I'm comfortable with SQL, and expected to be able to
jump in and start reshaping imaginary planets.
No such luck! Turns out their data structure was put together
more or less by accident. It consists of a single mathematically
derived number to represent the X,Y,Z coordinates of a given block, and
a binary blob that serializes whatever information there is to know
about that block. Neither of the representations are readily
comprehensible by humans.
This project will attempt to decode databases in the existing Minetest
format into one that fits the standards of the Systematic Program Design
course. I want to make it easier to alter and explore Minetest
world maps as data, and to convince you that data should be designed so
that people can understand it too.