Skip to main content


Some of my old BlitzMax games

When I was in school I used to spend a lot of my time making games in Blitz Basic (and later BlitzMax). Eventually, as I got older and more boring, I ran out of ideas and started doing other things. I haven’t sat down and made a satisfying game in years. I used to really enjoy it though, and I made some things that I really liked. I used to think that maybe I would be a trendy game designer one day.

I was thinking about that this morning, so I decided to go through and play a few of my old games. I feel just as much a need to show them off now as I did when I made them, so I’ve recorded a few screencasts. Camtasia broke for Unknown Reasons and it turns out Jing is sort of terrible at recording games, so they’re really jerky and the volume’s quite low, but I’m not going to not share them now I’ve made them.

Here they are:

I’m quite disappointed that a few of my favourites didn’t run. I’m sure if I recompiled them they’d work. All of my code is in a repository on github, and compiled versions of everything are on my original homepage, Here’s a list of links to the ones that work at least a little bit:

Trenchant, Poption, Fencing, Bubble worlds, Trader, Schroedinger’s Ghost, Beards, Rowing, Surroundemup, Clockwork Shooter, Schizophrenic Pacman, Museum, Horsey (browser version), Kleinsteroids

Using a zero-knowledge protocol to prove you can solve a sudoku

I’ve just uploaded to youtube a video I made with Katie Steckles to demonstrate why zero-knowledge protocols exist and how one works.

Katie is a habitual liar, so we followed the zero-knowledge protocol described in the paper, “Cryptographic and Physical Zero-Knowledge Proof Systems for Solutions of Sudoku Puzzles” which you can download from

By following this protocol, Katie can prove that she isn’t lying to me about being able to solve the puzzle, without revealing anything about how she solved it.

The paper I mentioned, “How to explain zero-knowledge protocols to your children” is an excellent explanation of the ideas behind zero-knowledge proof. You can get it from

Resources for first-year engineers

Maths-Aid, the drop-in maths help service at Newcastle University where I do a bit of work, commissioned some worksheets and accompanying videos for engineers, to be completed over the Summer. The idea was that they would cover the most commonly-requested topics at Maths-Aid, providing pretty much the same information as we would give in a one-to-one session but not acting as a replacement for lecture notes and textbooks.

They’re finally just about finished after a lot of employee-herding and you can see them on the Maths-Aid website. Each worksheet consists of a brief introduction followed by worked example questions. Embedded in each question is a video of me going through the solution from start to finish. They were very quick to produce, and I think they will be very useful. By the way, all these videos and a few others I’ve made are available on our Vimeo account.

The original worksheets were written in Word, so I translated them to HTML+MathJax because it’s much much more convenient. I’ve left links to the Word documents on the page in case people want to print it out, but there’s a nice print stylesheet so just printing out the page itself produces good results.

Now that the worksheets and videos are finished, we’re adding some interactive revision questions using Numbas. At the moment there’s one for the simple second-order ODEs sheet. It produces a randomly generated ODE to solve each time you run it, and can give hints or a full worked solution if you get stuck. There’s a button to re-randomise each question, so you can just stick at it for as long as you like.

I’m trying to make a case in the E-Learning Unit for more of this kind of thing being produced: I think they’re very useful, and complement lecture notes and textbooks very well.

A gimmicky Normal PDF visual aid

Quite a lot of people have trouble visualising what’s going on when you look up p-values in a table of the normal CDF. I had an idea about how to explain a bit more dynamically using a bit of Craft Time inegnuity.

I made this sketch of the normal PDF in Asymptote and printed out two copies. I cut out the area under the curve of one of them, and glued its corners to those of the other one.

Now I can slide sheets of coloured paper between the two copies of the graph, showing visually the area under the curve up to a certain limit. Using a second colour allows me to show how the area between two values is calculated by subtracting the area corresponding to the lesser value from the area corresponding to the greater value.

Read more…

How to make a Slinky look like a Klein bottle

Edmund Harris mentioned on Twitter that a Slinky can make a very good model of a Klein bottle. Elin Roberts asked for an explanation, and I was curious too, so I did a bit of rummaging and found my old Slinky. ((it isn’t a real slinky, but what’s the generic name for them? Something like ‘coiled metal extend-o-toy’?))

Once I’d worked out what to do, I recorded a video explaining it: