No description
Find a file
2024-10-07 00:01:02 +02:00
assets draw marble direction 2024-10-05 20:48:05 +02:00
levels display level descriptions, increased font sizes in level selection 2024-10-06 20:12:02 +02:00
src culled board rendering, much better performance with enormous boards 2024-10-07 00:01:02 +02:00
.gitignore solution saving and loading 2024-10-06 16:29:45 +02:00
Cargo.lock initial level selection gui 2024-10-06 12:39:36 +02:00
Cargo.toml initial level selection gui 2024-10-06 12:39:36 +02:00
README.md auto resize board when drawing out of bounds 2024-10-06 23:30:59 +02:00
rustfmt.toml init 2024-10-03 22:59:49 +02:00

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