No description
Find a file
2025-03-27 18:14:52 +01:00
assets add sub-tick debugging, add direction information to state of powerable tiles 2025-03-26 23:02:31 +01:00
levels add intro level for comparator 2024-12-26 23:45:38 +01:00
src add sub-tick debugging, add direction information to state of powerable tiles 2025-03-26 23:02:31 +01:00
tests restructure to allow cargo tests 2025-03-15 21:00:20 +01:00
.gitignore add windows build process 2024-12-21 19:01:42 +01:00
build.rs group levels into chapters 2024-12-22 16:39:40 +01:00
Cargo.lock bump version to 0.2.1 2025-03-14 22:22:12 +01:00
Cargo.toml bump version to 0.2.1 2025-03-14 22:22:12 +01:00
CHANGELOG.md include changelog in releases 2025-03-27 15:38:29 +01:00
Makefile include changelog in releases 2025-03-27 15:38:29 +01:00
README.md update readme 2025-03-27 18:14:52 +01:00
rustfmt.toml init 2024-10-03 22:59:49 +02:00

Marble Machinations

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

todo

meta

  • itch page text
  • engine tests

game

  • comments
  • highlight regions with background colours
  • accessibility
    • ui scaling
    • background colour setting
    • configurable hotkeys
    • hotkeys for everything (no mouse needed to play)
    • font selection (probably a lot of work)
  • more levels
  • footprint and bounding box stats (instead of area)
  • scroll output bytes
  • cut selections, copy to system clipboard
  • timestamps in solutions and blueprints
  • lock tile types for early levels to make it less overwhelming
  • display tool variant more clearly (it's not obvious there are more states)
  • better text rendering

online stuff

  • store scores in server
  • validate solutions in server (with limits)
  • show histograms
  • author name in solutions and blueprints

undecided

  • option to use 8-bit marbles?
  • blueprint rotation?
  • changable marble start direction?

playtesting observations

  • 'loops' introduces too many things (powering, redirection, generating zeroes)
  • players expect buttons to be triggered even when theres something blocking the marble on the other side
  • math tile is not intuitive

file hierarchy

- assets/
- levels/
  - chapter_01.json
  - chapter_02.json
  - sandbox.json
- user/
  - solutions/
    - output/
      - solution_0.json
      - solution_1.json
    - copy_input/
      - solution_0.json
      - solution_3.json
  - blueprints
    - blueprint_0.json

levels

intro, basic mechanics

  • output a zero (marble, output)
  • output multiple numbers in sequence (digits)
  • output zeroes forever (looping/arrows, button, silo output)
  • copy the input (input)
  • increment every number (math tiles)
  • copy only odd input numbers (comparator, flipper)

0-terminated list processing

  • copy the second list
  • calculate list length (math, silo input)
  • count instances of 5 in a list
  • reverse a list (bouncing)

text

  • convert text to lowercase
  • convert a number to decimal ascii
  • parse an ascii number

advanced list processing

  • index a list
  • reverse and return the first n elements of a list, with n given first
  • add two lists element-wise
  • sort a list