If you’re wondering, this is a simple little type of autobiography I started when I was bored focusing solely on the programming part of my life. It’s still not quite finished, so I’d really like some feedback on how to continue. For example, if I only include finished projects from the last three years, the next part will turn out quite short.

~ Linus, August 31, 2021

History

I started programming almost five years ago now, in the fall of 2016. Back then, like a lot of other people I know, I had a horribly wrong idea of programming. I thought programming was just typing in a few lines of code and bam! You’ve got yourself a new AAA title released (sometimes it seems to me like we’re almost there already with things like the Unreal engine).

At the time I was taking programming lessons once a week with a few friends of mine. But after the first few sessions, our teacher got sick, and that’s the point where most of my comrades stopped programming. But not me! You would’ve thought we were using something like Python, but in fact, our teacher had shown us a program called Scratch. And that’s where my story began …

Starting From Scratch

For anyone who doesn’t know, Scratch is an online platform for creating simple video games and animations. In contrast to other programming languages, Scratch uses a simple drag-and-drop system to quickly snap together scripts and test them without ever having to type or compile a program. The first weekend after the lessons had started, I spent almost 48 hours on the computer, skimming YouTube for tutorials and replicating the games I found there block by block. Without even knowing it, I was slowly learning and understanding what those programs did and how they worked.

A few weeks later I was already coding along my first raycaster using lists and custom blocks which I barely understood at the time (and to be honest, was kind of scared of). After having made a 3D rotating cube for which you would’ve needed a PhD in mathematics to have actually known what you were doing, I returned to my sweet spot: platformers. Scratch already has a few built-in blocks for collision detection, and doing everything else myself, I quickly finished my first scrolling platformer using a simple trick I had discovered. You simply had to make the player stationary and apply the physics to the level geometry instead, just inverted.

It was around this time that I decided to create an account. You see, Scratch isn’t just a website for programming stuff … It’s a type of social media platform with a big community and tons of published games. Most people probably sign up to a website the moment they decide to use it for a long period of time, but I’m not most people. I’m freakish when it comes to privacy, and not to mention, I just hadn’t created many online accounts up to that point; that was simply one of my basic principles of life. It cost myself quite a lot of effort, and I just can’t stress enough how important this step was (for me, but also for the story).

So, I created an account, called it TC-Studios, and uploaded a few of my already finished projects that I deemed worthy of publishing. Have I lost you yet? No? Then let’s move on!

A while later I decided to participate in a game jam called TAG and submitted my newly created game DOT which, in hindsight, is probably my best (completed) game up to now. Only the best ten Scratchers were allowed to move on to the second round though, and I, being only 13th place, saw no chance of progressing any further. But slowly, in a span of three weeks, three whole people dropped out, and so the host asked me to participate. That’s when I created my to this day second best game called Galaxy Striker. It was a lot more complicated than my first entry, using only a single main loop and having tons of tiny visual easter eggs.

All that happened about three years ago. Most games on the website have the simplicity of my first entry and are nevertheless, or rather precisely because of that, extremely fun and addictive to play. Knowing that, it seems like no surprise that I wasn’t part of the five people who got to move on. So, I returned my focus to other projects …

The jam never did finish, the host had planned two more rounds with only five people left, and not being organized all that well, the hype soon died away. The following month, I released two more projects, respectively testing my AI and cloud data skills. I also joined another jam, this one being not quite as big, but I was too focused on beautifying the code, so the gameplay was neither fun nor interesting.

Now let me tell you the story of the biggest and most complicated project I have ever released (not to say that I haven’t started bigger ones). This happened roughly at the same time I started work on my AI project. I hadn’t really thought of finishing this one (a pixel art editor), I just reckoned it to be a small test, but as it is with all programming undertakings, you slowly think up more and more features, until you’re almost certain you won’t be able to put everything you’d planned into the final product. I did manage to cram in all my personal must-haves, even using a flood fill algorithm and an input parser.

Sadly, it ended up horribly slow, just like most of the more complex projects you find on the website, and I partially struggled to get in all the minimum features I had set myself to mind. I needed something more powerful …

Java Is Also an Island

TODO