Recently I’ve been working on a closed-source application for a client. It’s an Android implementation of a recently invented card game, with both single player and multiplayer modes. I had to write a custom server for it (I chose the Play framework with Scala). The fact that the system had effectively two server implementations – one for single player coordinating bots, and one for multiplayer – combined with my lack of experience building such systems meant I created a lot of duplication when implementing the rules of the game. Continue reading Battling maven repository hosting
Note to self:
If your Android builds fail on Cloudbees’ Run@Cloud with an obscure Gradle exception like this:
Cannot create instance
particularly on the line applying the Android plugin, try using the Gradle wrapper instead.
Towards the end of last year, I worked on a prototype physics engine based on a GPU Gems chapter – a realtime physics simulation running on the GPU. So far I’ve only written it for the CPU as I’ve never done any GPU work before. (judging by the problems I’ve had with the physics side of things, it was probably a good idea not to heap on an order of magnitude more GPU problems…)
Here’s a video of it in action:
After I managed to get rotation pretty much ‘working’ – it still does odd things – it worked pretty well. It’s operating on the pixel/metre scale, because I was lazy… so everything here is massive skyscraper-sized entities. Quite by accident, it appears to have ‘conservation of momentum’ – if I draw a ‘C’, and fill it with particles it will accelerate like a
Eventually, I’ll work out how to port it to GPU, hook it up with OpenGL, and make it 3D… but that’ll be a while.
In the meanwhile, read the code at Github, and… I’ve not got the build properly set up on Jenkins so you can’t download it.
I’ve recently been working on a game called Balloon Box. It’s a 2D desktop platformer in which the player controls a cardboard box, navigates through an abandoned factory which is known for its pneumatic material transport system. (When I implement it) you will have to avoid cardboard-dissolving acid and knife racks, and collect balloons and batteries. Read the story on Github.
Yesterday, I quickly hacked up an implementation of the Space Colonisation algorithm, for growing trees. By trees, I don’t mean the binary trees – the living sort, just represented by segments and forks.
My inspiration was from Procedural World and this article. The idea of Space Colonisation is to colonise/fill a limited area. A tree like this would grow from the bottom up (as they usually do), gradually taking up all the available space. Trees generated by this algorithm (as far as I know) rarely have intersecting branches, and look organic.
I recorded myself singing the Misty Mountains song from The Hobbit movie (with some extra verses from the book). This is just me, with ~23 tracks. I filmed the video some time after the recording, so the A/V isn’t in perfect sync (and I need to open my mouth more).