ianh / omsim

simulator for 2017 zachtronics puzzle game "opus magnum"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

to use, try

  make run-tests && ./run-tests

to run some tests, or

  make omsim && ./omsim <path to .puzzle> <path to .solution>

to simulate a particular solution. also,

  make libverify.so

builds a shared library with an API designed for bots to use (see verifier.h for
documentation).

the following aren't implemented yet:
- "spooky action at a distance" via conduit cloning
- "quantum bonds"

the following issues are known:
- track reset is different from the game in certain situations (see
  test/not-working-yet/overlapping-track-reset)

these lists should get shorter over time. feel free to file github issues for
any other bugs you find!

thanks to:
- grimy for documentation on sub-cycle ordering
  (at https://github.com/Grimy/om_overlap/blob/master/README.md)
- luna for documentation on collision detection
  (at https://gist.github.com/l-Luna/22a2595755f11d2acf0409f755cea9bb)
- jinyou for the solution archive
  (at http://jinyou.byethost5.com/)
- rebix and brothermojo for transcribing the in-game puzzles into .puzzle files
  (see test/solutions folder)
- kotritrona for the puzzle editor
  (at https://kotritrona.github.io/opusmagnum-puzzle-editor/ompuzzle.html)
- f43nd1r for omsp, which was helpful for understanding solution/puzzle files
  (at https://github.com/F43nd1r/omsp)
- syx for gathering data on production cabinet geometry

About

simulator for 2017 zachtronics puzzle game "opus magnum"

License:Other


Languages

Language:C 98.2%Language:Python 1.2%Language:Makefile 0.6%