Inverse Kinematics In Game Maker

Inverse kinematics is calculating the position of limbs and angle of joints in a system in order to make them reach a desired end position. In other words when considering a point calculate what angle limbs should be in to touch it. This is useful in games when making arms bend to hold objects, making legs touch the ground on uneven terrain or even rendering simple ropes.

Almost a year ago I worked on a fairly large student project with three other members. The project was to build a game using Game Maker Studio 1.4. and during this project one of the things that I ended up needing was a simple inverse kinematics script. Unfortunately I was not able to find one. This is to provide the script that I ended up using as well as an explanation as to how it works for any one interested. If you are interested in the project that I needed this for, it was a adventure/rogue lite game. It is playable on Windows or Linux and you can check it out here at Artificial.

Written 20/12/2017

Chromebook Storage Upgrade

I have been using my Lenovo N22 Chromebook, running linux, for a couple of months now. It is an extremely convenient laptop for travel, school, and even personal projects. I have even been able to use the recently released Vulkan graphics API, just to show how capable these little laptops are. Unfortunately, there is one small problem that has been bothering me. The N22 model, similar to almost all Chromebooks, only has 16GB of storage.

In this post I will explore my solution to expand the devices storage capacity.

Written 13/04/2017

Transforming a Lenovo N22 Chromebook Into a Full Linux Laptop

In this post I will be going over the steps required to turn a stock Lenovo N22 Chromebook into a full linux Laptop. Unlike the majority of Chromebook Linux tutorials, this will not be along side the existing operating system. This will completely remove the existing OS from the device.

This post will cover how to disable the existing software security and hardware security that is present on the device. Then cover how to replace the existing BIOS, making it possible to boot and install alternative operating systems on the device.


If something goes wrong during this process it can and likely will brick your device These instructions are for the Lenovo N22 Chromebook, attempting them on a different computer may have undesired side effects. Continue at your own risk.

Written 31/01/2017

Racket Handin Protocol

I will be documenting the Racket handin client protocol. By going over all of the functionality included in the protocol, I hope that it will be useful to others. The handin application is used to submit racket applications to a professor for marking. It is normally downloaded as a *.plt file that is a plugin for the DrRacket editor. This information should be useful for people who wish to port the application to other development environments than DrRacket.

The original handin client and server code can be found here:
Handin Source


Since this information was obtained mostly by reading the racket source and
looking at packet captures, this protocol documentation is my best guess and by no means official. I was simply unable to find information on the protocol in any other form and have decided to provide my own documentation for others. I am providing this information under the following disclaimer:


Written 14/01/2017

Why Not TypeScript

Recently I looked into TypeScript. I had been working on a project that was growing rapidly. The downside was that the project was breaking continuously. We needed a way to fix it. TypeScript seemed like a good idea but we had our reservations.

Turns out TypeScript was the perfect solution for us. It strengthened our code base and reduced the number of bugs we introduced.

Written 06/01/2017
< 2 of 3 >