Hello World

Stockholm shuts down in July. Shops in business districts close for the summer. Subway lines close down for repairs late evenings. The traffic jam on the freeway clears up.

Visby Cathedral on a sunny day in early June. Copyright Frederik Jensen 2023.

I've been back in the office for one week, calm and quiet with most people away. Good time to dig deep into some code. Great with an easy commute by car. With kids at home on summer leave, I prioritise working at the office. After a few hectic weeks diving into the new job, it was healthy with a two week break to reset and reflect. Code with poor documentation and poor test coverage is legacy code, no matter the technology. No matter the architecture. Here is work for me to do. Time to establish routines and get the job done.

Weather changing to rain, we completed puzzles in the summer house in Denmark. I was inspired to create a puzzle of my own and found a company that could help me. Good quality and fast delivery. Finding yourself in a puzzle is fun!

Rockets and liquid nitrogen

My oldest participated in a one week summer school at Vetenskapens Hus (House of Science) next to the University of Stockholm during the second week of my vacation.

The summer school was organised by Hello World, an organisation of volunteers that work with industry to inspire children and young people to pursue a career in science and technology, no matter their background.

With both my wife and I having academic degrees in mathematics and computer science and both of us working with software development, it is perhaps not surprising if our kids take an interest in STEM (science, technology, engineering, mathematics). Anyhow, still great to have such an opportunity.

My son joined a class of 13 with three instructors, all STEM university students. Mornings they worked on programming, afternoons they did various science experiments, building rockets and making ice cream from liquid nitrogen.

Sounds like he had a blast. I was curious to see how they approached teaching programming so I looked into it.

Browsing through my boardgames collection for miniatures to paint, I found 12 finely detailed survivors in This War of Mine. It was fun to paint realistic, contemporary characters.

Game development with Codepad

The summer school used Lua scripts running on Codepad with a Defold game engine underneath.

Codepad is an online compiler/interpreter. Lua is a lightweight scripting language. Defold is a 2D game engine for web and mobile.

Each day they got a new example game to work on. The games were unfinished: They would run but lacked features. The task was to add features by modifying existing scripts, very much like how most development is done in the real world. Except, here there was documentation.

I tried out one of the exercises. Nice! Here the game is Space Cleaner, a side scrolling shoot-em-up. The game is already running and you can try it out in the bottom right corner. Instructions on the left tells you to find and modify the script that implement movement of the space ship. You copy- paste-edit the lines and restart the script and now the game is already more fun to play!

It is both full circle and a frog leap: This is the kind of games I played as a kid in the 1980ies, but the means and effort for me to build such a game would have been far greater.

Sadly, This War of Mine is even more relevant now than when it came out. It sits unplayed on my shelf, a heavy theme. Perhaps when the war in Ukraine has ended, it can be a tool to reconnect with the people who right now endures the uncertainty and dilemmas portrayed in the game.

Forever free

Defold is a free game engine developed by a couple of smart engineers at King, the Swedish game studio behind Candy Crush. However, it is not owned by King: Back in 2020, Defold was handed over to the Defold Foundation with the explicit objective to prevent Defold from being commercialised by a third-party. Not today, not tomorrow, not ever.

A gift for future generations. Let's see what they will do with it. Now there is one more aspiring game developer who knows how to use it.