This is the fourth in a series of blogs about how we developed Stenciletto
We designed a binary vector format, loosely based on a subset of SVG. Using a pre-compiled format like this is way faster than live parsing SVG XML. We use fast custom serialisation which is really compact. Stenciletto doesn’t use much space on the devices. It can stack and combine images, with the ability to dynamically override colours, add clipping masks and other tricks. It is very fast to draw to the output canvas.
Now for the Puzzle Designer. This had to be for MacOs, but as Xamarin Forms for the Mac wasn’t there it had to be Xamarin Mac native. Initially Core Graphics supplied the drawing canvas, but later it was changed to use SkiaSharp. The UI is totally focussed on the puzzle design workflow, with no unnecessary shiny bits.
The biggest challenge was validating the puzzles. The Puzzle Designer has to calculate all of the solutions and warn of any invalid hidden shapes. At that time, it limited us to nine shapes as that was all we could reasonably do on a dual-core i5 with four threads. I’ll let you work out the possible combinations, you’ll need lots of fingers.
The Puzzle Designer has a helper - the Puzzle Publisher - which manages the game packs for publishing. It allows Jane to analyse and manage the scoring and to see the relative puzzle and game difficulties. This lets her ensure a certain level of meanness.
There we are, we can now publish puzzle games…
(Orginal at: https://stenciletto.com/2021/03/29/building-the-puzzle-designer/)