Dungeon generation algorithms are written in lua and dropped into scripting->algorithms. They are automatically parsed by the visualizer and assigned keys in the program to run them. Algorithms are made up of a single lua file (possibly more with requires) with the following functionality: Provided: global algorithm_manager.register_algorithm(name, init_function, update_function, updates_per_second) Registers an algorithm with the program with a given name, init function, update function, and updates per second map.draw_floor(x, y) Draws a floor on the map at a given x, y position map.draw_wall(x, y) draws a wall on the map at a given x, y position map.fill(bool wall) Fills the map with either floors (false) or walls (true) map.is_wall(x, y) returns true if map[x,y] is a wall, false otherwise Necessary: init_function(map_w, map_h) Should initialize the function fresh with a given width and height. update(map) Called updates_per_second times per second. Should calculate new map state and draw on the map as needed. The map will have the previous state retained.