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.
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.
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.
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.
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.
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!
It’s been over two months since my last post, in which I announced that I was abandoning JavaScript for the development of Turtle Paint, and switched to Ruby instead.
Once upon a time, over a decade ago, I wrote a simple program in C++Builder to help my father solve crossword puzzles and cryptograms. It would let you type a word with blanks such as f.
The JavaScript server code for Turtle Paint is becoming increasingly difficult to manage. People had warned me beforehand, but there’s no teacher like first-hand experience. The problems in a nutshell:
A good selection of words is essential for a fun drawing-and-guessing game; they must neither be too easy nor too difficult. However, I’m thoroughly lazy, so I was not going to compile a word list by hand.
No, the Frozen Fractal blog is not dead. It’s just been, well, frozen. A lot happened since the last post: I got a job at Google, moved to London, and made a little game for Ludum Dare that I’ll post about later.
Back to work after a much-needed break, I have gained a better perspective on the current state of the game. I concluded that, if I am to finish this game on time, I’ll have to reduce it in scope significantly.
Game development can be a pain sometimes. Remember my writings on threading last week? This week has been more of the same kind of stuff: engine improvements, code cleanups, bugfixes, and only some small new features that are actually visible.
More work on performance this week. Things were getting a bit too slow for my tastes, meaning that they would likely be unplayable on medium-end phones.
As announced, I made a large sprint this week to bring the artwork closer to completion. I think it’s about halfway done now, but I’m getting more and more experience with this, so the second half should go a lot faster.
Like I announced, lots of work on graphics. In-game graphics are beginning to come together, but are only halfway done, so the overall result still doesn’t look too good.
I’ve been looking at my crappy placeholder graphics for too long. Every time I launch the game, a tiny voice at the back of my mind tells me how shitty it still looks.
I more or less finished one of the first powerups that you’ll encounter in the game: the toaster. When you pick it up, it appears in the item box at the top right.
Although games vary wildly in appearance and mechanics, the structure of the underlying classes and objects is often similar. There is a “world” object, which contains everything else; there are multiple “entities” representing stuff in the world, there’s a “renderer” which tells each object to draw itself, etcetera.