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!
Pickomino (known as
Regenwormen in Dutch, Heckmeck in German) is a dice game in which players
try to get as many worms as possible. It is largely a game of chance, but there
are some tactics involved, which always leaves me wondering: did I make the
optimal choice? Only one way to find out: write an AI player that knows how to
play optimally.
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.
Hopefully you didn’t notice, but as of now, frozenfractal.com is generated by Jekyll, the static blog generator.
Since its inception in 2010, the site had been running on my own custom-written engine, Utterson. (The name was taken from another character from R.L. Stevenson’s famous novel, since both Jekyll and Hyde were already taken.) The idea behind Utterson was that I could just do a git push to a repository on my server, and the software would take care of turning it into a blog on the fly.
It’s been two weeks since I announced that Patchy was to be featured in the Play Store. This happened roughly a week ago, and it looks like it was taken down around yesterday, so it’s time for a postmortem.
I’m proud to announce that Frozen Fractal’s first Android release, Patchy, will soon be featured in the Google Play Store! I guess that means it’ll get a big banner at the top of this page, which is sure to drive some eyeballs my way. I don’t know what it is exactly that I did to make this happen, so I’m going to document what I did, in the hope that it’s useful for other developers out there.
Setup: suppose you have a monochrome texture that contains a height map. A value of 1 is highest, and 0 is lowest. You want to use this texture as a ‘bump map’ to shade a 2D polygon via GLSL, computing light and shadow from the gradient of the height map at any given point. Let’s assume there is a single light source, infinitely far away (so the light rays are parallel). This is the setup we use in the game Aranami.
Yes indeed, Frozen Fractal’s first officially released game is there! It’s called Patchy, and it’s a retro arcade-style land-grabbing game for Android. This post is about its inception and also describes some bits of the technical implementation.