Whimsy

Why make Whimsy?

Those who know Bitsy can easily see that Whimsy is strongly influenced by Bitsy — one can even say it's a clone, if not an alternative. So, why even create Whimsy?

As a teacher, a player, and a game developer, I'm frustrated with the current state of Bitsy and its forks. Games have graphical glitches, can hang up, the editor is buggy as heck and has unintuitive, very limiting programming language. And when during one of my lessons on making games without code my students found 10-ish unique bugs in Bitsy instead of known 2, I decided that enough is enough.

Similar engines often have (more) complex scripting languages that can spook the young developers and designers, or are simply not that user-friendly. I think a better product can be created that will only multiply the strengths of Bitsy and will fix its issues.

And also it is a learning opportunity for me, CoMiGo. Maybe some of the tech explored while making Whimsy will be used in ct.js.

Why the Weird Dimensions?

Whimsy has 9x9 base tile size and 15x15 stage size, while most engines use powers of 2 for such constants.

Historically the power-of-two rule formed because it was the most efficient way to work with memory, and partially to compute things — nice sizes fit in video memory and RAM like puzzle pieces on older, hardware-restricted pieces, and many things could be described with bitmasking. Whimsy does not constraint itself with these atavisms, and while designing the engine, I instead had been thinking about alternative history where a three-based system could be used instead.

Additionally, Whimsy has three animation frames instead of two as seen in Bitsy, because it is hard to draw directional motion with just two frames — imagine drawing a conveyor belt with just two animation frames: there will be an optical illusion that results in a ping-pong animation. Three-frame animations don't suffer from it.