Super Metroid Abstractions
收藏资源简介:
These files constitute Node- and Tile-Abstractions for Super Metroid These abstractions are defined in Chapters 9 and 10 (respectively) of my dissertation, which is titled: Certified Synthesis for Interactive Media: High Assurance Metroidvania Generation node_dsl.zip contains the node-abstractions: the code to parse them is hosted at: https://github.com/aremath/sm_rando/ in /encoding/parse_rooms.py. rooms.txt defines the rooms of the game, and exits.txt defines how those rooms are connected to each other. rooms_for_alloy.txt (and corresponding exits_for_alloy.txt) contain a slightly simplified abstraction which is not suitable for modular analysis. tile_rules.zip contains the movement rules and test scenarios for the tile-abstraction. The code to parse them is in /world_rando/parse_rules.py (and the code to apply them is in /world_rando/rules.py). The actual in-game rooms are parsed from the unheadered JP/US Super Metroid ROM. /rom_tools/ contains the code to parse the ROM, and /world_rando/parse_rules.py includes a function "make_level_from_room" which converts levels from the ROM into the same format used by the tile-abstraction rules. Both abstractions are subject to change, and the github repo will typically have more up-to-date versions. These abstractions are the versions used for my dissertation data.



