Edit and visualize irregular game panels for The Witness.
.NET Framework 4.7.2
- Build TemplateGenerator and WitnessVisualizer
- Run TemplateGenerator.exe to automatically generate some templates.
- Run WitnessVisualizer.exe, open the templates and edit them.
Decorators mean some symbols that are shown on the puzzle's faces/edges/corners. If you want to add a new mechanic (thus need a new symbol) to the puzzles, you can create your own decorator. Two examples in this project are RingDecorator
and CircleDecorator
that do not belong to the original game.
- Add and implement a new decorator class in
PuzzleGraph\Decorators
. See other implemented decorators for reference. - Add a
XmlInclude(typeof(YourDecoratorClass))
attribute toPuzzleGraph\Decorator.cs
so it can be (de-)serialized when saving/loading the puzzle. - Implement the rendering method of the decorator in
WitnessVisualizer\PuzzleGraphRenderer.cs
. - Add a new
PuzzleToolkitDecoratorItem
item inWitnessVisualizer\PuzzleToolkit.cs
so that you can find one in the list view on the left of the editor.
- PuzzleGraph provides a uniform graph structure for storing irregular game panels. It supports Serialization & Deserialization from XML.
- MathHelper provides some basic analytical functions.
- WitnessVisualizer implements the main editor form and the rendering functions.
- TemplateGenerator is an ugly program to generate some common templates for The Witness puzzles.
- WitnessVisualizer currently does not support adding/modifying graph nodes/edges/faces.
- Hollow tetris will sometimes add random fragments due to unknown bugs of the WinForm drawing system.