This post is a redraft of a post that existed on my legacy blog platform some 11 years prior. Unlike other posts which only contained minor alterations, this one was completely rewritten. However, for the sake of posterity, I have included the original draft at the end.
Dear friend
This morning I've been thinking about how things in life have a chain reaction that ripple out for the rest of your days. It's interesting to ponder how one small thing is the cause of so much. For me, I can identify such a pivotal moment in my life. This is the story of how Habbo Hotel caused me to learn computer science.
When I was around 9/10 years old, a friend of mine in school introduced me to a game engine known as DarkBASIC. It was - as the name suggests - an extension of the BASIC programming language, except it was geared towards game dev.
This 640×480 IDE ran in fullscreen.
I didn't get very far with it. I remember seeing some example projects, falling in love with a couple of them, and my father even taught me some very basic statements which allowed me to receive input from the player. The most I was able to achieve was a text-based quiz game - a full 3D game was very out of my league. Nevertheless, I was proud at what I made. You'd think this is where my programming journey started, but you'd be wrong. I quickly dropped DarkBASIC because I found it a bit too difficult to get anything done. I mean, I was 9 or 10 years old. Cut me some slack.
Instead, I spent a lot of time playing Habbo Hotel. Trust me, I sunk a lot of hours into that. In fact, I still have access to my very first account, they never deleted it - it still lives on to this day. I was once a member of the Habbo Club too, which gave VIP access to certain areas and “furni”.
One day, the Habbo servers went down for unscheduled maintenance. Likely just a server crash, but at the time I was really confused and a little sad because I had planned to work on redecorating my room. It was down for the whole day, so instead I decided to Google (although, to be honest, it was probably more like Yahoo! or Ask Jeeves back in those days) for an alternative “online chat/building program”.
I stumbled across some software called Active Worlds. It looked better than Habbo, it was 3D for a start. I logged on, and immediately tried to learn how to build my own buildings. I went into a world known as “AWSchool”, which aimed to teach beginners how to use the building mechanic, and fortunately found myself running into a person who helped me to build my very first house. It was nothing special, but it was mine - and I am grateful that a random stranger took time out of their day to assist a newbie.
See, unlike Habbo Hotel, Active Worlds isn't limited to “rooms”. You have entire worlds which span many kilometres. Some of these worlds allowed public building - and as long as you find some empty land, you are free to build whatever you like. One of these worlds was called A!!CT (which later got renamed to A1CT). I built quite a few things in this world (though for the life of me I cannot remember what they are.)
One day I was just aimlessly wandering around A!!CT's “Ground Zero” (GZ), which is a world's entry point. This man named Pineriver came in and started recording a show about builds that people had done. Now, when I say “recording a show”, I don't mean video screen recording - oh no. For starters, Active Worlds didn't have voice chat in those days - everything was in speech bubbles. But even if it did, it would be technically impossible to present that recording in-world.
See, a popular thing to do in those days was to create your own TV station which used an automated rolling slideshow using PHP. Active Worlds didn't support videos on objects at the time, but they did support images - even images on remote servers. So by having it load an image from a remote PHP script which reports the header Content-Type: image/jpeg
, you could trick Active Worlds into thinking it was a jpg image and applied this image as a texture onto the object.
Of course, back then, I had no idea about any of this. I just knew that TV stations existed, with no idea how they worked. I asked Pineriver if I could watch them at work, and he accepted. Half-way through, I piped up and asked “hey, can I have a go? I'd like to be a camera man.”
That's right, 9/10 year old me had more balls than 29 year old me.
To my amazement, he agreed. He told me to download an application called SnagIt, which was a tool used to take screenshots. It was neat though, because it allowed you to predefine a resolution of the screenshot. 256x256 - that was what TV stations ran with in Active Worlds. Pitiful resolution by today's standards, I know.
Anyways, I installed SnagIt and began taking screenshots of the speech bubbles of the guy presenting the show. I remember afterwards, Pineriver praised me for when the speech bubbles were large. I had focused the attention on the text rather than the avatar's face (I mean that's kind of a given right? Why would I crop out the text? The text was the whole point!) He hired me then and there. I now “worked” for an Active Worlds TV station known as CTV. This is how I met several of my online friends, through doing this kind of fun online job.
One day, I decided to start up my own TV station. Now - at the time - I didn't see anything wrong here. I mean, starting my own TV station sounded fun! I enjoyed being a camera man, I liked seeing how it all ran. But obviously, stealing your employer's entire business model to start a competing one? I'm amazed he didn't fire me. In fact…
Pineriver taught me how to do it. He taught me how the TV system worked, how the PHP script sent an image to the browser rather than an HTML-based website. He taught me some fundamental PHP concepts. As an aside, Pineriver also used to make video commercials of Active Worlds using Adobe After Effects - he also taught me some of that too. He taught me the basics of video compositing and editing. The man essentially became a tutor for so much that I, at the time, took for granted.
A little while after this, I ran into somebody named Edwin, who was building a bot using the Active Worlds VB6 SDK wrapper. With a little bit of PHP knowledge, I thought maybe he could teach me how to write a bot. As it turns out, he did. Edwin taught me how to create a very simple chat bot using Visual Basic. What luck, I thought, having already played a little with DarkBASIC. I was already slightly familiar with the whole BASIC syntax. No 3D rendering either - a bot would simply be Windows GUI app.
It's thanks to Pineriver and Edwin that I pushed myself to learn programming. Pineriver taught me PHP, Edwin taught me Visual Basic. These would be the fundamental languages that carry through me to this day.
After many years, a lot of the veterans I met in Active Worlds slowly started leaving. Pineriver left for There.com. Edwin left to create his own clone of Active Worlds called Virtual Paradise. I was there from day 1, and I remember one iteration of Virtual Paradise being written in C#. This inspired me to learn C# too, knowing that one guy made a clone of Active Worlds? Surely I could do something similar. That's where it started. That is how I know C#, and how I began my journey studying as much computer science and programming as my puny brain can handle.
It's why I am fascinated with how games are developed, and how programming languages work at the lowest of levels. It's why I love to experiment and try to break code, purely for the sake of curiosity in how the computer handles it.
Pineriver and Edwin taught me a lot of what I know today.
And it's all because Habbo Hotel went down one day.
Original draft, 30 November 2011 at 00:44:34 UTC
How I came to learn everything I know today
I find it fascinating - almost mind-blowing - thinking about the genesis of my knowledge in computers.
When I was younger, I was fascinated by Habbo Hotel (yes, you read correctly. Habbo Hotel!) I loved the idea of going online and meeting new people. One day, the server for Habbo Hotel went down and I was really looking forward to playing, so I browsed Google for online chat 2D/3D services where I could control an avatar on the screen and I came across Active Worlds (AW) (a 3D chat-build program consisting of different “worlds” where you can meet people and build structures from simple prefabricated objects.)
AW literally look my life; I would play for weeks, even months, on end. I was truly amazed by what I could do in it. There was even a leading RPG world named Mutation (where players had to complete quests to obtain crystals which you would place on the altar in order to reach the boss and fight him with other players) which, for a while, was the only world I would enter. During my time in AW, I met a man who went by the alias Pineriver. He was the owner of an static-image-based TV station in AW that was powered by rotating images on a timer written in PHP. For a trial run, he let me record a news segment for his station. I seemingly did rather well, since he hired me. Pineriver is probably the man responsible for me knowing the majority of things I know now. He taught me how to use After Effects for video editing and he taught me PHP. He taught me some pretty neat tips and tricks for Windows.
I also met a Dutch person (whose alias I won't mention because it's actually his real name), who taught me Visual Basic. He taught me how to write bots using the AW SDK, and how to make them interact with real users in-world. Making my own projects in VB, I learned the fundamentals of GUI design and networking. From there I went on to learn C#, and to this day, C++.
It's funny to think that there's some form of chain reaction that controls my entire life. One small mishap led to me learning as much as I can about computers. I've sampled everything: Video editing, web design, application development, you name it. But the one thing that stole my heart above all else was Games programming. Actually creating your own material; watching people be amazed at what you made. Making normal programs is not really an achievement, since it's just some buttons on a window controlling some actions - but if you can develop a full 3D game, be it on your own or with a group, that's an achievement. The time it takes to create something that big shows your true dedication to it. The sense of pride you get knowing that that top selling #1 title was your idea, your creation.
And THAT, ladies and gentlemen is how I came to learn everything I know today. Beautiful, isn't it?
TL;DR: If Habbo Hotel didn't go down that one day, I wouldn't know what I know now. I wouldn't be where I am now. I wouldn't be here writing this, expressing my fascination in games and programming.
coooool! 😛