marble-machinations/README.md

1.4 KiB

marble machinations

(working title)

logic mostly like https://git.crispypin.cc/CrispyPin/marble

todo

cleanup: unpowered texture names x_off -> x sim/speed control gui (option) display input as numbers scroll output default i/o text modes specified per level properly center view make marble movement not order-dependent (>ooo < does not behave symmetrically) blueprints scroll level list

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

{
  "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

{
  "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

{
  "name": "fast printer",
  "board": "oo\nP*\n|-"
}