The first real money I ever made from game development was on Android. It was in 2013, when Android was still the underdog compared to the iPhone, and was being touted as a great platform for developers. I’d taken two weeks to build Patchy, a retro arcade game revamped for touch controls, and published it on the Google Play Store without any hassle. Since then, I’ve also published Twistago, Rocket Mail, Bigcanvas, Radio Nul and Papageno.
After a weekend of toil with GRPC, ProGuard, dex, Netty, Maven, Gradle and
IntelliJ, I finally managed to build a release APK of the first public version
of the Bigcanvas app. Add some screenshots (inspired by – well, hopefully you
can tell), and we have a publication!
Core to the idea of Bigcanvas is that it’s a shared space, where everyone can draw at the same time. Much as it would on a real canvas, this means people can interfere with each other. Properly handling this and making sure that everybody’s brush strokes made it onto the canvas turned out to be a fairly tricky problem.
How does one store the contents of an infinite canvas into a computer’s finite memory? One cheats. In this case, by taking advantage of the fact that the canvas may be infinite, but people’s drawings are quite finite. We simply don’t store the empty regions.
Remember Bigcanvas? The infinite online canvas that anyone can draw on, which I launched in 2013? I didn’t do anything with it since, but the idea has always been at the back of my mind, biding its time. The most fun games for me are always those which give you creative freedom (RollerCoaster Tycoon, Minecraft, Kerbal Space Program, SimCity) so even though Bigcanvas is not strictly a game, this is something I would love to work on. Recently, I bought the domain bigcanvas.io and started working on a second version.
Ladies and gentlemen, Frozen Fractal presents… Bigcanvas! It’s an infinite online canvas that anyone can draw on. The ‘why’ is described within the app itself, so have a look! This blogpost focuses on the technical aspects, i.e. the ‘how’.