Boing - A Cracktro Scripting Playground

In my previous post I wrote about my love for Amiga cracktros and my abandoned pet project of recreating them on modern hardware. Recently I got motivated to resurrect the idea of building an easy way to create those cracktros.

To have a fighting chance of finishing something presentable before I run out of either time or motivation, I decided a fully fledged editor app is a bit too ambitious for now. So I had the idea to create a scripting playground where one could build a demo using predefined elements and effects in just a few lines of code. The playground would come with common elements like images, scrolling text, a 3D star field and basic shapes. It should have a nice way to program animations and play music. Think of it a bit like Processing but specialized for making Amiga-style cracktros.

This idea is probably so niche that I’ll be the only one playing around with it. But it is a perfect pet project bringing together my Amiga nostalgia, my urge to learn something new and my interest in creative coding.

Naming is hard… or is it?

Giving the project a name was actually pretty straight forward. It is all about graphical demos and inspired by the Amiga so the only obvious choice is Boing, after the famous Boing Ball Demo. I hope no one will sue me over that name.

In search of an engine

Let’s be realistic: I’m not sadistic enough to go deeply into the realms of graphics programming with OpenGL and the likes, and this would be overkill for my project anyways. There are so many game engines out there that already cover the basics I need. The engine should have the following characteristics:

  • basic 2D drawing and animation capabilities
  • cross-platform
  • free and open source
  • big enough community to get support if needed
  • programmable with a suitable language
  • easy to distribute
  • capable of loading and executing scripts at runtime
  • support for shaders (optional)
  • running on the web (optional)

I looked at a few popular engines, some of which I have used before, but none really matched my requirements. Finally I came across Löve2D and it looked just like what I need. It is super easy to set up and get going with it. It ticks all the above boxes. Programming is done with Lua, a quirky scripting language that is popular in game development.

In the next post I will describe my first steps with Löve2D, Lua and what I envision Boing to be.