Curse Of Zipfelmuetz

Free your cats in this 6 level jump and run involving broom riding. Exploration, retries and thinking required.

Level "Enthusiastic Watchdogs"
Level "Windy Here"
Level ?
Level "FC Zipfelmuetz"
Level ?


HTML5 WebGL capable browser required. You can play in fullscreen by clicking the button "fullscreen" below the render area.   Link

Must Read

The Trespassers Guide (second option in title menu) contains some hints.

You can start the game from every room (and therefore practice every level) by pressing left/right keys at first option in title menu. This game involves broom riding which you may want to practice by playing room 6 or room 3. Kind of a broom flying school would have been nice but there is none.

You can admit defeat in a level run by pressing key P. You can return to the title menu by pressing key P again.


This game is controlled keyboard-only.

Move around and Menu Navigation Arrow keys or WASD
Jump or any other action X or M. You will have to find out by yourself what other actions are possible.
Proceed in menus Return or Space
Admit defeat in a level P. To return to title menu press P again.


Its the time of the dark and ugly middle ages. You, young and energetic witch Joanna, were lucky cause you live in the kingdom of Zipfelmuetz which is not so dark and ugly at all, its secluded and even picturesque. You live happily together with your 50 cats. Now and then you generate a ruckus in your operations as if you wanted to qualify for enemy of the state, which earned you the nickname "Curse Of Zipfelmuetz". But your heart is in the right place and the other citizens are fond of you.

One morning you find your cats gone. Rumor goes these were snatched by magicians and held hostage in the Magical University Of Zipfelmuetz. Those high nosed snobs and mad bureaucrats ! You were cross with these as long as you can think back and now they seemingly found spell testing subjects in demand. Time to put your ruckus generating skills to work, shake up that university and free your cats ! The following night you embark on a rescue mission...

The game has 6 levels and is rather small in scale. Thats it for info. Everything else you are supposed to find out by yourself. Happy exploration !


In the followig a list of all tools and libraries I used for this game. Found them great and reliable. Hope this helps.

The game is C++ and, as should be obvious, handmade: I wrote everything. The only external code included (beside emscripten stuff) is glm (header) library ( and the "one file is all you need" lodepng ( The development zigzagged: First a Windows version intended for a team effort which never got started, then buried for some time, then revived as a html5 version (with emscripten (, then expanded as a Linux version and finally a emscripten html5 version again.

I made all the SFX with Goattracker ( The music was either made with Goattracker or a Novation Circuit. For some tracks I created versions with both. If you want to compare: Here is the Circuit version of "Witching" (Youtube), here my experiments with a SID version (.sid, local). The title music "Dear Enemy" (.sid, local) is an older SID track of mine which I reworked for this game. You can play those SIDs with e.g. VLC.

The Linux native version uses SDL for audio (

Creating the speech with SAM ( was great fun, in particular to get German speech out of it. I tried to recreate some phrases from Beyond Castle Wolfenstein (the Apple II version).

The phrases to be heard in the game are:
(1) sam -mouth 230 -throat 180 -pitch 22 -speed 60 "WITCHINGgg.";
(2) sam -mouth 125 -throat 135 -pitch 80 -speed 40 -phonetic "AEREHST THAED WHIHTCH5.";
(3) sam -mouth 165 -throat 135 -pitch 100 -speed 40 -phonetic "OWOWOWOWOWOYOYOYOYOY.";
(4) sam -mouth 165 -throat 135 -pitch 160 -speed 30 -phonetic "AO5UW5S5W5AY5S5.";
(5) sam -mouth 165 -throat 135 -pitch 160 -speed 25 -phonetic "L5AO5NXG5SOH5MM.";
(6) sam -mouth 165 -throat 135 -pitch 160 -speed 40 -phonetic "EY5 EY5 EY5 STOHP THIHS.";
(7) sam -mouth 135 -throat 135 -pitch 160 -speed 30 -phonetic "BLAEIHBEHN SIY SHTEYN.";
(8) sam -mouth 165 -throat 135 -pitch 90 -speed 40 -phonetic "THAETS THEH KERRXS OHF TSIHPFEHLMUMTTS.";

(1) is "Witching !" (to be heard whenever you reclaim a broom, ups, you were supposed to find about that possibility by yourself), (2) "Arrest That Witch !", (3) "OWOWOWOWOWOYOYOYOYOY !" :-), (4) "Ausweis !" translating to "Identification papers !". (5) "Langsam !" translating to "Slow down !", (6) "Ey Ey Ey Stop This !", (7) "Bleiben Sie stehen !" translating to "Stop, do not move !" and (8) "That's The Curse Of Zipfelmuetz !".

Regarding graphics: I have drawn most of the sprites pixel by pixel, for some using video stills as template, e.g. for the crawling/grabbing hands I filmed my own. For background objects, more than often, I ran CC0 photos through filters of GIMP ( and/or G'MIC ( The latter also created some of the church windows (decor filter). In case of the title image for example I made a collage from several photos, drew some missing parts and then ran it through several filters. The font in the game is unscii-8-fantasy from (added a few characters, e.g. heart and underline).

Further gimp plugins/scripts used: for the magical currents (lightening), for the cat enclosing soap bubble.

Regarding physics: The rope physics (the ropes, not the catenary) in the game are actually cloth physics (!). I used this tutorial as starting point: . Some are "live" ropes (catenary after split), others are playback of recordings of different "live" ropes, which are made at program start. For the BSplines (paths on which e.g. the spirits move) I used as starting point. Made some changes because I needed closed paths. Every other physics I made from scratch, e.g. catenary, air bubbles, rocket (broom).

The remaining tools: For processing videos by script ffmpeg (, for non-script tasks Openshot ( Audio is processed by script using Sox (, for non-script tasks Audacity ( The native Linux version uses the PowerVR SDK ( which enables to use same OpenGL ES code in Linux as in emscripten (by restricting to the emscripten WebGL friendly subset of OpenGL ES). For general scripting, python ( As development environment: For Linux native version, CodeLite ( For emscripten, just Makefile and Geany as editor ( For merging DiffMerge (

A special mention goes to the wonderful game Cauldron (Palace Software, C64) which inspired to write the Trespassers Guide (and the prologue) in verses.