Introducing Polywarp: a free minimal game about rhythm and geometry for iOS/Android

I’ve had some downtime recently so challenged myself to make a mobile game in four weeks. This meant working to my strengths (code, music, procedural generation, UI) and avoiding my weaknesses (modelling, texturing, animation). It also meant I had to be very strict on the scope of the game, which ruled out pretty much all genres except arcade/action, and meant I had to avoid complex features like multiplayer and localization (although I may add the latter if it gains popularity).

I prototyped some ideas in Unity, and zoned in on using 2D flat-shaded polygons to create a singleplayer rhythm/timing game. For metagame progression, added unlockable psychedelic colour schemes since this required no further art (aside from picking the colours). I spent a few days hunting around online for some good quality electronica/IDM/glitch and licensed a track for each of the five stages. Nerds may be amused to know I referred to the xkcd color survey to pick colours.

Anyway, after several weeks of coding and a brief alpha test with friends, the end result is Polywarp, a minimal music game about rhythm and geometry, as seen in the trailer above. I didn’t quite make the deadline (it took just over 6 weeks), but I’m very happy to announce it’s available to play for free now on iOS and Android:

Download on the App StoreGet it on Google Play

You can find out more on the Polywarp project page. Don’t forget to leave a review if you check it out, thanks! :)

A Blender script to procedurally generate 3D spaceships

Last month I submitted an entry for Reddit’s /r/proceduralgeneration monthly challenge, which was to make an infinite number of spaceships using procedural generation. I figured generating spaceships in a 3D modelling package would be the most useful, so I decided to throw together a Blender Python addon.

I used Blender’s BMesh module to manipulate a box into a final spaceship. Here’s the basic algorithm:

  • Start with a box.
  • Build the hull: Extrude the front/rear faces several times, adding random translation/scaling/rotation along the way.
  • Add asymmetry to the hull: Pick random faces and extrude them out in a similar manner, reducing in scale each time.
  • Add detail to the hull: Categorize each face by its orientation and generate details on it such as engines, antenna, weapon turrets, lights etc.
  • Sometimes apply horizontal symmetry.
  • Add a Bevel modifier to angularize the shape a bit.
  • Apply materials to the final result.
  • Take over the universe with your new infinite fleet of spaceships.

I won the monthly challenge, and put the code up on GitHub. Since then a bunch of people have been making improvements, I made the top of HackerNews, and the /r/ mods gave me the flair “Starfleet Commander”. A good month.