marble-machinations/README.md

70 lines
1.3 KiB
Markdown
Raw Normal View History

2024-10-06 00:57:24 +02:00
# marble machinations
(working title)
logic mostly like https://git.crispypin.cc/CrispyPin/marble
2024-10-06 12:39:36 +02:00
## todo
(more levels)
story/lore
2024-10-06 12:39:36 +02:00
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)
2024-10-06 12:39:36 +02:00
decide on marble data size (u32 or byte?)
blueprint rotation
## file hierarchy
2024-10-06 00:57:24 +02:00
```
- 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
{
2024-10-06 12:39:36 +02:00
"id": "00_zeroes",
"name": "Zeroes",
"description": "learn how to output data",
"init_board": null,
"inputs": [],
"outputs": [0, 0, 0, 0, 0, 0, 0, 0]
2024-10-06 00:57:24 +02:00
}
```
`00_zeroes/solution_0.json`
```json
{
2024-10-06 12:39:36 +02:00
"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,
}
2024-10-06 00:57:24 +02:00
}
```
`blueprints/blueprint_0.json`
```json
{
2024-10-06 12:39:36 +02:00
"name": "fast printer",
"board": "oo\nP*\n|-"
2024-10-06 00:57:24 +02:00
}
```