Projects
Neon Apocalypse Zombie Island
June 1, 2022Very bare-bones top-down zombie survival shooting game. With a car and a time trial race! (if you can find it…)
Average IMDb ratings of Cheers episodes. Does Rebecca or Diane win?
August 28, 2021Take a break from all your worries by looking at this visualisation showing average IMDb ratings of Cheers episodes!
Protein density of different foods
August 28, 2021Which foods are the best sources of protein, when you take the weight and number of calories into account?
The Iliad – which characters are mentioned by name the most?
August 28, 2021The Iliad is one of the oldest pieces of western literature, and features some names you know well, like Aphrodite, Zeus, and Achilles. How often are each of these characters mentioned by name? And where in the story are they mentioned most?
When does middle age start?
August 28, 2021When does middle age begin? Does your age, gender, or where you live affect your answer to this question? Data from the European Social Survey has some clues…
Formula 1 historical stats dashboard
August 28, 2021Which F1 driver has started the most races? Who has won the most? Is F1 getting less competitive now, with richer teams taking all the spoils? I made a dashboard to find out.
CSS Synthwave Sunset
August 11, 2020CSS Synthwave Sunset… try saying that 5 times fast. Can’t do it, can you? Pronounceable or not, that’s what you’re getting today.
2018 Web Design Trends
June 22, 2018Here’s what looks cool in 2018, but in 20 years time will probably just look ooooooold. But that’s the definition of a trend, isn’t it? If you’re reading this is 2038, yes, we all think this stuff looks really great.
Ninja Climber
May 5, 20182D platform game. A ninja girl with an unusually large head climbs indefinitely up a gravity-defying series of platforms, collecting coins and killing beasts along the way. Please watch the sunset, I put a lot of time into it.
Neon City
February 14, 2018Neon City is a top-down, open world game in the vein of the old GTA games. It is very work-in-progress at the moment.
Space Spider Survival
February 11, 2018A 2D top-down shoot-em up. Collect power-ups, set traps, and call on computer-controlled allies to help you. It’s a survival game like Zombies on Call of Duty — you don’t win, you just get as far as you can.
Lesson 14) Adding sound to a canvas game
February 10, 2018If a canvas game falls over in the woods, and there’s no one around to hear it, does it still make a sound? To answer this age-old philosophical question, we need to add sound! This is the final lesson and with this, we’ll complete our game, so let’s get to it!
Lesson 13) Loading image files onto the canvas
February 10, 2018You don’t have to be too aesthetically-minded to know that moving a red square around a green background isn’t going to impress anyone very much. Let’s improve the game with some graphics.
Lesson 12) Bullets and shooting
February 10, 2018OK, so we went a bit too far in that last lesson. The bad guys quickly massacre the player in every game. Let’s give him the means to fight back… let’s enable him to shoot the baddies.
Lesson 11) Health, damage and game over
February 8, 2018Let’s add a health bar… and not the kind that serves smoothies. Currently the bad guys chase the player, but do nothing. Let’s make them actually do damage.
Lesson 10) Stopping bad guys from overlapping
February 8, 2018Argh! Our enemies keep piling on top of each other! We’ll have to fix this using our collision detection functions… but there are a couple of gotchas here that we need to be aware of. You’ll see what I mean in this lesson.
Lesson 9) Adding in bad guys
February 8, 2018Our little amigo’s getting a bit of an easy ride at the moment. So in this lesson we’ll throw in some enemies, and make them mercilessly chase the player down as he goes about his business.
Lesson 8) Bounding the game area
February 8, 2018It’s important to set boundaries. So following on from the last lesson, you’ll use your new-found skills in collision detection to stop the player moving outside of the game area.
Lesson 7) Collision detection
February 8, 2018Lara Croft walks into a wall, and says “Oof!” Sonic walks into a ring, and collects it. Bison walks into Ken’s dragon punch, and loses health. All this happens because of collision detection. Here’s how it works.
Lesson 6) Detecting multiple key presses at once
February 8, 2018OK, so you can detect a key press. Good for you. But can you detect multiple key presses happening at the same time? You will after this lesson!
Lesson 5) Detecting key-press input
February 8, 2018Now that we’ve got the basic skeleton of a game, we need to enable players to control it. So let’s learn how to detect key presses, and link these to actions in our game.
Lesson 4) Getting started with objects
February 7, 2018Some say that in JavaScript, everything is an object. But what is an object, and why are they useful in games and other apps? Find out here!
Lesson 3) Creating a game loop
January 30, 2018A moving game is actually a series of static images, shown multiple times per second. We create this effect in our main game loop, which is, as they say, where all the magic happens.
Lesson 2) Drawing on the canvas
January 30, 2018Experimenting with form and colour… aka drawing rectangles and stuff! Let’s start learning the canvas API by drawing some simple shapes.
Lesson 1) Creating a game area with canvas
January 30, 2018Every good battle needs an arena, and ours will be made out of canvas. HTML5 canvas, that is. Here you’ll learn what a canvas is and how to create one.
How to make a top-down shooter in canvas/JavaScript
January 30, 2018After this tutorial you’ll be able to build top-down 2D shoot ’em ups. This is aimed at beginners, although you should know some basics like how to use if statements and loops.