# marble machinations (working title) logic mostly like https://git.crispypin.cc/CrispyPin/marble ## todo (more levels) story/lore blueprints scroll level list should the output tile consume marbles like the bag instead of needing power? then input and output could be merged to one tile type make marble movement more consistent (`>o o<` depends on internal marble order) decide on marble data size (u32 or byte?) blueprint rotation ## file hierarchy ``` - assets/ - storage/ - levels/ - 00_zeroes.json - 01_cat.json - 02_parse.json - 99_sandbox.json - solutions/ - 00_zeroes/ - solution_0.json - solution_1.json - factorial_194726/ - solution_0.json - solution_1.json - blueprints - blueprint_0.json - custom_levels/ - factorial_194726.json ``` `00_zeroes.json` ```json { "id": "00_zeroes", "name": "Zeroes", "description": "learn how to output data", "init_board": null, "inputs": [], "outputs": [0, 0, 0, 0, 0, 0, 0, 0] } ``` `00_zeroes/solution_0.json` ```json { "level_id": "00_zeroes", //redundant, useful if sharing solution files? "solution_id": "solution_0", "name": "unnamed 1", "board": "oo\nP*\n|-", "score": { "cycles": 8, "tiles": 6, "area": 6, } } ``` `blueprints/blueprint_0.json` ```json { "name": "fast printer", "board": "oo\nP*\n|-" } ```