Pretty cool to see the devs chime in at the bottom.
A lot of the game logic was written in coroutines, which dotPeek exposes as state machines, so I had to do some manual work to figure out what the control flow originally was. Otoh, coroutines record the names of local variables, unlike normal methods, so it wasn't all bad.
I didn't decompile the game into a working Unity project, if that's what you were thinking.
Based on algorithms outlined in these two papers here:
Measuring quality of grammars for procedural level generation
"Grammar-based procedural level generation raises the productivity of level designers for games such as dungeon crawl and platform games. However, the improved productivity comes at cost of level quality assurance. Authoring, improving and maintaining grammars is difficult because it is hard to predict how each grammar rule impacts the overall level quality, and tool support is lacking. We propose a novel metric called Metric of Added Detail (MAD) that indicates if a rule adds or removes detail with respect to its phase in the transformation pipeline, and Specification Analysis Reporting (SAnR) for expressing level properties and analyzing how qualities evolve in level generation histories. We demonstrate MAD and SAnR using a prototype of a level generator called Ludoscope Lite. Our preliminary results show that problematic rules tend to break SAnR properties and that MAD intuitively raises flags. MAD and SAnR augment existing approaches, and can ultimately help designers make better levels and level generators."
https://ir.cwi.nl/pub/28418 "Wonderful design: Applying Appraisal Theory to Procedural Level Generation"
"Procedural level generation for games is an active field of research with successful applications. However, how to generate content that embodies design intent is still an open research question. Level designers lack abstractions and tools for authoring generated artifacts for affecting emotion. We propose a novel pattern language for generative level design inspired by Appraisal Theory. Its patterns enable designers to add meaning, depth, and cohesiveness to the resulting content, and modify artifacts to make the content more engaging. We illustrate how these patterns can be implemented in a generative grammar for level generation for an adventure game. Formative evaluation of generated level content demonstrates the feasibility of the approach and suggests points for further improvements. Future work could focus on other elements which seem important for affecting emotions, including pacing, perception, and expectation."