Home / Blog

Endless Runner - SuperDad

tldr: Father’s Day is tomorrow, and instead of falling into a consumerist trap and spending a lot of money buying something, I decided it might be fun to build my husband (father of my 2 kids) a simple game that he could play on his laptop. I’ve always loved mindless, or rather flow-state games where there are very few player actions, and the goal is clear - jump, duck, fall, restart. Last year, I went down the track of building games for my 7 year old, and it was a fun 3 weeks of learning and implementing. Before I could ‘level up’ however, many people fell sick and life happened and holidays happened and I started a new job, and I had to shelve all my hobbies away for a few months. Here I am now, 6 months later, back at it - and Father’s Day is as good a motivation as anything to get a new game going!

I have 4-5 hours today to complete this game, let’s see how it goes. I’m relying on AI of course, and some tutorials - and I have a bunch of notes and tips from my previous experience building 3 games fo rmy 7yo (Dictation Potato, Backpack Go and OddEven Cat).Let’s get started!

The Mechanics

An endless runner game consists of a few fairly simple game-actions. Its a great way to start building small games, and it can be customised to your interests and specific life situations. I decided to build an endless runner

Any endless runner game (Dino Chrome game, Subway Surfer, Temple Run etc.) has a few basic components:

  1. Automatic movement: The character moves forward automatically.

  2. Artefacts: The character interacts with these artefacts such as obstacles or loot, or power-ups.

  3. Character actions: The character needs to react to the artefacts via actions such as jump, duck, or shoot.

There are many ways to build a game, but the simplest one I’ve found that helps me learn as I do, is to use JS, HTML and CSS. There’s no need right now to use any kind of physics engine, or any complex levels/saving type structure, so we can focus on getting the basics right with just these 3.

  1. HTML for drawing the game

  2. Vanilla JS for game loop, collisions, scoring

  3. CSS for layout + fonts

We also avoid setup overhead and can keep everything in a few files and easily customise art, sound etc. Plus, I’m learning JS and I know it better than Python, so the choice is easy for me!

, I wanted to upload the pdfs of the school academic calendar (each child has its own calendar), and then create ical files, that I could add to my calendar apps.

This did not work well, and the 30 mins I had earmarked for this task and other sundries, has not been well utilised.

On the other hand, I did make 2 payments (not urgent), and set up 2 appointments (pending from last week).

I like to call this the internal 30 min bucket, i.e. what is the volume of disjointed task work I can undertake in 30 mins.

Today was:

  1. Try to achieve a time-saving thing using technology, and only get to 10% of desired results (learning that the required library for creating .ics files isn’t available in Chat GPT’s environment (?) and the best way ahead is to get a pdf- csv file that you I can convert to a .ics file).
  2. Make 2 payments to vendors
  3. Set up this repo and link the right files so I can start blogging.
  4. Make 2 meeting appointments. Disregard the 2 medical appointments because they involve talking to humans, and I’m not feeling upto it.
  5. I’ll admit I got distracted and read 2 articles about Tokyo Medical University and their practice re limiting the number of female doctors -this took 3 minutes, and in hindsight, was 3 mins wasted. I could have spent a minute reading one article (instead of 2) and started on an easy Sudoku instead.

That’s today’s 30 mins.