I worked on shadows this week… yet another explorative task. Rendering shadows correctly is one of the biggest technical challenges still to solve in the game, as the levels are 2D and shadows tend to give away the 3D shape of objects. The solution I prototyped is based on shadow maps. The idea is to construct, for each (point-like) light source, a shadow map. This map is basically a table th...
2024-02-15 17:03:39 +0000 UTC
View Post
This week I did an exploration around camera logic. I want the camera to zoom and move as the player explores the scene. The camera should zoom-in when the player approaches objects that need attention and should zoom-out when the player flies away. Why? Well, I find that keeping the camera zoomed-out gives a good view of where the player can/should go, but it feels rather dull. A zoomed-in vie...
2024-02-15 17:02:56 +0000 UTC
View Post
This week I focused on tools. I am attaching a video that shows some of the stuff I did.
During the weekend I created a tool to measure how long it takes for the game to carry out various tasks. The game must produce at least 60 frames every second. That corresponds to 16 milliseconds per frame. In this time, the software needs to process input from the user, calculate the physics and ren...
2024-02-07 18:23:15 +0000 UTC
View Post
Mostly work under the hood this week. I restructured the build system and how game levels are loaded. I am preparing the ground for the creation of a game editor, which will allow creating levels more rapidly.
I also looked into publishing a dev build only accessible to patrons. Itch has an option that allows patrons to claim their unique access key. However, this access method doesn’t ...
2024-02-07 18:12:36 +0000 UTC
View Post
This week I worked on sounds. I started by looking into the software libraries that I am using to manage sounds in my engine: SDL and SDL_mixer. After inspecting the source code of SDL_mixer, I concluded that I’ll need more functionality than what this library provides. In particular, I’d like sounds to be played slower (with pitch distortion, similar to the game Braid) when objects move an...
2024-01-26 18:44:09 +0000 UTC
View Post
I’ll keep the summary short this week as I just published a lengthy retrospective post about my latest YouTube video. One thing I did this week was create virtual buttons to allow playing the game from mobile devices. This was in the TO-DO list for the next demo release that I plan to do in the next month or so. You can see the result on the video attached to this post (but I’ll end up keep...
2024-01-12 13:28:36 +0000 UTC
View Post
A couple of weeks ago I posted a video about “Time Dilation” on YouTube. It reached ~670 views and it is running out of steam now. My former video on Length Contraction was stuck on ~50 views for the first month and slowly exploded on its second and third months, reaching 150K views. Unfortunately, I t...
2024-01-12 13:26:41 +0000 UTC
View Post
I was mostly off during these two weeks, but I took some hours to finish the “Time dilation” video and publish it on YouTube. I used this time to shorten and improve the script, create the thumbnail and the video description. I was a bit in a hurry to do all this. I forced myself to publish the video before the New Year, being aware that I have a lot of work to do on the video game.
I...
2024-01-11 15:56:22 +0000 UTC
View Post
I spent the whole week working on the video. It took me one day or so to finish adjusting the assets and their logic. The rest of the week was spent animating and creating the actual video. That was truly exhausting. Partly, it’s due to the tools I am using: none. Well, it’s all software coded by myself and certain aspects are excruciatingly painful to deal with. The top pain point is timin...
2023-12-22 22:15:09 +0000 UTC
View Post
As anticipated in my last post, this week I started working on a new video. The video will be about time dilation. It will be centered on a scenario I came up with while thinking about possible game mechanics. It is similar in structure to my previous video about the ladder paradox, but it’s for time dilation rather than length contraction.
To be fair I spent Monday and Tuesday morning ...
2023-12-22 21:50:36 +0000 UTC
View Post
I spent this week working on room 2 and introducing some related game mechanics: unstable keys and key fusion. Unstable keys are keys that vanish after some time. They behave like some real-world particles, say muons, and decay after some time. Similarly to their real counterparts, unstable keys take longer to decay when...
2023-12-11 18:46:46 +0000 UTC
View Post
I started the week adding a new simple game asset to complete room 1. This is the first room and is very simple: the player needs to take a key from a key-holder and drop it into a keyhole. This opens the door that gives access to room 2.
Before starting to work on room 2, I thought I’d have a go at implementing game save and restore functionality. This will be pretty handy for future d...
2023-12-11 18:41:20 +0000 UTC
View Post
his week I finished the relativistic implementation of the new collision avoidance algorithm. The new code is much better than the old one. Well, this is what I expected after working on the classical proof of concept a couple of weeks back. Here is the commit message:
Author: Matteo F...
2023-11-24 18:38:29 +0000 UTC
View Post
My week started working on the relativistic implementation of the new collision avoidance algorithm. I soon hit a problem I didn’t foresee: the new algorithm requires trying trajectories, evaluating them and accepting/rejecting them. While this functionality is super easy to implement for a classical point-like body (just do r(t) = r₀ + v₀t + a₀t²/2, v(t) = v₀ + a₀t), it turns out ...
2023-11-24 18:36:16 +0000 UTC
View Post
I started the week investigating changes to the collision avoidance algorithm, the code that keeps the robot from penetrating walls and doors. My aim was to improve how the navigation felt, especially close to walls where the robot could easily get stuck. I also wanted to get rid of the annoying bounces that happen when the robot collides slowly with walls. I worked for about one day on a toy c...
2023-11-13 10:34:53 +0000 UTC
View Post
This week I worked on improving the engine’s graphics capabilities. The problem was that my engine was only capable of supporting 2D textures (sampler2D in the GLSL language). In the last couple of weeks I used workarounds to cope with this limitation. So - you may say - why not stick with these? Well, using “dirty tricks” was fine for the first prototype, but it is not sustainable in the...
2023-11-13 10:33:57 +0000 UTC
View Post
I started the week looking into improving the rendering of the level. I designed 6 tiles (one for flat walls, one for corners, one for the background, etc) The picture below is obtained putting together some of these different kinds of tiles (except for the door and the keyhole apparatus)

I then ...
2023-10-27 18:05:01 +0000 UTC
View Post
I spent Monday and Tuesday improving support for bitmap animations in my engine. I am using this feature to render animations on the robot’s screen. Well, you may have noticed that I included one experimental animation in the last video I posted. That one, however, was achieved by loading the animation frame by frame. With the work I did this week I can load it all from one single file. I als...
2023-10-27 18:00:07 +0000 UTC
View Post
This week I started working on object collection and the key-keyhole game mechanics. I decided to go for an easy implementation, where the key is pulled towards a docking point that moves with the player. A more physically accurate implementation would involve the player sending out information about where the docking point is (at the speed of light) and the key receiving this information and r...
2023-10-13 15:09:54 +0000 UTC
View Post
On Tuesday (3rd of October) I released the first demo. To me it was a big milestone, although I understand that it may feel a little bit underwhelming to others. At this stage there isn’t much to see for a lot of effort that I put into the project. Hopefully, it’ll pay off at some point. I confess this project comes with a fair bit of anxiety attached to it.
Anyway… after the releas...
2023-10-13 15:08:38 +0000 UTC
View Post
I finally published my very first demo on itch.io. You can find it here:
https://relativisticgame.itch.io/demo
The demo is very minimal. It’s just a robot that you can move inside a room and that’s it.
The focus of this release is software deployment. There is no game, yet. Still, this release wi...
2023-10-03 17:43:41 +0000 UTC
View Post
Last week I got the demo working on multiple devices. These included four Operating Systems (Linux, Android, Windows, MacOS) and five browsers (Chrome, Firefox, Edge, Safari, Samsung Internet.) I found it amazing to see my software run on all these different platforms. The demo, however, wasn’t working perfectly, yet. The area where the game was rendered was too big on many of these devices. ...
2023-10-03 17:26:30 +0000 UTC
View Post
Apologies for being late with the weekly reports. I put my energies on the release preparation and on writing other posts. I didn’t have enough bandwidth to do all the writing. But the release is out of the door now (I’ll soon post about it), so here is the report for week 47, covering the period 18-22 September.
The focus of week 47 was fixing bugs in preparation for the first demo r...
2023-10-03 17:23:05 +0000 UTC
View Post
In my last post I talked a bit about the "Train in a tunnel paradox" video that I published on TikTok and YouTube a few months ago. I didn't mention that originally the video was a bit longer. Here is the initial version I published on TikTok!
As you can see, the scene opens with lamps turning on - one after the other - at the train station. They follow the music beat. I ...
2023-09-28 17:45:17 +0000 UTC
View Post
October 2022 was my last month as an employed man. In November I started my new and interesting life. This means it's been almost 11 months since I started working on this project. I think it’s time for me to look back, evaluate what happened and think where to go next.
When I started, I set two main objectives for this first year:
- Objective 1: Put together ...
2023-09-28 17:44:51 +0000 UTC
View Post
Hey Patrons!
I think I am getting close to releasing the very first demo.
This one will be super minimal. It won't be playable. The only thing you'll be able to do is move the robot. The focus for this first demo is ironing out the process of building the game and publishing it on the web.
The plan is to publish it on itch.i...
2023-09-25 12:45:35 +0000 UTC
View Post
This week I worked on improving support for mouse and touch devices. This was one of the items I listed in the to-do list for the minimal demo that I hope to publish soon. It ended up being all Lua coding work.
In the first part of the week I focused on menus. It is now possible to launch and select items using touch gestures and mouse clicks.
I then moved to work on a new “virtua...
2023-09-18 17:55:24 +0000 UTC
View Post
This week was a short one. It started on Wednesday, after my return from the summer vacation. I used all of it to complete the switch from matrices to biquaternion in the game. I just published a lengthy post explaining how that went. There isn't much else to report for this week.
2023-09-18 17:49:11 +0000 UTC
View Post
What’s the problem?
A long time ago, while debugging my game, I found a curious issue when using single-precision floating point numbers (floats) rather than ...
2023-09-18 17:45:22 +0000 UTC
View Post
In the past two weeks I was mostly on holiday. Well, the nursery was closed and my kid had to be looked-after full time. It was a pretty good incentive to go on holiday and spend time with our families. During these two weeks I still made some progress:
I hacked together an implementation of collision avoidance in the game. This is the relativistic counterpart of the demo...
2023-09-06 11:23:47 +0000 UTC
View Post