Dec. 16, 2015

Over the weekend I built a tiny game for Ludum Dare #34. Here it is:

Instructions: grow the white square's heart by clicking and dragging to the other squares.

Link to the game here.

Source code here.

Play/review/rate it here.

Dec. 11, 2015

Zero Asset Game Mockup

A "zero asset game" is a game that does not use any external art assets.

Game art is instead generated procedurally or by using artifacts of the rendering environment.

The following is a screenshot of a tiny game engine I built a little while ago in ClojureScript.

Tiny CLJS Game Engine Screenshot

The renderer runs on Facebook's React library so it is just a couple of lines of code.

I've spread it over several lines here for readability:

; DOM "scene grapher"
[:div {:id "game-board"}
  (doall
    (map
      (fn [[id e]]
        [:div {:class (str "sprite c" (:color e))
           :key id
           :style (compute-position-style e)
           :on-click (fn [ev] (sfx/play :blip))}
        (:symbol e)])
      (:entities @game-state)))]

The sprites are utf8 characters which are instantiated like this:

(make-entity {:symbol "◍"
              :color 0
              :pos [-20 300]
              :angle 0
              :behaviour behaviour-rock})

The function behaviour-rock here gets called once per frame and returns the new immutable entity-state for the next frame.

When you click on something the blip sound is generated procedurally in the browser using jsfxr.

Nov. 8, 2015

Fubbles title screen

This is a video game I made for Scout to help her practice using a gamepad.

Play it! You'll need at least one gamepad and Firefox or Chrome.

  • It's hard to find nice games that fit the search "two player gamepad-enabled couch-co-op suitable for four year olds".

  • Game design for a four year old is quite nuanced. To make a fun game without all of the normal risk reward mechanics basically comes down to "make rude noises".

  • It's 360 lines of ClojureScript, rendered in the browser DOM with React. It took me a handful of evenings over a period of one month to develop.

  • I don't play many games, but the gamepad is probably my favourite human-computer interface.

Fubbles title screen

Source code: https://github.com/chr15m/fubbles/

Update

infinitelives Logo

Fubbles is the first game I have made using the new infinitelives ClojureScript library for game development that my friend Crispin and I have been building.

Oct. 28, 2015

Nearly three years ago I wrote:

Prediction: within 3 years the stylus will be the killer feature of Android tablets.

Since then I've felt a little embarrassed remembering that post. Grand claims, ha ha!

Apple's 
"Pencil"

With the recent announcement of Apple's "Pencil" I feel somewhat vindicated. I got the details wrong but I think broadly speaking that hand-drawing, sketches, doodles, will feature strongly in the future of human-to-human communication. Maybe even more strongly than typed messages for some people.

  • I'm thinking about the 16% of people worldwide who can't read or write, but who are rapidly adopting hand held technologies where they can draw.

  • I'm thinking about the tens of thousands of years of human beings using sticks as a technology for making marks upon a surface.

  • I'm thinking about the popularity of emoji, the universality of pictographs, the cross-cultural and language-independent nature of the medium of drawn communication.

  • I'm thinking about my kids and how the second thing they learn after talking is drawing.

Pictographs of phone repair

Maybe one future is a world in which many of our planet's population do a significant fraction of our communication through the medium of doodles.

Oct. 25, 2015

screenshot.png

miniCast is a self-hosted web app for listening to podcasts.

I wrote it while learning ClojureScript. The back-end API is written in PHP. My friend George came up with the name and design.