About Me

Hi, My name is Johan Gustafsson and I am a 25 year old software developer. I am currently working as a product manager and lead developer at Web Prefer.

My current and previous personal projects include the 2d space shoot RymdspeletHD, A Haskell Interpreter in Javascript and an unnamed Freespace like space shooter.

My preferred tools and languages are C# and OpenTK for 3d development, C++ and Hge for 2d development and Php or Asp.Net for web development depending on the task at hand.



A game engine

Triton is my latest try at writing a game engine, it is far from complete yet but it features a simple content pipeline, graphics system and physics using Jitter Physics. There are also several utilities such as a resource manager and a virtual filesystem with support for zip archives. The graphics system is the most developed part and it works using a multi threaded renderer where a frontent thread is used to feed the backend with rendering commands. I have also implemented a deferred renderer supporting spot, point and directional lights with hardware pcf filtered shadows for the point and spot lights. There is a simple SSAO implementation as well and everything is rendered in gamma correct space to an hdr surface with filmic tonemapping.

Future developments on the graphics side includes implementation of depth of field (maybe with bokeh), motion blur, better ssao, directional light shadows (using CSM), volumetric light scattering (by ray marching).

The rest of the engine will be extended with an audio subsystem, a more complete physics layer, save game management and world serialization. An editor will probably be implemented in the distant future as well.

View on Github

Rymdspelet WebGL

A 2d space shooter online!

A primitive rewrite of my game RymdspeletHD in WebGL using the Phaser game engine. It has some of the features from the original game like a ship, online highscore, asteroids and more. Chrome is recomended for the best experience although Firefox is a good alternative.

Play Now!


A 2d space shooter

RymdspeletHD is the latest installment in the epic Rymdspelet series. This new version brings you crystal clear high definition graphics, new weapons and upgrades that you can use to destroy even more asteroids. There are also several new types of asteroids, a multiplier, an online highscore and many more features that makes this one of the best space games available.

If you need more of an explanation, then RymdspeletHD (literally means The Space Game HD in Swedish) is a 2d space shooter that brings you awesome asteroids like action.

It has been in development over the course of several years and has been through extensive bug and gameplay testing. This hade made it one of the most addictive and awesome 2d space game out there.

So what are you waiting for? Download it through one of the links above and get your name on the online highscore list!

Get It Here


A simple image uploader

imgldr.net is a simple image uploader written in php using the Laravel framework. It supports drag 'n drop image uploading, uploading of multiple files, image galleries, comments and automatic thumbnail creation.

I created this project to test the Laravel framework which proved to be suitable to the task. It uses several of Laravel's features like authentication, form management and object relational mapping.

The Imagine and Gd2 libraries are used in addition to Laravel for image management. Support filetypes include jpg, png and gif and other image formats are automatically converted to jpg.

View Project

Unnamed RPG

A role playing game without a name

A CRPG written in C# using MOgre (.Net wrapper for the Ogre rendering engine). This project was started in early 2009 although I had done several iterations before this latest rewrite. The project was never completed and I stopped developing it sometime during the end of 2010. The game had most of the functionality required for a CRPG implemented including conversation system, quests, inventory, combat, npc's, save games, a world editor and more.


A haskell interpreter written in javascript

HIJI is the result of my bachelor thesis, written during my time at the University of Gothenburg in the spring of 2010 in a group of four people.

View Project