I have been working on a game on Godot for a while now but with the slow progress I decided to work on something simpler first, so I implemented Snake last weekend. However to make things a little more fun I made it into a race between two players and after some tweaks made TwoSnakes.

The left side player uses WASD (or ZQSD) while the right side player uses the arrow keys. Space bar starts the game. To win a round the player has to survive with the most food collected. There is no snake-to-snake collision (that’d make the game more like Tron) but the game does speed up as time passes each round.

You can find the source code and releases here on GitHub.



BSPViewer Updated

While I was dusting off my old projects I noticed that one of them – BSPViewer – was not compiling anymore. It was written five years ago and was using Qt4. I decided for prosperity sake to spend the weekend freshening it up by porting it to SFML. I got most of it working and the only issue I had was trying to determine if a texture was meant to be transparent or not. One nice new feature is that it can now load data directly from a Quake 3 installation without unpacking anything, using the PhysicsFS library.


Interestingly, back then the main motivation of this program was that I wanted to develop a game that uses a map format featuring a good map editor. Unfortunately I found out that most of those tools were rather Quake 3 specific and I hadn’t touched it since.

Still, with these changes it should now be a lot less faff to compile and use. Feel free to check it out here:


So, story time. I always felt uncomfortable dealing with people, unless it’s with very close friends it’s an emotionally draining thing. I remember the words constantly being thrown at me: “You’re just over thinking it” and “it’s all in your head”. I mean, thanks captain obvious, now tell me how to stop the subconscious bit of my brain from irrationally doing that.

Nonetheless, I managed well on my own. I lived away from family since starting my A-Levels in 2009, managing routine life. I could go out, talk to random people, carry on with my life and mentally recharge by keeping to myself on some of the days. Everything was holding on fine.

But then about three and a half years ago, with the pressure of trying to do well in my second year of university life, I just snapped. No longer was I just uncomfortable dealing with people, it was a nerve-wracking ordeal. Pretty soon it turned into leaving house means meeting people thus staying in my room was safe. Outside scary.

It was getting bad. I hadn’t left the house in two weeks. I was stuck on canned foods and that too was dwindling. Food delivery was expensive to do every day. I was cold, hungry and tired.

So there I was, browsing the internet as I usually do. I heard about this game called Journey and how great it was. I was curious, but I didn’t have a PlayStation (or any game console for that matter), so I went online and watched a silent play-through of it on YouTube.

The music resonated within me, the art was amazing. It moved me. I don’t really know how to describe it but it made me see something in the world differently. I was sitting curled up in my chair just crying and whispering to myself over and over again about how beautiful it was.

The next day, I fired up Skype and talked to a friend. I talked with her, and eventually I told her the three words I had been having trouble saying all these years: “I need help”.

I saw a therapist, eventually a doctor, and had a small circle of really supportive friends, all of whom I am eternally grateful for. It wasn’t all uphill from there, and in fact there were times where I was in worse situations.

But most importantly, from that point onwards, it made me know where I wanted to be. I wanted to be happy.

So, to Austin Wintory, thatgamecompany, everyone involved, and all my friends who gave me support in this journey. Thank you.

More RepRap Recycler Updates

So, it has been a while since the last update on the filament recycling project. Quite a bit has happened since then.

For starters, we came up with a name for the project, but later found out it was taken by a similar project. In the end we decided to just adopt the name of our senior’s old research project prototype “RepCycler”.

When the team heard that I had my blog they asked me to set one up dedicated to the project. Problem is, my blog lives on a virtual private server that I mess around with, and I didn’t feel like the project’s website should be affected by my shenanigans.  While I felt that was the better blog system/host, I didn’t want to hassle them with managing so many accounts just for the project, so I decided to set it up on Blogger, since we were already using Google Drive for sharing documents. You can find the project site here.

Anyways, to start with, we decided to work backwards from the price we could sell the machine at to get the approximate cost making our machine should be. We looked at the competitors’ products and compared various characteristics, such as the extrusion speed and how fine the tolerances are. We rated those characteristics on a relative scale and by weighting those ratings, and came up with a performance index for each machine.

So, to make something that is actually competitive, we could either make something

  1. low-end at a really cheap price;
  2. high-end at a reasonable price; or
  3. much better than the competitors at a premium.

We decided to go with the second choice. Which meant that our target was to make something that could be sold for around £500, and had the same performance of something like the ProtoCycler.

Yeah, I’m not sure how well we could achieve that, but hey, that was what we were aiming for.

Next up we had a look at the functions the machine had to do. There were stuff such as the breakdown of the old plastic parts, getting the optimal mix of old and new plastic, melting and extruding the mixture and controlling the final diameter of the filament. I picked the extrusion part since I did a quite a bit of initial research in that and had a good idea of what to do.

That’s all for now, I’ll write-up about the rest later.

Working on a RepRap Project

My engineering course this semester has a group business and design project where we work with a company on developing a product. Besides a couple of projects that you’d have to specifically sign up for, these projects were assigned to you and I was a bit nervous about it since I had no idea what the companies and projects were. I was incredibly glad when I ended up on a project sponsored by RepRapPro! 3D printing was something I’ve been meaning to dive into for a while now. I even got to meet Adrian Bowyer, the original RepRap developer (who used to give lectures at my university a few years ago!). It certainly was exciting and with their open source philosophy I was given the blessing to publicly discuss the project – something I wasn’t sure if I should do with my earlier projects. So now I can freely rant about it. Yay!

Now, about the project itself. The idea for the project is to develop an open source, desktop sized machine that can break down old 3D models and waste support structures and turn them into reusable filaments for more printing. There are a few similar plastic extrusion machines out there such as Filabot and ProtoCycler so we would have to work on setting ourselves apart from them. One thing we wanted to do was distribute ours under the GNU Public License, which does allow commercial derivatives, much like current RepRap machines. I do feel this is nice because I’m not entirely sure of the future of the project past the project deadline, and at the very least the project wouldn’t be dead if the group decides not to pick it up as a business when we graduate.

Nonetheless, it would be a fun project as one of the aims of the project is to produce a usable prototype before the project deadline in May.

Given that it’ll take time for me to write things up, my posts would be a while behind what’s actually going on.